diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md old mode 100644 new mode 100755 diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index 5101c5ada4ef94be5379d868ea9fc0fd64b1a8e5..bf5f849709280c474c6f2bd182e2d13200812a75 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,7 @@ frontend/runtime/ frontend/web/assets/ console/runtime/ common/tmp/ +common/media/ themes/classic/views/ vendor/ -nbproject/ composer.lock \ No newline at end of file diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 index 00172ee7fa4d07cc4b81ddca728bab48dfc07920..a589e86a28c0a587f8647e4c416fbbaaf55be347 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,22 @@ - 木兰宽松许可证, 第1版 + 木兰宽松许可证, 第2版 - 木兰宽松许可证, 第1版 - 2019年8月 http://license.coscl.org.cn/MulanPSL + 木兰宽松许可证, 第2版 + 2020年1月 http://license.coscl.org.cn/MulanPSL2 - 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第1版(“本许可证”)的如下条款的约束: + + 您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束: 0. 定义 “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。 + “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 + “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 “法人实体”是指提交贡献的机构及其“关联实体”。 - “关联实体”是指,对“本许可证”下的一方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 - - “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。 + “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 1. 授予版权许可 @@ -23,7 +24,7 @@ 2. 授予专利许可 - 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括仅因您或他人修改“贡献”或其他结合而将必然会侵犯到的专利权利要求。如您或您的“关联实体”直接或间接地(包括通过代理、专利被许可人或受让人),就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 + 每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。 3. 无商标许可 @@ -35,13 +36,16 @@ 5. 免责声明与责任限制 - “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 + “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 + + 6. 语言 + “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。 - 条款结束。 + 条款结束 - 如何将木兰宽松许可证,第1版,应用到您的软件 + 如何将木兰宽松许可证,第2版,应用到您的软件 - 如果您希望将木兰宽松许可证,第1版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: + 如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步: 1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; @@ -49,35 +53,33 @@ 3, 请将如下声明文本放入每个源文件的头部注释中。 - Copyright (c) [2019] [name of copyright holder] - [Software Name] is licensed under the Mulan PSL v1. - You can use this software according to the terms and conditions of the Mulan PSL v1. - You may obtain a copy of Mulan PSL v1 at: - http://license.coscl.org.cn/MulanPSL - THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR - PURPOSE. - See the Mulan PSL v1 for more details. + Copyright (c) [Year] [name of copyright holder] + [Software Name] is licensed under Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. - Mulan Permissive Software License,Version 1 + Mulan Permissive Software License,Version 2 - Mulan Permissive Software License,Version 1 (Mulan PSL v1) - August 2019 http://license.coscl.org.cn/MulanPSL + Mulan Permissive Software License,Version 2 (Mulan PSL v2) + January 2020 http://license.coscl.org.cn/MulanPSL2 - Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v1 (this License) with following terms and conditions: + Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 0. Definition - Software means the program and related documents which are comprised of those Contribution and licensed under this License. + Software means the program and related documents which are licensed under this License and comprise all Contribution(s). + + Contribution means the copyrightable work licensed by a particular Contributor under this License. Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. Legal Entity means the entity making a Contribution and all its Affiliates. - Affiliates means entities that control, or are controlled by, or are under common control with a party to this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. - - Contribution means the copyrightable work licensed by a particular Contributor under this License. + Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. 1. Grant of Copyright License @@ -85,11 +87,11 @@ 2. Grant of Patent License - Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed, excluding of any patent claims solely be infringed by your or others’ modification or other combinations. If you or your Affiliates directly or indirectly (including through an agent, patent licensee or assignee), institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. + Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken. 3. No Trademark License - No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in section 4. + No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. 4. Distribution Restriction @@ -97,25 +99,29 @@ 5. Disclaimer of Warranty and Limitation of Liability - The Software and Contribution in it are provided without warranties of any kind, either express or implied. In no event shall any Contributor or copyright holder be liable to you for any damages, including, but not limited to any direct, or indirect, special or consequential damages arising from your use or inability to use the Software or the Contribution in it, no matter how it’s caused or based on which legal theory, even if advised of the possibility of such damages. + THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + 6. Language + + THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. + + END OF THE TERMS AND CONDITIONS + + How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software + + To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps: + + i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; - End of the Terms and Conditions + ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; - How to apply the Mulan Permissive Software License,Version 1 (Mulan PSL v1) to your software + iii Attach the statement to the appropriate annotated syntax at the beginning of each source file. - To apply the Mulan PSL v1 to your work, for easy identification by recipients, you are suggested to complete following three steps: - i. Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; - ii. Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; - iii. Attach the statement to the appropriate annotated syntax at the beginning of each source file. - - Copyright (c) [2019] [name of copyright holder] - [Software Name] is licensed under the Mulan PSL v1. - You can use this software according to the terms and conditions of the Mulan PSL v1. - You may obtain a copy of Mulan PSL v1 at: - http://license.coscl.org.cn/MulanPSL - THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR - PURPOSE. - - See the Mulan PSL v1 for more details. \ No newline at end of file + Copyright (c) [Year] [name of copyright holder] + [Software Name] is licensed under Mulan PSL v2. + You can use this software according to the terms and conditions of the Mulan PSL v2. + You may obtain a copy of Mulan PSL v2 at: + http://license.coscl.org.cn/MulanPSL2 + THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + See the Mulan PSL v2 for more details. diff --git a/README.en.md b/README.en.md old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index a37a621b0dbdf64ccd35d17c9e51c11bf28705a3..4e3a52cac39a34c27de27ac7a61ec0a5a3559e48 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -# yii2cms - +## yii2cms 内容管理系统 基于 Yii2 advanced 开发 +### 开发中... #### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} +**yii2cms** 是用于发布web内容的免费和开源的内容管理系统(CMS)。它是网站的一个基础管理平台。它基于模型-视图-控制器Web应用程序框架构建, +从而使您可以构建功能强大的在线应用程序。 #### 软件架构 软件架构说明 diff --git a/Vagrantfile b/Vagrantfile new file mode 100755 index 0000000000000000000000000000000000000000..4376f11c803267179975dd51b9d7f223e50590f2 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,77 @@ +require 'yaml' +require 'fileutils' + +required_plugins = %w( vagrant-hostmanager vagrant-vbguest ) +required_plugins.each do |plugin| + exec "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin +end + +domains = { + frontend: 'y2aa-frontend.test', + backend: 'y2aa-backend.test' +} + +config = { + local: './vagrant/config/vagrant-local.yml', + example: './vagrant/config/vagrant-local.example.yml' +} + +# copy config from example if local config not exists +FileUtils.cp config[:example], config[:local] unless File.exist?(config[:local]) +# read config +options = YAML.load_file config[:local] + +# check github token +if options['github_token'].nil? || options['github_token'].to_s.length != 40 + puts "You must place REAL GitHub token into configuration:\n/yii2-app-advanced/vagrant/config/vagrant-local.yml" + exit +end + +# vagrant configurate +Vagrant.configure(2) do |config| + # select the box + config.vm.box = 'bento/ubuntu-16.04' + + # should we ask about box updates? + config.vm.box_check_update = options['box_check_update'] + + config.vm.provider 'virtualbox' do |vb| + # machine cpus count + vb.cpus = options['cpus'] + # machine memory size + vb.memory = options['memory'] + # machine name (for VirtualBox UI) + vb.name = options['machine_name'] + end + + # machine name (for vagrant console) + config.vm.define options['machine_name'] + + # machine name (for guest machine console) + config.vm.hostname = options['machine_name'] + + # network settings + config.vm.network 'private_network', ip: options['ip'] + + # sync: folder 'yii2-app-advanced' (host machine) -> folder '/app' (guest machine) + config.vm.synced_folder './', '/app', owner: 'vagrant', group: 'vagrant' + + # disable folder '/vagrant' (guest machine) + config.vm.synced_folder '.', '/vagrant', disabled: true + + # hosts settings (host machine) + config.vm.provision :hostmanager + config.hostmanager.enabled = true + config.hostmanager.manage_host = true + config.hostmanager.ignore_private_ip = false + config.hostmanager.include_offline = true + config.hostmanager.aliases = domains.values + + # provisioners + config.vm.provision 'shell', path: './vagrant/provision/once-as-root.sh', args: [options['timezone']] + config.vm.provision 'shell', path: './vagrant/provision/once-as-vagrant.sh', args: [options['github_token']], privileged: false + config.vm.provision 'shell', path: './vagrant/provision/always-as-root.sh', run: 'always' + + # post-install message (vagrant console) + config.vm.post_up_message = "Frontend URL: http://#{domains[:frontend]}\nBackend URL: http://#{domains[:backend]}" +end diff --git a/api/config/.gitignore b/api/config/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7c090d207f119ef50fc1e6bfeb6a3d52a5d0fa5e --- /dev/null +++ b/api/config/.gitignore @@ -0,0 +1,4 @@ +codeception-local.php +main-local.php +params-local.php +test-local.php diff --git a/api/config/bootstrap.php b/api/config/bootstrap.php new file mode 100644 index 0000000000000000000000000000000000000000..b3d9bbc7f3711e882119cd6b3af051245d859d04 --- /dev/null +++ b/api/config/bootstrap.php @@ -0,0 +1 @@ + 'app-api', + 'basePath' => dirname(__DIR__), + 'bootstrap' => ['log'], + 'controllerNamespace' => 'api\controllers', + 'components' => [ + 'request' => [ + 'csrfParam' => '_csrf-api', + 'parsers' => [ + 'application/json' => 'yii\web\JsonParser' + ] + ], + 'response' => [ + 'class' => \yii\web\Response::class, + 'on beforeSend' => function($event) { + $response = $event->sender; + if ($response->data !== null && !empty(Yii::$app->request->get('suppress_response_code'))) { + $response->data = [ + 'success' => $response->isSuccessful, + 'data' => $response->data + ]; + $response->statusCode = 200; + } + }, + 'formatters' => [ + \yii\web\Response::FORMAT_JSON => [ + 'class' => yii\web\JsonResponseFormatter::class, + 'prettyPrint' => YII_DEBUG, + 'encodeOptions' => JSON_UNESCAPED_SLASHES || JSON_UNESCAPED_UNICODE + ] + ] + ], + 'user' => [ + 'identityClass' => 'api\models\User', + 'enableSession' => false, + 'enableAutoLogin' => true, + //'identityCookie' => ['name' => '_identity-api', 'httpOnly' => true], + ], +// 'session' => [ +// // this is the name of the session cookie used for login on the api +// 'name' => 'advanced-api', +// ], + 'log' => [ + 'traceLevel' => YII_DEBUG ? 3 : 0, + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + 'errorHandler' => [ + 'errorAction' => 'site/error', + ], + 'urlManager' => [ + 'enablePrettyUrl' => true, + 'enableStrictParsing' => true, + 'showScriptName' => false, + 'suffix' => null, + 'rules' => [ + [ + 'class' => yii\rest\UrlRule::class, + 'controller' => 'user' + ], + 'PUT,PATCH //update/' => '//update', + 'DELETE //delete/' => '//delete', + 'GET,HEAD //view/' => '//view', + 'POST //create' => '//create', + 'GET,HEAD //index' => '//index', + '//options/' => '//options', + '//options' => '//options' + ], + ], + ], + 'params' => $params, +]; diff --git a/api/config/params.php b/api/config/params.php new file mode 100644 index 0000000000000000000000000000000000000000..7f754b91fe0d8f05a5939cd73f7199c455838d79 --- /dev/null +++ b/api/config/params.php @@ -0,0 +1,4 @@ + 'admin@example.com', +]; diff --git a/api/config/test.php b/api/config/test.php new file mode 100644 index 0000000000000000000000000000000000000000..e94a02b10771ad68c4bfdfc90809f445512c0022 --- /dev/null +++ b/api/config/test.php @@ -0,0 +1,15 @@ + 'app-frontend-tests', + 'components' => [ + 'assetManager' => [ + 'basePath' => __DIR__ . '/../web/assets', + ], + 'urlManager' => [ + 'showScriptName' => true, + ], + 'request' => [ + 'cookieValidationKey' => 'test', + ], + ], +]; diff --git a/api/controllers/SiteController.php b/api/controllers/SiteController.php new file mode 100644 index 0000000000000000000000000000000000000000..a50166a00eb837eaa82afe69225860299aabca8a --- /dev/null +++ b/api/controllers/SiteController.php @@ -0,0 +1,33 @@ + 'yii\rest\Serializer', + 'collectionEnvelope' => 'items' + ]; + + public function actionIndex() + { + $admins = \api\models\Admin::find()->all(); + return $admins; + } + + public function actionError() + { + $response = Yii::$app->response; + $error = [ + 'statusCode' => $response->statusCode, + 'statusText' => $response->statusText, + 'message' => Yii::t('yii', 'Page not found.') + ]; + return $error; + } +} diff --git a/api/models/Admin.php b/api/models/Admin.php new file mode 100644 index 0000000000000000000000000000000000000000..0be11d1e7f932dd51ebb71595b57df93d431ccf0 --- /dev/null +++ b/api/models/Admin.php @@ -0,0 +1,56 @@ + true, 'targetClass' => User::class, 'targetAttribute' => ['uid' => 'id']], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'uid' => 'Uid', + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getU() + { + return $this->hasOne(User::class, ['id' => 'uid']); + } +} \ No newline at end of file diff --git a/api/models/User.php b/api/models/User.php new file mode 100644 index 0000000000000000000000000000000000000000..cf28863fb2a94719b0c350f9037da57bd02b737c --- /dev/null +++ b/api/models/User.php @@ -0,0 +1,148 @@ + 255], + [['auth_key'], 'string', 'max' => 32], + [['username'], 'unique'], + [['email'], 'unique'], + [['password_reset_token'], 'unique'], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => 'ID', + 'username' => 'Username', + 'auth_key' => 'Auth Key', + 'password_hash' => 'Password Hash', + 'password_reset_token' => 'Password Reset Token', + 'email' => 'Email', + 'status' => 'Status', + 'created_at' => 'Created At', + 'updated_at' => 'Updated At', + 'verification_token' => 'Verification Token', + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getAdmin() + { + return $this->hasOne(Admin::className(), ['uid' => 'id']); + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getMember() + { + return $this->hasOne(Member::className(), ['uid' => 'id']); + } + + /** + * {@inheritdoc} + */ + public static function findIdentity($id) + { + return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]); + } + + /** + * {@inheritdoc} + */ + public static function findIdentityByAccessToken($token, $type = null) + { + return static::findOne(['access_token' => $token]); + } + + /** + * Finds user by username + * + * @param string $username + * @return static|null + */ + public static function findByUsername($username) + { + return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]); + } + + /** + * {@inheritdoc} + */ + public function getId() + { + return $this->getPrimaryKey(); + } + + /** + * {@inheritdoc} + */ + public function getAuthKey() + { + return $this->auth_key; + } + + /** + * {@inheritdoc} + */ + public function validateAuthKey($authKey) + { + return $this->getAuthKey() === $authKey; + } + + public function generateAccessToken() + { + return Yii::$app->security->generateRandomString(); + } + +} diff --git a/api/runtime/logs/app.log b/api/runtime/logs/app.log new file mode 100644 index 0000000000000000000000000000000000000000..12f9485aae7649f1ca93ebfbfad372ca66e05974 --- /dev/null +++ b/api/runtime/logs/app.log @@ -0,0 +1,1104 @@ +2020-03-13 22:26:21 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(17): yii\base\Application->run() +#3 {main} +2020-03-13 22:26:21 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45730' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109581.859 + 'REQUEST_TIME' => 1584109581 +] +2020-03-13 22:27:26 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(17): yii\base\Application->run() +#3 {main} +2020-03-13 22:27:26 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45748' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109646.403 + 'REQUEST_TIME' => 1584109646 +] +2020-03-13 22:29:00 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(17): yii\base\Application->run() +#3 {main} +2020-03-13 22:29:00 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45778' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109740.478 + 'REQUEST_TIME' => 1584109740 +] +2020-03-13 22:29:20 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(17): yii\base\Application->run() +#3 {main} +2020-03-13 22:29:20 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45786' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109760.796 + 'REQUEST_TIME' => 1584109760 +] +2020-03-13 22:30:07 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:30:07 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45796' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109807.464 + 'REQUEST_TIME' => 1584109807 +] +2020-03-13 22:31:42 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:31:42 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45912' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584109902.455 + 'REQUEST_TIME' => 1584109902 +] +2020-03-13 22:35:31 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:35:31 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '45986' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110131.009 + 'REQUEST_TIME' => 1584110131 +] +2020-03-13 22:37:01 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:37:01 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46006' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110221.536 + 'REQUEST_TIME' => 1584110221 +] +2020-03-13 22:37:20 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:37:20 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46016' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110240.92 + 'REQUEST_TIME' => 1584110240 +] +2020-03-13 22:39:55 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:39:54 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_USER_AGENT' => 'PostmanRuntime/7.23.0' + 'HTTP_ACCEPT' => '*/*' + 'HTTP_CACHE_CONTROL' => 'no-cache' + 'HTTP_POSTMAN_TOKEN' => 'ae532e1c-1c28-4b69-8a7d-5d0986917f7c' + 'HTTP_HOST' => 'api.tld' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate, br' + 'HTTP_CONNECTION' => 'keep-alive' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46092' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110393.474 + 'REQUEST_TIME' => 1584110393 +] +2020-03-13 22:40:55 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:40:55 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46158' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110454.627 + 'REQUEST_TIME' => 1584110454 +] +2020-03-13 22:42:40 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:42:40 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46348' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110560.116 + 'REQUEST_TIME' => 1584110560 +] +2020-03-13 22:42:54 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:42:54 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_USER_AGENT' => 'PostmanRuntime/7.23.0' + 'HTTP_ACCEPT' => '*/*' + 'HTTP_CACHE_CONTROL' => 'no-cache' + 'HTTP_POSTMAN_TOKEN' => '44a7dc48-8bc9-4350-b960-095987b97fb9' + 'HTTP_HOST' => 'api.tld' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate, br' + 'HTTP_CONNECTION' => 'keep-alive' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46356' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110573.071 + 'REQUEST_TIME' => 1584110573 +] +2020-03-13 22:45:21 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:45:20 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46386' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/site/index.html' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110720.551 + 'REQUEST_TIME' => 1584110720 +] +2020-03-13 22:45:38 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\base\InvalidRouteException: Unable to resolve the request: site/index.html in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Controller.php:128 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction('index.html', Array) +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('site/index.html', Array) +#2 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#3 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#4 {main} + +Next yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php:115 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#1 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#2 {main} +2020-03-13 22:45:38 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46392' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/site/index.html' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110738.152 + 'REQUEST_TIME' => 1584110738 +] +2020-03-13 22:47:54 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:47:54 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46438' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110874.243 + 'REQUEST_TIME' => 1584110874 +] +2020-03-13 22:47:57 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:47:57 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46438' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110877.558 + 'REQUEST_TIME' => 1584110877 +] +2020-03-13 22:47:59 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:47:59 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46438' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110879.238 + 'REQUEST_TIME' => 1584110879 +] +2020-03-13 22:49:39 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:49:39 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_USER_AGENT' => 'PostmanRuntime/7.23.0' + 'HTTP_ACCEPT' => '*/*' + 'HTTP_CACHE_CONTROL' => 'no-cache' + 'HTTP_POSTMAN_TOKEN' => 'a6e39924-7e10-4a5d-a594-29846fa8473d' + 'HTTP_HOST' => 'api.tld' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate, br' + 'HTTP_CONNECTION' => 'keep-alive' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46490' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584110979.189 + 'REQUEST_TIME' => 1584110979 +] +2020-03-13 22:55:01 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 22:55:01 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_CACHE_CONTROL' => 'max-age=0' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '46612' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584111300.737 + 'REQUEST_TIME' => 1584111300 +] +2020-03-13 23:07:40 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-13 23:07:38 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '52716' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/site/update' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584112058.419 + 'REQUEST_TIME' => 1584112058 +] +2020-03-18 15:08:37 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-18 15:08:34 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '42238' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1584515314.385 + 'REQUEST_TIME' => 1584515314 +] +2020-03-24 18:01:45 [172.17.0.1][-][-][error][yii\web\HttpException:404] yii\web\NotFoundHttpException: Page not found. in /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Request.php:287 +Stack trace: +#0 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/web/Application.php(82): yii\web\Request->resolve() +#1 /data/wwwroot/yii2cms/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) +#2 /data/wwwroot/yii2cms/api/web/index.php(15): yii\base\Application->run() +#3 {main} +2020-03-24 18:01:44 [172.17.0.1][-][-][info][application] $_GET = [] + +$_POST = [] + +$_FILES = [] + +$_COOKIE = [] + +$_SERVER = [ + 'HTTP_HOST' => 'api.tld' + 'HTTP_CONNECTION' => 'keep-alive' + 'HTTP_UPGRADE_INSECURE_REQUESTS' => '1' + 'HTTP_USER_AGENT' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36' + 'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' + 'HTTP_ACCEPT_ENCODING' => 'gzip, deflate' + 'HTTP_ACCEPT_LANGUAGE' => 'zh-CN,zh;q=0.9' + 'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin' + 'LD_LIBRARY_PATH' => '/usr/local/apache/lib' + 'SERVER_SIGNATURE' => '' + 'SERVER_SOFTWARE' => 'Apache' + 'SERVER_NAME' => 'api.tld' + 'SERVER_ADDR' => '172.17.0.3' + 'SERVER_PORT' => '80' + 'REMOTE_ADDR' => '172.17.0.1' + 'DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'REQUEST_SCHEME' => 'http' + 'CONTEXT_PREFIX' => '' + 'CONTEXT_DOCUMENT_ROOT' => '/data/wwwroot/yii2cms/api/web' + 'SERVER_ADMIN' => 'you@example.com' + 'SCRIPT_FILENAME' => '/data/wwwroot/yii2cms/api/web/index.php' + 'REMOTE_PORT' => '35940' + 'GATEWAY_INTERFACE' => 'CGI/1.1' + 'SERVER_PROTOCOL' => 'HTTP/1.1' + 'REQUEST_METHOD' => 'GET' + 'QUERY_STRING' => '' + 'REQUEST_URI' => '/' + 'SCRIPT_NAME' => '/index.php' + 'PHP_SELF' => '/index.php' + 'REQUEST_TIME_FLOAT' => 1585044103.538 + 'REQUEST_TIME' => 1585044103 +] diff --git a/api/web/favicon.ico b/api/web/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..580ed732e86556ec57f3f3395a210246d679c076 Binary files /dev/null and b/api/web/favicon.ico differ diff --git a/api/web/index-test.php b/api/web/index-test.php new file mode 100644 index 0000000000000000000000000000000000000000..1500036e8415007eff0e6540849bcb1c9686cd02 --- /dev/null +++ b/api/web/index-test.php @@ -0,0 +1,28 @@ +run(); diff --git a/api/web/index.php b/api/web/index.php new file mode 100644 index 0000000000000000000000000000000000000000..b428a98e74c814c842ee52620cb0f4ace790e0c9 --- /dev/null +++ b/api/web/index.php @@ -0,0 +1,15 @@ +run(); diff --git a/api/web/robots.txt b/api/web/robots.txt new file mode 100755 index 0000000000000000000000000000000000000000..77470cb39f05f70a5b709b68304d0756bab75a0d --- /dev/null +++ b/api/web/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100755 index 0000000000000000000000000000000000000000..f4a98f44dcc16af9d296bdbde3a59ad301f34336 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,4 @@ +FROM yiisoftware/yii2-php:7.2-apache + +# Change document root for Apache +RUN sed -i -e 's|/app/web|/app/backend/web|g' /etc/apache2/sites-available/000-default.conf \ No newline at end of file diff --git a/backend/codeception.yml b/backend/codeception.yml new file mode 100755 index 0000000000000000000000000000000000000000..98615deec3a0f788e1b7b0446e59b337f4934d93 --- /dev/null +++ b/backend/codeception.yml @@ -0,0 +1,15 @@ +namespace: backend\tests +actor_suffix: Tester +paths: + tests: tests + output: tests/_output + data: tests/_data + support: tests/_support +settings: + bootstrap: _bootstrap.php + colors: true + memory_limit: 1024M +modules: + config: + Yii2: + configFile: 'config/codeception-local.php' diff --git a/backend/components/Icon.php b/backend/components/Icon.php new file mode 100755 index 0000000000000000000000000000000000000000..01a270cf478853d750308fda76a43465cc3696bf --- /dev/null +++ b/backend/components/Icon.php @@ -0,0 +1,26 @@ +session; + if (empty($filename)) { + if ($session->has('source') && $session->has('packagefile')) { + $this->source = $session->get('source'); + $this->packagefile = $session->get('packagefile'); + if (is_dir($this->source) && is_file($this->packagefile)) { + $retval = $this->unpack(); + } else { + $session->addFlash('error', Yii::t('installer', 'INSTALL_PACKAGE_FILE_DIRECTORIES_NOT_EXIST')); + return false; + } + } else { + return false; + } + } else { + if (is_file($filename)) { + $retval = $this->unpack($filename, true); + } else { + $retval = $this->getRetval($filename, null); + } + + if (false === $retval) { + FileHelper::unlink($filename); + return false; + } + if (false === $retval['type']) { + FileHelper::removeDirectory($retval['extractdir']); + FileHelper::unlink($retval['packagefile']); + return false; + } + $this->source = $retval['extractdir']; + $this->packagefile = $retval['packagefile']; + } + $type = strtolower($retval['type']); + $this->getManifest(); + $params = ['route' => 'install', 'manifest' => $this->manifest]; + $adapter = $this->getAdapter($type, $params); + + if (is_object($adapter)) { + $res = $adapter->install(); + } else { + $params = [ + 'action' => Yii::t('installer', 'INSTALL'), + 'error' => Yii::t('installer', 'ERROR_UNKNOWN_TYPE') + ]; + $session->addFlash('error', Yii::t('installer', 'ABORT_ROLLBACK', $params)); + $res = false; + } + + if (!$session->has('source') || !$session->has('packagefile')) { + FileHelper::removeDirectory($retval['extractdir']); + if (!is_null($retval['packagefile'])) { + FileHelper::unlink($retval['packagefile']); + } + } + + return $res; + } + + /** + * 卸载扩展 + * @param array $ids 扩展ID + * @return boolean 成功返回 TRUE,失败返回 FALSE + */ + public function uninstall($ids) + { + $session = Yii::$app->session; + $extensions = Extensions::findAll($ids); + $result = false; + foreach ($extensions as $extension) { + $params = ['extension' => $extension, 'route' => 'uninstall']; + $adapter = $this->getAdapter($extension->type, $params); + $typeMsg = Yii::t('installer', strtoupper($extension->type)); + if (!is_object($adapter)) { + $msg = Yii::t('installer', 'ERROR_UNINSTALLING_TYPE', $typeMsg); + $session->addFlash('error', $msg); + continue; + } + + $result = $adapter->uninstall($extension); + + if ($result) { + $msg = Yii::t('installer', 'UNINSTALLING_TYPE_SUCCESSFUL', $typeMsg); + $session->addFlash('success', $msg); + $result = true; + continue; + } else { + $msg = Yii::t('installer', 'ERROR_UNINSTALLING_TYPE', $typeMsg); + $session->addFlash('error', $msg); + continue; + } + } + return $result; + } + + /** + * Get whether this installer is uninstalling extensions which are part of a package + * @return bool + */ + public function isPackageUninstall() + { + return $this->packageUninstall; + } + + /** + * Set whether this installer is uninstalling extensions which are part of a package + * @param boolean $uninstall True if a package triggered the uninstall, false otherwise + */ + public function setPackageUninstall($uninstall) + { + $this->packageUninstall = $uninstall; + } + + /** + * 解压扩展压缩包 + * @param string $filename 扩展压缩包路径 + * @return array|boolean 成功返回相关信息数组,否则返回 FALSE。 + * @throws \Exception + */ + public function unpack($filename = '') + { + if (empty($filename)) { + return $this->getRetval($this->source, $this->packagefile); + } + $tmpdir = uniqid('install_'); + $extractdir = FileHelper::normalizePath(dirname($filename) . '/' . $tmpdir); + $archivename = realpath($filename); + $archive = UnifiedArchive::open($archivename); + $files = $archive->getFileNames(); + $pattern = '/[\w\/\-\.#\+]+/'; + $unfiles = []; + foreach ($files as $file) { + preg_match($pattern, $file, $matches); + if ($file !== $matches[0]) { + $unfiles[] = $file; + } + } + if (empty($unfiles)) { + $result = $archive->extractFiles($extractdir); + if (is_int($result) && $result > 0) { + return $this->getRetval($extractdir, $archivename); + } + } else { + $message = Yii::t('installer', 'FILENAMES_FORMAT_INCORRECT_FILES', [ + 'files' => implode('
', $unfiles) + ]); + Yii::$app->session->addFlash('error', $message); + } + return false; + } + + /** + * 获取扩展摘要信息数组 + * @param string $extractDir 扩展解压目录路径 + * @param string $archiveName 上传的压缩包文件路径 + * @return mixed array + */ + private function getRetval($extractDir, $archiveName) + { + $retval['extractdir'] = $extractDir; + $retval['packagefile'] = $archiveName; + $foldersOne = FileHelper::findDirectories($extractDir, ['recursive' => false]); + $filesOne = FileHelper::findFiles($extractDir, ['recursive' => false]); + $dirList = array_merge($foldersOne, $filesOne); + if (count($dirList) === 1 && is_dir($dirList[0])) { + $extractDir = $dirList[0]; + } + $retval['dir'] = $extractDir; + $retval['type'] = $this->detectType($extractDir); + return $retval; + } + + /** + * 查明扩展类型 + * @param string $dir 解压后的扩展目录 + * @param boolean $returnXmlObj 是否返回 XML 对象 + * @return boolean|object|string 成功返回相关信息的数组或对象,否则返回 FALSE。 + */ + public function detectType($dir, $returnXmlObj = false) + { + $files = FileHelper::findFiles($dir, ['only' => ['*.xml'], 'recursive' => false]); + if (empty($files)) { + Yii::$app->session->addFlash('error', Yii::t('installer', 'ERROR_NOT_FIND_XML_SETUP_FILE')); + return false; + } + + foreach ($files as $file) { + $xml = simplexml_load_file($file); + if (!$xml) { + continue; + } + $name = $xml->getName(); + if ($name !== 'extension' && $name !== 'metafile') { + unset($xml); + continue; + } + $type = (string)$xml->attributes()->type; + if ($returnXmlObj) { + return $this->parseXMLInstall($xml, $file); + } else { + unset($xml); + return $type; + } + } + Yii::$app->session->addFlash('error', Yii::t('installer', 'ERROR_NOT_FIND_XML_SETUP_FILE')); + return false; + } + + /** + * 解析 XML 安装文件 + * @param \SimpleXMLElement $xml XML 对象 + * @param string $path XML 文件路径 + * @return array 返回相关信息数组 + */ + private function parseXMLInstall(\SimpleXMLElement $xml, $path) + { + $data = []; + $data['name'] = (string)$xml->name; + $data['type'] = (string)$xml->attributes()->type; + $data['creationDate'] = ((string)$xml->creationDate) ?: 'Unknown'; + $data['author'] = ((string)$xml->author) ?: 'Unknown'; + $data['copyright'] = (string)$xml->copyright; + $data['authorEmail'] = (string)$xml->authorEmail; + $data['authorUrl'] = (string)$xml->authorUrl; + $data['version'] = (string)$xml->version; + $data['description'] = trim((string)$xml->description); + $data['group'] = (string)$xml->attributes()->group; + $data['filename'] = basename($path, '.xml'); + if ($xml->backend && isset($xml->backend->messages) && $xml->backend->messages->attributes()->main) { + $data['langCat'] = (string)$xml->backend->messages->attributes()->main; + } elseif (isset($xml->messages)) { + $data['langCat'] = (string)($xml->messages->attributes()->main ?: $xml->name); + } + return $data; + } + + /** + * Get the upgrade switch + * @return bool + */ + public function isUpgrade() + { + return (string)$this->manifest->attributes()->method === 'upgrade'; + } + + /** + * 获取 XML 设置文件 + * @return boolean + */ + public function getManifest() + { + if (!is_object($this->manifest)) { + return $this->findManifest(); + } + return $this->manifest; + } + + /** + * 查找 XML 设置文件 + * @return boolean + */ + public function findManifest() + { + if (!is_dir($this->source) && !is_dir($this->getPath('source'))) { + return false; + } + + $this->source = $this->source ?? $this->getPath('source'); + + $parentXmlFiles = FileHelper::findFiles($this->source, ['only' => ['*.xml'], 'recursive' => false]); + $allXmlFiles = FileHelper::findFiles($this->source, ['only' => ['*.xml']]); + + $xmlFiles = array_unique(array_merge($parentXmlFiles, $allXmlFiles)); + + if (!empty($xmlFiles)) { + foreach ($xmlFiles as $file) { + $manifest = $this->isManifest($file); + if ($manifest !== false) { + $this->manifest = $manifest; + $this->manifestFile = $file; + $this->source = dirname($file); + return true; + } + } + } + + Yii::$app->session->addFlash('error', Yii::t('installer', 'ERROR_NOT_FIND_XML_SETUP_FILE')); + return false; + } + + /** + * 文件是否为有效的安装清单XML文件 + * @param string $file 文件路径 + * @return \SimpleXMLElement|boolean 成功返回 SimpleXMLElement,否则返回 FALSE + */ + private function isManifest($file) + { + $xml = simplexml_load_file($file); + if (!$xml) { + return false; + } + if ($xml->getName() !== 'extension') { + return false; + } + return $xml; + } + + /** + * 获取应用ID + * @param string $client 应用名称 + * @return int + */ + public function getClientId($client = null) + { + $clientName = $client === null ? (string)$this->manifest->attributes()->client : $client; + $clients = Clients::findOne(['name' => $clientName]); + $clientId = $clients === null ? 0 : $clients->id; + return $clientId; + } + + /** + * 存储到扩展数据表中 + * @param array $data 扩展数据 + * @return boolean|int 成功返回 ID,否则返回 FALSE + */ +// private function storeExtensions($data) +// { +// $extensions = Extensions::findOne([ +// 'package_id' => $data['package_id'], +// 'name' => $data['name'], +// 'type' => $data['type'], +// 'element' => $data['element'], +// 'client_id' => $data['client_id'] +// ]); +// +// if (!is_object($extensions)) { +// $extensions = new Extensions(); +// } +// +// $extensions->attributes = $data; +// +// if ($extensions->save()) { +// return $extensions->id; +// } else { +// return false; +// } +// } + + /** + * Gets a unique language SEF string. + * @param string $languageTag Language Tag + * @return string + */ +// private function getSefString($languageTag) +// { +// $langs = explode('-', $languageTag); +// $prefixToFind = $langs[0]; +// +// $language = Languages::findOne(['code' => $languageTag]); +// if ($language === null) { +// $language = Languages::findOne(['sef' => $prefixToFind]); +// return $language === null ? $prefixToFind : strtolower($languageTag); +// } else { +// return $language->sef; +// } +// } + + /** + * Get the filtered extension element from the manifest + * @param string $type Extension of type + * @param string $element Optional element name to be converted + * @return string The filtered element + */ +// private function getElement($type = null, $element = null) +// { +// if (!$type) { +// $type = (string) $this->manifest->attributes()->type; +// } +// +// switch ($type) { +// case 'package': +// if (!$element) { +// $element = (string) $this->manifest->packagename; +// $element = 'pkg_' . trim($element); +// } +// break; +// case 'language': +// if (!$element) { +// $element = (string) $this->manifest->tag; +// } +// break; +// default : +// if (!$element) { +// $element = (string) $this->manifest->element; +// } +// if (!$element) { +// $element = (string) $this->manifest->name; +// } +// } +// +// return $element; +// } + + /** + * 通过应用包的 manifest XML 文件中 files 标签解析出子扩展信息 + * @param \SimpleXMLElement $element A SimpleXMLElement from which to load data from + * @return \stdClass 返回扩展对象 + */ +// private function getExtensionInfo(\SimpleXMLElement $element = null) +// { +// if ($element) { +// $obj = new \stdClass(); +// $obj->type = (string) $element->attributes()->type; +// $obj->id = (string) $element->attributes()->id; +// $obj->client = ''; +// $obj->client_id = 0; +// $obj->group = ''; +// switch ($obj->type) { +// case 'component': +// // By default a component doesn't have anything +// break; +// case 'module': +// case 'template': +// case 'language': +// $obj->client = (string) $element->attributes()->client; +// $tmp_client_id = $this->getClientId($obj->client); +// if ($tmp_client_id) { +// $obj->client_id = $tmp_client_id; +// } else { +// $this->alert['warning'][] = Yii::t('installer', 'Invalid client identifier specified in extension manifest.'); +// } +// break; +// case 'plugin': +// $obj->group = (string) $element->attributes()->group; +// break; +// default : +// if ($element->attributes()->client) { +// $obj->client_id = $this->getClientId(); +// } +// if ($element->attributes()->group) { +// $obj->group = (string) $element->attributes()->group; +// } +// break; +// } +// $obj->filename = (string) $element; +// return $obj; +// } +// } + /** + * Gets the extension id. + * @param string $type The extension type. + * @param string $id The name of the extension (the element field). + * @param integer $client The client id + * @param string $group The extension group + * @return object + */ +// private function getExtensionObject($type, $id, $client, $group) +// { +// $extension = Extensions::findOne([ +// 'type' => $type, +// 'element' => $id, +// 'client_id' => $this->getClientId($client), +// 'folder' => $group +// ]); +// +// return $extension; +// } + /** + * Generates a manifest cache + * @return array serialised manifest data + */ + public function generateManifestCache() + { + return $this->parseXMLInstall($this->manifest, $this->manifestFile); + } + + /** + * Method to parse the parameters of an extension, build the JSON string for its default parameters, and return the JSON string. + * @return string JSON string of parameter values + */ + public function getParams() + { + if (!isset($this->manifest->backend->config->fields) && !isset($this->manifest->config->fields)) { + return ''; + } + + $fields = $this->manifest->backend->config->fields ?? $this->manifest->config->fields; + + if (count($fields->field) === 0 && count($fields->fieldset) === 0) { + return ''; + } + + $ini = []; + + if (count($fields->fieldset) > 0) { + foreach ($fields->fieldset as $item) { + if (count($item->field) > 0) { + foreach ($item->field as $field) { + $name = $field->attributes()->name; + $value = $field->attributes()->default; + if (is_null($name) || is_null($value)) { + continue; + } + $ini[(string)$name] = (string)$value; + } + } + } + } else { + foreach ($fields->field as $field) { + $name = $field->attributes()->name; + $value = $field->attributes()->default; + if (is_null($name) || is_null($value)) { + continue; + } + $ini[(string)$name] = (string)$value; + } + } + + return empty($ini) ? '' : json_encode($ini); + } + + /** + * Pushes a step onto the installer stack for rolling back steps + * @param array $step Installer step + */ + public function pushStep($step) + { + $this->stepStack[] = $step; + } + + /** + * Installation abort method + * @param string $msg Abort message from the installer + * @param string $type Package type if defined + * @return boolean + * @throws ErrorException + * @throws Exception + * @throws \Throwable + */ + public function abort($msg = null, $type = null) + { + $retval = true; + $step = array_pop($this->stepStack); + if ($msg) { + Yii::$app->session->addFlash('error', $msg); + } + while ($step != null) { + switch ($step['type']) { + case 'file': + $stepval = FileHelper::unlink($step['path']); + break; + case 'folder': + $stepval = FileHelper::removeDirectory($step['path']); + break; + case 'query': + $stepval = $this->parseSQL($step['script']); + break; + case 'extension': + try { + $extension = Extensions::findOne($step['id']); + $extension->delete(); + $stepval = true; + } catch (Exception $e) { + $errorMsg = Yii::t('installer', 'ABORT_ERROR_DELETING_EXTENSIONS_RECORD'); + Yii::$app->session->addFlash('warning', $errorMsg); + $stepval = false; + } + break; + default: + if ($type && is_object($this->_adapters[$type])) { + // Build the name of the custom rollback method for the type + $method = '_rollback_' . $step['type']; + + // Custom rollback method handler + if (method_exists($this->_adapters[$type], $method)) { + $stepval = $this->_adapters[$type]->$method($step); + } + } else { + $stepval = false; + } + break; + } + // Only set the return value if it is false + if ($stepval === false) { + $retval = false; + } + // Get the next step and continue + $step = array_pop($this->stepStack); + } + return $retval; + } + + /** + * 获取适配器 + * @param $name 适配器名称 + * @param array $options 适配器参数 + * @return bool|mixed + */ + public function getAdapter($name, $options = []) + { + $this->getAdapters($options); + + if (!key_exists($name, $this->_adapters)) { + return false; + } + + return $this->_adapters[$name]; + } + + /** + * 获取所有适配器 + * @param array $options 参数 + * @param array $custom 自定义参数 + * @return array + */ + public function getAdapters($options = [], $custom = []) + { + $adapterPath = __DIR__ . DIRECTORY_SEPARATOR . 'adapter' . DIRECTORY_SEPARATOR; + $rootPath = Yii::getAlias('@root'); + $pos = strpos($adapterPath, $rootPath); + if ($pos !== 0) { + return $this->_adapters; + } + $classPrefix = str_replace('/', '\\', substr($adapterPath, strlen($rootPath))); + + $files = new \DirectoryIterator($adapterPath); + foreach ($files as $file) { + $fileName = $file->getFilename(); + if (!$file->isFile() || $file->getExtension() !== 'php') { + continue; + } + $name = str_ireplace(['.php', 'adapter'], '', trim($fileName)); + + $class = $classPrefix . ucfirst($name) . 'Adapter'; + + if (!class_exists($class)) { + $class = $classPrefix . ucfirst($name); + } + if (!class_exists($class)) { + continue; + } + $this->_adapters[strtolower($name)] = new $class($this, $options); + } + + // Add any custom adapters if specified + if (count($custom) > 0) { + foreach ($custom as $key => $adapter) { + if (!class_exists($adapter)) { + continue; + } + $this->_adapters[$key] = new $adapter($this, $options); + } + } + + return $this->_adapters; + } + + /** + * Get an installer path by name + * @param string $name Path name + * @param string $default Default value + * @return string Path + */ + public function getPath($name, $default = null) + { + return $this->paths[$name] ?? $default; + } + + /** + * Sets an installer path by name + * @param string $name Path name + * @param string $value Path + */ + public function setPath($name, $value) + { + $this->paths[$name] = $value; + } + + public function findDeletedFiles($oldFiles, $newFiles) + { + $folders = $files = $containers = $foldersDeleted = $filesDeleted = []; + foreach ($newFiles as $file) { + switch ($file->getName()) { + case 'folder': + $folders[] = (string)$file; + break; + case 'file': + default: + $files[] = (string)$file; + $containerParts = explode('/', dirname((string)$file)); + $container = ''; + foreach ($containerParts as $part) { + if (!empty($container)) { + $container .= DIRECTORY_SEPARATOR; + } + $container .= $part; + if (!in_array($container, $containers)) { + $containers[] = $container; + } + } + break; + } + } + foreach ($oldFiles as $file) { + switch ($file->getName()) { + case 'folder': + if (!in_array((string)$file, $folders) && !in_array((string)$file, $containers)) { + $foldersDeleted[] = (string)$file; + } + break; + case 'file': + default: + if (!in_array((string)$file, $files) && !in_array((string)$file, $folders)) { + $filesDeleted[] = (string)$file; + } + break; + } + } + return ['folders' => $foldersDeleted, 'files' => $filesDeleted]; + } + + /** + * 解析文件 + * @param \SimpleXMLElement $element + * @param string $client + * @param \SimpleXMLElement $oldFiles + * @return bool + * @throws ErrorException + * @throws \yii\base\Exception + */ + public function parseFiles(\SimpleXMLElement $element, $client = null, $oldFiles = null) + { + if (!$element || !count($element->children())) { + return false; + } + + if (!is_string($client)) { + $client = 'root'; + } + $destination = $this->getPath('extension_' . $client); + + if ($oldFiles && ($oldFiles instanceof \SimpleXMLElement)) { + $oldEntries = $oldFiles->children(); + if (count($oldEntries)) { + $deletions = $this->findDeletedFiles($oldEntries, $element->children()); + foreach ($deletions['folders'] as $deletedFolder) { + FileHelper::removeDirectory($destination . '/' . $deletedFolder); + } + foreach ($deletions['files'] as $deletedFile) { + FileHelper::unlink($destination . '/' . $deletedFile); + } + } + } + + foreach ($element->children() as $child) { + $childType = $child->getName() === 'folder' ? 'folder' : 'file'; + if ($childType === 'folder') { + $type = (string)$child->attributes()->type; + switch ($type) { + case 'main': + $dest = $destination; + break; + case 'view': + $dest = $destination . '/views'; + break; + case 'media': + $dest = $destination . '/media'; + break; + default: + $dest = $destination . '/' . (string)$child; + break; + } + if ($child && is_dir($this->source . '/' . (string)$child)) { + $source = $this->source . '/' . (string)$child; + } else { + $source = $this->source; + } + if ($dest) { + FileHelper::copyDirectory($source, $dest); + } + } else { + $source = $this->source . '/' . (string)$child; + $dest = $destination . '/' . (string)$child; + if (is_file($source) && is_null($child->attributes()->theme)) { + FileHelper::createDirectory(dirname($dest)); + copy($source, $dest); + } + } + } + } + + /** + * 解析SQL + * @param \SimpleXMLElement $element + * @return bool + * @throws \yii\db\Exception + */ + public function parseSQL(\SimpleXMLElement $element) + { + if (!$element || !count($element->children())) { + return false; + } + $db = Yii::$app->db->createCommand(); + foreach ($element->table as $table) { + $action = (string)$table->attributes()->action; + $tableName = '{{%' . (string)$table->attributes()->name . '}}'; + $tableOptions = (string)$table->attributes()->options; + + if ($action === 'create') { + if (isset($table->column)) { + $columns = []; + foreach ($table->column as $column) { + if (isset($column->attributes()->name)) { + $columns[(string)$column->attributes()->name] = (string)$column->attributes()->type; + } else { + $columns[] = (string)$column->attributes()->type; + } + } + $db->createTable($tableName, $columns, $tableOptions)->execute(); + } + } elseif ($action === 'drop') { + $db->dropTable($tableName)->execute(); + } + + if (isset($table->index)) { + foreach ($table->index as $index) { + $indexAction = (string)$index->attributes()->action; + $indexName = (string)$index->attributes()->name; + $indexColumns = trim((string)$index->attributes()->columns); + $indexUnique = (int)$index->attributes()->unique > 0 ? true : false; + if ($indexAction === 'create' && !empty($indexColumns)) { + $db->createIndex($indexName, $tableName, $indexColumns, $indexUnique)->execute(); + } + if ($indexAction === 'drop') { + $db->dropIndex($indexName, $tableName)->execute(); + } + } + } + } + } + + /** + * Method to parse through a languages element of the installation manifest and take appropriate action. + * @param \SimpleXMLElement $element The XML node to process + * @param string $client + * @return bool + */ + public function parseMessages(\SimpleXMLElement $element, $client) + { + if (!$element || !count($element->children())) { + return false; + } + $dest = Yii::getAlias('@' . $client); + $source = $this->source; + foreach ($element->message as $message) { + $file = 'messages/' . $message->attributes()->tag . '/' . (string)$message; + if (is_file($source . '/' . $file)) { + copy($source . '/' . $file, $dest . '/' . $file); + } elseif (is_file($source . '/' . $client . '/' . $file)) { + copy($source . '/' . $client . '/' . $file, $dest . '/' . $file); + } + } + return true; + } + + /** + * 模型操作数据库时产生的错误信息转化成字符串 + * @param array $errors 错误信息 + * @param string $glue 分隔符 + * @return string + */ + public function errorsToString($errors, $glue = '
  ') + { + $errorString = ''; + foreach ($errors as $error) { + $errorString .= $glue . implode($glue, $error); + } + return $errorString; + } + + public function removeFiles($element, $client = null) + { + if (!$element || !count($element->children())) { + return true; + } + + $retval = true; + + $files = $element->children(); + + if (count($files) === 0) { + return true; + } + + $folder = ''; + + if (!is_null($client)) { + $client = Clients::find()->where(['name' => $client])->one(); + } + + switch ($element->getName()) { + case 'media': + if ((string)$element->attributes()->destination) { + $folder = (string)$element->attributes()->destination; + } + $source = Yii::getAlias('@root/common/media/' . $folder); + break; + case 'messages': + $msgClient = (string)$element->attributes()->client; + if ($msgClient) { + $client = Clients::find()->where(['name' => $msgClient])->one(); + $source = Yii::getAlias('@root' . $client->path . '/messages'); + } else { + $source = is_null($client) ? '' : Yii::getAlias('@root' . $client->path . '/messages'); + } + break; + default : + $source = $this->getPath('extension_' . (is_null($client) ? 'root' : $client->name)); + break; + } + + foreach ($files as $file) { + if ($file->getName() === 'message' && (string)$file->attributes()->tag !== '') { + $tag = (string)$file->attributes()->tag; + if ($source) { + $path = $source . '/' . $tag . '/' . basename((string)$file); + } else { + $targetClient = Clients::find()->where(['name' => (string)$file->attributes()->client])->one(); + $path = Yii::getAlias('@root') . $targetClient->path . '/messages/' . $tag . '/' . basename((string)$file); + } + if (!is_dir(dirname($path))) { + continue; + } + } else { + $path = $source . '/' . $file; + } + + try { + if (is_dir($path)) { + FileHelper::removeDirectory($path); + } else { + FileHelper::unlink($path); + } + } catch (ErrorException $e) { + $errorMsg = Yii::t('installer', 'FAILED_DELETE_' . (is_dir($path) ? 'DIR' : 'FILE'), Helper::getRelativePath($path)); + Yii::$app->session->addFlash('error', $errorMsg); + Yii::warning($e->getMessage(), 'installer'); + $retval = false; + } + } + + if (!empty($folder)) { + FileHelper::removeDirectory($folder); + } + + return $retval; + } +} diff --git a/backend/components/InstallerAdapter.php b/backend/components/InstallerAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..2f1eca7d02e1a10a3eb025686ee7881ad5d91594 --- /dev/null +++ b/backend/components/InstallerAdapter.php @@ -0,0 +1,398 @@ +parent = $parent; + $this->options = $options; + $this->init(); + } + + /** + * 初始化 + * @throws \ReflectionException + */ + public function init() + { + if (!empty($this->options)) { + $this->setProperties($this->options); + } + $this->extension = new Extensions(); + $reflection = new \ReflectionClass(get_called_class()); + $this->type = strtolower(str_replace('Adapter', '', $reflection->getShortName())); + } + + /** + * 扩展安装 + * @return bool + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\db\Exception + */ + public function install() + { + $manifest = $this->getManifest(); + $description = (string)$manifest->description; + $this->name = (string)$manifest->name; + if ($description) { + $manifestCache = $this->parent->generateManifestCache(); + $isLangCat = (isset($manifestCache['langCat']) && !empty($manifestCache['langCat'])); + $this->parent->message = $isLangCat ? Yii::t($manifestCache['langCat'], $description) : $description; + } else { + $this->parent->message = ''; + } + $this->element = $this->getElement(); + + try { + $this->setupInstallPaths(); + } catch (\RuntimeException $re) { + $this->parent->abort($re->getMessage()); + return false; + } + + try { + $this->checkExistingExtension(); + } catch (\RuntimeException $re) { + $this->parent->abort($re->getMessage()); + return false; + } + + try { + $this->checkExtensionInFilesystem(); + } catch (\RuntimeException $re) { + $this->parent->abort($re->getMessage()); + return false; + } + + if ($this->route === 'update') { + try { + $this->setupUpdates(); + } catch (\RuntimeException $re) { + $this->parent->abort($re->getMessage()); + return false; + } + } + + try { + $this->createExtensionRoot(); + } catch (\yii\base\Exception $ex) { + $this->parent->abort($ex->getMessage()); + return false; + } + +// try { +// FileHelper::createDirectory($this->parent->getPath('extension_backend')); +// } catch (\yii\base\Exception $ex) { +// $this->parent->pushStep(['type' => 'folder', 'path' => $this->parent->getPath('extension_backend')]); +// $this->parent->abort($ex->getMessage()); +// return false; +// } + + try { + $this->copyBaseFiles(); + } catch (\yii\base\Exception $ex) { + $this->parent->abort($ex->getMessage()); + return false; + } + + $this->parseOptionalTags(); + + try { + $this->storeExtension(); + } catch (\RuntimeException $re) { + $this->parent->abort($re->getMessage()); + return false; + } + + try { + $this->parseQueries(); + } catch (\RuntimeException $re) { + // Install failed, roll back changes + $this->parent->abort($re->getMessage()); + return false; + } + + try { + $this->finaliseInstall(); + } catch (\RuntimeException $re) { + // Install failed, roll back changes + $this->parent->abort($re->getMessage()); + return false; + } + return $this->extension->id; + } + + /** + * Get the manifest object. + * @return \SimpleXMLElement Manifest object + */ + public function getManifest() + { + return $this->manifest; + } + + /** + * Get the filtered extension element from the manifest + * @param string $element Optional element name to be converted + * @return string The filtered element + */ + public function getElement($element = null) + { + if (!$element) { + // Ensure the element is a string + $element = (string)$this->getManifest()->element; + } + if (!$element) { + $element = (string)$this->getManifest()->name; + } + + return $element; + } + + /** + * Set the object properties based on a named array/hash. + * @param mixed $properties Either an associative array or another object. + * @return boolean + */ + public function setProperties($properties) + { + if (is_array($properties) || is_object($properties)) { + foreach ((array)$properties as $k => $v) { + // Use the set function which might be overridden. + $this->set($k, $v); + } + + return true; + } + + return false; + } + + /** + * Modifies a property of the object, creating it if it does not already exist. + * @param string $property The name of the property. + * @param mixed $value The value of the property to set. + * @return mixed Previous value of the property. + */ + public function set($property, $value = null) + { + $previous = isset($this->$property) ? $this->$property : null; + $this->$property = $value; + + return $previous; + } + + /** + * Method to do any prechecks and setup the install paths for the extension + * @return void + */ + abstract protected function setupInstallPaths(); + + /** + * Method to copy the extension's base files from the `` tag(s) and the manifest file + * @return void + * @throws \RuntimeException + */ + abstract protected function copyBaseFiles(); + + /** + * Method to store the extension to the database + * @return void + * @throws \RuntimeException + */ + abstract protected function storeExtension(); + + /** + * Method to check if the extension is already present in the database + * @return void + * @throws \RuntimeException + */ + protected function checkExistingExtension() + { + try { + $this->currentExtensionId = $this->extension->findOne([ + 'element' => $this->element, + 'type' => $this->type + ]); + } catch (\yii\db\Exception $e) { + throw new \RuntimeException($e->getMessage(), $e->getCode(), $e); + } + } + + /** + * Method to check if the extension is present in the filesystem, flags the route as update if so + * @throws \yii\base\ErrorException + */ + protected function checkExtensionInFilesystem() + { + if (file_exists($this->parent->getPath('extension_root')) && $this->currentExtensionId) { + $updateElement = $this->manifest->update; + if ($updateElement || $this->parent->isUpgrade()) { + $this->set('route', 'update'); + } + } else { + FileHelper::removeDirectory($this->parent->getPath('extension_root')); + if (!is_null($this->currentExtensionId)) { + $this->currentExtensionId->delete(); + } + } + } + + /** + * Method to create the extension root path if necessary + * @throws yii\base\Exception + */ + protected function createExtensionRoot() + { + $created = FileHelper::createDirectory($this->parent->getPath('extension_root')); + if (!$created) { + $this->parent->pushStep([ + 'type' => 'folder', + 'path' => $this->parent->getPath('extension_root') + ]); + } + } + + /** + * Method to setup the update routine for the adapter + * @return void + */ + protected function setupUpdates() + { + // Some extensions may not have custom setup routines for updates + } + + /** + * Method to parse the queries specified in the `` tags + * @return bool + */ + protected function parseQueries() + { + if (in_array($this->route, ['install', 'uninstall'])) { + return $this->doDatabaseTransactions(); + } elseif ($this->route === 'update') { + if ($this->manifest->update) { + return $this->parent->parseSchemaUpdates($this->manifest->update->schemas, $this->extension->id); + } + } + } + + /** + * Method to handle database transactions for the installer + * @return boolean True on success + */ + protected function doDatabaseTransactions() + { + if (isset($this->manifest->{$this->route}->sql)) { + try { + $this->parent->parseSQL($this->manifest->{$this->route}->sql); + } catch (\yii\db\Exception $e) { + throw new \RuntimeException(Yii::t('installer', 'ABORT_SQL_ERROR', [ + 'action' => ucfirst($this->route), + 'error' => $e->getMessage() + ])); + } + // If installing with success and there is an uninstall script, add an installer rollback step to rollback if needed + if ($this->route === 'install' && isset($this->manifest->uninstall->sql)) { + $this->parent->pushStep(['type' => 'query', 'script' => $this->manifest->uninstall->sql]); + } + } + return true; + } + + /** + * Method to finalise the installation processing + * @return void + * @throws \RuntimeException + */ + protected function finaliseInstall() + { + } + + /** + * Method to parse optional tags in the manifest + */ + protected function parseOptionalTags() + { + // Some extensions may not have optional tags + } + + /** + * Generic update method for extensions + * @return bool + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\db\Exception + */ + public function update() + { + $this->set('route', 'update'); + return $this->install(); + } +} diff --git a/backend/components/VarDumper.php b/backend/components/VarDumper.php new file mode 100755 index 0000000000000000000000000000000000000000..e57bef0e53c553cd272ba6cd34781f72347d48e4 --- /dev/null +++ b/backend/components/VarDumper.php @@ -0,0 +1,87 @@ +item as $item) { + self::xmlExportInternal($item, $level); + } + if ($arg) { + self::$_output .= PHP_EOL . $spaces . ']'; + } + return self::$_output; + } + + /** + * @param \SimpleXMLElement $config variable to be config + * @param int $level 深度等级 + */ + private static function xmlExportInternal(\SimpleXMLElement $config, $level) + { + $type = strtolower((string)$config->attributes()->type); + $key = (string)$config->attributes()->key; + $spaces = str_repeat(' ', $level * 4); + self::$_output .= PHP_EOL . $spaces . ' '; + if ($key) { + self::$_output .= self::export($key); + self::$_output .= ' => '; + } + switch ($type) { + case 'null': + self::$_output .= 'null'; + break; + case 'array': + if (empty($config)) { + self::$_output .= '[]'; + } else { + self::$_output .= '['; + if ($config->item) { + foreach ($config->item as $item) { + self::xmlExportInternal($item, $level + 1); + } + self::$_output .= PHP_EOL . $spaces . ' '; + } + self::$_output .= '],'; + } + break; + case 'function': + case 'integer': + case 'double': + case 'php': + self::$_output .= trim((string)$config) . ','; + break; + case 'string': + self::$_output .= str_replace('\\\\', '\\', self::export((string)$config)) . ','; + break; + case 'boolean': + self::$_output .= in_array(trim((string)$config), ['true', '1', 1], true) ? 'true' : 'false'; + self::$_output .= ','; + break; + default: + self::$_output .= var_export(trim((string)$config), true) . ','; + } + } +} diff --git a/backend/components/adapter/LanguageAdapter.php b/backend/components/adapter/LanguageAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..9dc129420e81562e5cb4890acf7186949d359262 --- /dev/null +++ b/backend/components/adapter/LanguageAdapter.php @@ -0,0 +1,321 @@ +manifest->attributes()->client); + $client = Clients::findOne(['name' => $clientName]); + if (is_null($client)) { + $detail = Yii::t('installer', 'ERROR_UNKNOWN_CLIENT', $clientName); + $msg = Yii::t('installer', 'ABORT_LANGUAGE', $detail); + $this->parent->abort($msg); + return false; + } + $basePath = Yii::getAlias('@root' . $client->path); + $clientId = $client->id; + $element = $this->manifest->files; + return $this->_install($clientName, $basePath, $clientId, $element); + } + + /** + * Install function that is designed to handle individual clients + * @param string $clientName The client name + * @param string $basePath The base name + * @param int $clientId The client id + * @param object $element The XML element + * @return bool|int The extension ID on success, boolean false on failure + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\base\Exception + * @throws \yii\db\Exception + */ + protected function _install($clientName, $basePath, $clientId, &$element) + { + $tag = (string)$this->manifest->tag; + if (!$tag) { + $detail = Yii::t('installer', 'ERROR_NO_LANGUAGE_TAG'); + $msg = Yii::t('installer', 'ABORT_LANGUAGE', $detail); + $this->parent->abort($msg); + return false; + } + $this->set('tag', $tag); + + $this->parent->setPath('extension_' . $clientName, $basePath . '/messages/' . $tag); + + $created = false; + if (!file_exists($this->parent->getPath('extension_' . $clientName))) { + $created = FileHelper::createDirectory($this->parent->getPath('extension_' . $clientName)); + if (!$created) { + $path = Helper::getRelativePath($this->parent->getPath('extension_' . $clientName)); + $detail = Yii::t('installer', 'ERROR_CREATE_FOLDER_FAILED', $path); + $msg = Yii::t('installer', 'ABORT_LANGUAGE', $detail); + $this->parent->abort($msg); + return false; + } + } else { + $updateElement = $this->manifest->update; + if ($updateElement || $this->parent->isUpgrade()) { + return $this->update(); + } else { + $messagesPath = $this->parent->getPath('extension_' . $clientName); + $paramMsg = Yii::t('installer', 'ERROR_FOLDER_IN_USE', Helper::getRelativePath($messagesPath)); + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ABORT_LANGUAGE', $paramMsg)); + return false; + } + } + + /* + * If we created the language directory we will want to remove it if we + * have to roll back the installation, so let's add it to the installation + * step stack + */ + if ($created) { + $this->parent->pushStep(['type' => 'folder', 'path' => $this->parent->getPath('extension_' . $clientName)]); + } + + // Copy all the necessary files + if ($this->parent->parseFiles($element, $clientName) === false) { + // Install failed, rollback changes + $this->parent->abort(); + return false; + } + $this->extension->name = (string)$this->manifest->name; + $this->extension->type = 'language'; + $this->extension->element = (string)$this->manifest->tag; + $this->extension->folder = ''; + $this->extension->client_id = $clientId; + $this->extension->enabled = 1; + $this->extension->protected = 0; + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + $this->extension->params = $this->parent->getParams(); + $this->extension->status = 1; + if (!$this->extension->save()) { + $errors = $this->parent->errorsToString($this->extension->getErrors()); + $this->parent->abort(Yii::t('installer', 'ABORT_LANGUAGE', $errors)); + } + if ($clientName === Helper::getClient()) { + // Prepare language data for store. + $languages = Languages::findOne(['code' => (string)$this->manifest->tag]); + if (is_null($languages)) { + $languages = new Languages(); + $languages->code = (string)$this->manifest->tag; + $languages->title = (string)$this->manifest->name; + $languages->title_native = (string)$this->manifest->metadata->nativeName; + $languages->sef = $this->getSefString($this->manifest->tag); + $languages->image = strtolower(str_replace('-', '_', (string)$this->manifest->tag)); + $languages->description = ''; + $languages->metakey = ''; + $languages->metadesc = ''; + $languages->sitename = ''; + $languages->published = 1; + $languages->ordering = 0; + if (!$languages->save()) { + $sourceMsg = 'WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE'; + $errorMsg = Yii::t('installer', $sourceMsg, [ + 'name' => $this->manifest->name, + 'error' => implode('  
', $languages->getFirstErrors()) + ]); + Yii::$app->session->addFlash('error', $errorMsg); + } + } + } + return $this->extension->id; + } + + /** + * 卸载语言扩展 + * @param object $extension 语言扩展数据对象 + * @return bool + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\db\StaleObjectException + */ + public function uninstall($extension) + { + if (empty($extension->element)) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_LANG_UNINSTALL_ELEMENT_EMPTY')); + return false; + } + + if ($extension->protected === 1) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_LANG_UNINSTALL_PROTECTED')); + return false; + } + + $languagesParams = json_decode(Extensions::findOne(['element' => 'mod_languages'])->params); + $client = Clients::findOne($extension->client_id); + if ($languagesParams->{$client->name} === $extension->element) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_LANG_UNINSTALL_DEFAULT')); + return false; + } + + /* + * Does this extension have a parent package? + * If so, check if the package disallows individual extensions being uninstalled if the package is not being uninstalled + */ + if ($extension->package_id && !$this->parent->isPackageUninstall()) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_CANNOT_UNINSTALL_CHILD_OF_PACKAGE', $extension->name)); + return false; + } + + $path = Yii::getAlias('@root' . $client->path . '/messages/' . $extension->element); + $this->parent->setPath('source', $path); + $this->parent->findManifest(); + + if (is_dir($path)) { + FileHelper::removeDirectory($path); + if (is_dir($path)) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_LANG_UNINSTALL_DIRECTORY')); + return false; + } + } else { + $extension->delete(); + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_LANG_UNINSTALL_PATH_EMPTY')); + return false; + } + + $clientName = Clients::findOne($extension->client_id)->name; + if ($clientName === Helper::getClient()) { + Languages::findOne(['code' => $extension->element])->delete(); + } + + $extension->delete(); + + return true; + } + + /** + * Method to do any prechecks and setup the install paths for the extension + * @return void + */ + protected function setupInstallPaths() + { + // TODO: Implement setupInstallPaths() method. + } + + /** + * Method to copy the extension's base files from the `` tag(s) and the manifest file + * @return void + * @throws \RuntimeException + */ + protected function copyBaseFiles() + { + // TODO: Implement copyBaseFiles() method. + } + + /** + * Method to store the extension to the database + * @return void + * @throws \RuntimeException + */ + protected function storeExtension() + { + // TODO: Implement storeExtension() method. + } + + /** + * Gets a unique language SEF string. + * @param string $languageTag Language Tag + * @return string + */ + private function getSefString($languageTag) + { + $langs = explode('-', $languageTag); + $prefixToFind = $langs[0]; + + $language = Languages::findOne(['code' => $languageTag]); + if (is_null($language)) { + $language = Languages::findOne(['sef' => $prefixToFind]); + return is_null($language) ? $prefixToFind : strtolower($languageTag); + } else { + return $language->sef; + } + } + + /** + * 更新语言扩展 + * @return bool + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\db\Exception + */ + public function update() + { + $clientName = (string)$this->manifest->attributes()->client; + $client = Clients::findOne(['name' => $clientName]); + if (is_null($client)) { + $paramMsg = Yii::t('installer', 'ERROR_UNKNOWN_CLIENT', $clientName); + $this->parent->abort(Yii::t('installer', 'ABORT_LANGUAGE', $paramMsg)); + return false; + } + if (!$this->manifest->tag) { + $paramMsg = Yii::t('installer', 'ERROR_NO_LANGUAGE_TAG'); + $this->parent->abort(Yii::t('installer', 'ABORT_LANGUAGE', $paramMsg)); + return false; + } + // Do we have a meta file in the file list? In other words... is this a core language pack? + if (count($this->manifest->files->children())) { + foreach ($this->manifest->files->children() as $child) { + if ((string)$child->attributes()->file === 'meta') { + $this->core = true; + break; + } + } + } + // Copy all the necessary files + if ($this->parent->parseFiles($this->manifest->files, $clientName) === false) { + $this->parent->abort(); + return false; + } + $languageExtension = $this->extension->findOne([ + 'element' => $this->manifest->tag, + 'type' => 'language', + 'client_id' => $client->id + ]); + if (is_null($languageExtension)) { + $languageExtension->folder = ''; + $languageExtension->enabled = 1; + $languageExtension->protected = 0; + $languageExtension->client_id = $client->id; + $languageExtension->params = $this->parent->getParams(); + } + $languageExtension->name = trim((string)$this->manifest->name); + $languageExtension->type = 'language'; + $languageExtension->element = $this->manifest->tag; + $languageExtension->manifest_cache = $this->parent->generateManifestCache(); + if (!$languageExtension->save()) { + $errorMsg = implode('  
', $languageExtension->getFirstErrors()); + $this->parent->abort(Yii::t('installer', 'ABORT_LANGUAGE', $errorMsg)); + return false; + } + return $languageExtension->id; + } +} diff --git a/backend/components/adapter/ModuleAdapter.php b/backend/components/adapter/ModuleAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..9d3b35e94f3cc0282983380e4ff2fff2d06d575b --- /dev/null +++ b/backend/components/adapter/ModuleAdapter.php @@ -0,0 +1,621 @@ +clients = Clients::getList(); + parent::init(); + } + + /** + * {@inheritdoc} + */ + public function getElement($element = null) + { + $element = parent::getElement(); + if (strpos($element, 'mod_') !== 0) { + $element = 'mod_' . $element; + } + return $element; + } + + /** + * {@inheritdoc} + */ + protected function setupInstallPaths() + { + $moduleId = trim(strtolower((string)$this->manifest->element ?: $this->name)); + $clientName = []; + foreach ($this->clients as $client) { + $this->parent->setPath('extension_' . $client, Yii::getAlias('@' . $client) . '/modules/' . $moduleId); + $clientName[] = $this->manifest->$client->getName(); + } + + $currentClient = (string)$this->manifest->attributes()->client; + + $this->parent->setPath('extension_root', $this->parent->getPath('extension_' . $currentClient)); + + if (!in_array('backend', array_filter($clientName))) { + throw new \RuntimeException(Yii::t('installer', 'ERROR_MOD_INSTALL_BACKEND_ELEMENT')); + } + } + + /** + * {@inheritdoc} + */ + protected function copyBaseFiles() + { + foreach ($this->clients as $client) { + if ($this->manifest->$client->files) { + if ($this->route === 'update') { + $result = $this->parent->parseFiles($this->manifest->$client->files, $client, $this->oldFiles); + } else { + $result = $this->parent->parseFiles($this->manifest->$client->files, $client); + } + + if ($result === false) { + throw new \RuntimeException(Yii::t('installer', 'ERROR_MOD_INSTALL_FAIL_COPY_FILE')); + } + } + } + } + + /** + * {@inheritdoc} + */ + protected function parseOptionalTags() + { + foreach ($this->clients as $client) { + $messages = $this->manifest->$client->messages; + if ($messages !== null) { + $this->parent->parseMessages($this->manifest->$client->messages, $client); + } + } + } + + /** + * {@inheritdoc} + */ + protected function storeExtension($deleteExisting = false) + { + // If we are told to delete existing extension entries then do so. + if ($deleteExisting) { + $extensions = $this->extension->findAll([ + 'name' => $this->name, + 'type' => $this->type, + 'element' => $this->element + ]); + + if (!empty($extensions)) { + foreach ($extensions as $extension) { + $extension->delete(); + } + } + } + + // If there is not already a row, generate a heap of defaults + if (is_null($this->currentExtensionId)) { + $this->extension->folder = ''; + $this->extension->enabled = 1; + $this->extension->protected = 0; + $this->extension->params = $this->parent->getParams(); + $this->extension->status = 1; + } else { + $this->extension = $this->currentExtensionId; + } + $currentClient = strtolower(trim((string)$this->manifest->attributes()->client)); + $this->extension->name = $this->name; + $this->extension->type = $this->type; + $this->extension->element = $this->element; + $this->extension->client_id = $this->parent->getClientId($currentClient); + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + + $couldSave = $this->extension->save(); + + if (!$couldSave && $deleteExisting) { + $errorStr = ''; + foreach ($this->extension->errors as $errors) { + foreach ($errors as $error) { + $errorStr .= '
  ' . $error; + } + } + + $errorMessage = Yii::t('installer', 'ABORT_MOD_INSTALL_ROLLBACK', $errorStr); + throw new \RuntimeException($errorMessage); + } + if (!$couldSave && !$deleteExisting) { + $this->storeExtension(true); + } + } + + /** + * {@inheritdoc} + */ + protected function finaliseInstall() + { + $moduleId = trim(strtolower((string)$this->manifest->element ?: $this->name)); + $this->_writeModuleConfig($moduleId); + $this->_writeExtensionConfig($moduleId); + $this->_writeParamsConfig(); + } + + /** + * 写入模块配置 + * @param string $moduleId 模块名 + */ + protected function _writeModuleConfig($moduleId) + { + $rootPath = Yii::getAlias('@root') . DIRECTORY_SEPARATOR; + foreach ($this->clients as $client) { + $modulesConfigPath = Yii::getAlias('@' . $client . '/config/modules.php'); + $oldModuleConfigs = include $modulesConfigPath; + if (boolval($this->manifest->$client)) { + if (boolval($this->manifest->$client->moduleConfigs)) { + $configs = \backend\components\VarDumper::xmlExport($this->manifest->$client->moduleConfigs, 1); + if (in_array($moduleId, array_keys($oldModuleConfigs))) { + unset($oldModuleConfigs[$moduleId]); + } + if (empty($oldModuleConfigs)) { + $content = ' ' . $configs . ',' . PHP_EOL . '];' . PHP_EOL; + } else { + $oldContent = VarDumper::export($oldModuleConfigs); + $search = [PHP_EOL . ']', '\\\\']; + $replace = [PHP_EOL . ' \'' . $moduleId . '\' => ' . $configs . ',' . PHP_EOL . ']', '\\']; + $export = str_replace($search, $replace, $oldContent); + $content = 'parent->getPath('extension_' . $client) . DIRECTORY_SEPARATOR . 'Module'; + $className = str_replace('/', '\\', substr($modulePath, strlen($rootPath))); + $moduleConfig[$moduleId]['class'] = $className; + $modulesConfigPath = Yii::getAlias('@' . $client) . '/config/modules.php'; + $oldModuleConfigs = include $modulesConfigPath; + foreach ($oldModuleConfigs as $mk => $mv) { + if ($mv['class'] == $className) { + unset($oldModuleConfigs[$mk]); + } + } + $modulesConfig = array_merge($oldModuleConfigs, $moduleConfig); + $export = str_replace('\\\\', '\\', VarDumper::export($modulesConfig)); + $content = 'getMessage()); + } + } + } + + if (boolval($this->manifest->backend)) { + $modulePath = $this->parent->getPath('extension_backend') . DIRECTORY_SEPARATOR . 'Module'; + $className = str_replace('/', '\\', substr($modulePath, strlen($rootPath))); + if (!$this->_createBackendMenus($this->extension, $className)) { + Yii::warning(Yii::t('installer', 'ABORT_MOD_BUILD_BACKEND_MENUS_FAILED')); + } + } + } + + /** + * 写入扩展配置 + * @param string $moduleId 模块名 + * @param array $clients 应用列表 + */ + protected function _writeExtensionConfig($moduleId) + { + foreach ($this->clients as $client) { + $extensionConfigPath = Yii::getAlias('@' . $client . '/config/extension.php'); + $oldExtensionConfigs = include $extensionConfigPath; + if ($this->manifest->$client->extensionConfigs) { + $configs = \backend\components\VarDumper::xmlExport($this->manifest->$client->extensionConfigs); + $content = '$' . $moduleId . ' = ' . $configs . ';'; + if (empty($oldExtensionConfigs)) { + $content = 'getMessage()); + } + } + } + } + + /** + * 写入参数配置 + * @param array $clients 应用列表 + */ + protected function _writeParamsConfig() + { + foreach ($this->clients as $client) { + $configPath = Yii::getAlias('@' . $client . '/config/params.php'); + $oldConfigs = include $configPath; + if ($this->manifest->$client->paramConfigs) { + $configs = \backend\components\VarDumper::xmlExport($this->manifest->$client->paramConfigs, 0, false); + + $items = $this->manifest->$client->paramConfigs->item; + foreach ($items as $item) { + if (in_array((string)$item->attributes()->key, array_keys($oldConfigs))) { + unset($oldConfigs[(string)$item->attributes()->key]); + } + } + + if (empty($oldConfigs)) { + $content = 'getMessage()); + } + } + } + } + + /** + * 创建后台菜单 + * @param object $extension 模块对象 + * @param string $className 模块类名 + * @return bool + * @throws Yii\base\InvalidConfigException + */ + protected function _createBackendMenus($extension, $className = '') + { + $menuElement = $this->getManifest()->menu; + $moduleId = trim(strtolower((string)$this->manifest->element ?: $this->name)); + $this->_updateRoute($moduleId); + $langCat = $this->getManifest()->backend->messages->attributes()->main ?? $this->getElement(); + if (!$menuElement) { + Yii::$app->setModule($moduleId, $className); + $module = Yii::$app->getModule($moduleId); + $routeArr = explode('/', trim($module->defaultRoute, '/')); + if (count($routeArr) === 1) { + $defaultRoute = $routeArr[0] . '/index'; + } else { + $defaultRoute = $routeArr[0] . '/' . $routeArr[1]; + } + $defaultRoute = '@' . Yii::$app->id . '/' . $moduleId . '/' . $defaultRoute; + + if ($this->route === 'update') { + $menus = Menu::find()->where(['menutype' => 'main', 'type' => 'module', 'level' => 1]); + if ($extension->protected === 1) { + $menus->andWhere(['<>', 'parent', 10]); + } else { + $menus->andWhere(['parent' => 10]); + } + foreach ($menus->all() as $item) { + if (!is_null($item->data)) { + $data = json_decode($item->data, true); + if (isset($data['module-id']) && $extension->id === $data['module-id']) { + $menu = $item; + break; + } + } + } + } else { + $menu = new Menu(); + $menu->alias = ''; + $menu->menutype = 'main'; + $menu->type = 'module'; + $menu->level = 1; + $menu->parent = 10; + } + + $menu->name = $this->name; + $menu->published = 1; + $menu->route = $defaultRoute; + $menu->language = '*'; + $menu->data = json_encode(['module-id' => $extension->id, 'lang-cat' => (string)$langCat]); + + if ($menu->save()) { + Helper::invalidate(); + $menu->setLftRgt(); + $this->parent->pushStep(['type' => 'menu', 'id' => $menu->id]); + return true; + } else { + return false; + } + } + if (in_array((string)$menuElement['hidden'], ['true', 'hidden'])) { + return true; + } + if ($menuElement) { + if ($this->route === 'update') { + $menus = Menu::find()->where(['menutype' => 'main', 'type' => 'module', 'level' => 1]); + if ($extension->protected === 1) { + $menus->andWhere(['<>', 'parent', 10]); + } else { + $menus->andWhere(['parent' => 10]); + } + $menus->all(); + foreach ($menus as $item) { + if (!is_null($item->data)) { + $data = json_decode($item->data, true); + if ($extension->id === $data['module-id']) { + $menu = $item; + break; + } + } + } + } else { + $menu = new Menu(); + $menu->alias = ''; + $menu->menutype = 'main'; + $menu->type = 'module'; + $menu->level = 1; + $menu->parent = 10; + } + + $moduleId = trim(strtolower((string)$this->manifest->element ?: $this->name)); + $route = (string)$menuElement->attributes()->route ?: $moduleId; + + $menu->name = trim((string)$menuElement); + $menu->published = 1; + $menu->route = '@' . Yii::$app->id . '/' . $route; + $menu->language = '*'; + $menu->data = json_encode(['module-id' => $extension->id, 'lang-cat' => (string)$langCat]); + + if ($menu->save()) { + Helper::invalidate(); + $menu->setLftRgt(); + $this->parent->pushStep(['type' => 'menu', 'id' => $this->extension->id]); + $subMenuElement = $this->getManifest()->submenu; + if (!$subMenuElement) { + return true; + } + $parentId = $menu->id; + foreach ($subMenuElement->menu as $child) { + if ($this->route === 'update') { + $menus = Menu::find() + ->where(['menutype' => 'main', 'type' => 'module', 'level' => 2, 'parent' => $parentId]) + ->all(); + foreach ($menus as $item) { + if (!is_null($item->data)) { + $data = json_decode($item->data, true); + if ($extension->id === $data['module-id']) { + $menu = $item; + break; + } + } + } + } else { + $menu = new Menu(); + $menu->alias = ''; + $menu->menutype = 'main'; + $menu->type = 'module'; + $menu->level = 2; + $menu->parent = $parentId; + } + $menu->name = trim((string)$child); + $menu->menutype = 'main'; + $menu->published = 1; + $menu->route = '@' . Yii::$app->id . '/' . (string)$child->attributes()->route; + $menu->language = '*'; + $menu->data = json_encode(['module-id' => $extension->id, 'lang-cat' => (string)$langCat]); + $menu->save(); + } + Helper::invalidate(); + (new Menu())->setLftRgt(); + $this->parent->pushStep(['type' => 'menu', 'id' => $extension->id]); + return true; + } else { + return false; + } + } + } + + /** + * @param $moduleId + * @throws Yii\base\InvalidConfigException + */ + protected function _updateRoute($moduleId) + { + foreach ($this->clients as $client) { + if (boolval($this->manifest->$client)) { + $routeModel = new Route(); + $routeModel->update($moduleId, $client); + } + } + } + + /** + * 卸载模块 + * @param $extension + * @return bool + * @throws ErrorException + * @throws \Throwable + * @throws \yii\db\StaleObjectException + */ + public function uninstall($extension) + { + $session = Yii::$app->session; + if ($extension->protected) { + $extensionName = Yii::t($extension->manifest_cache['langCat'], $extension->name); + $msg = Yii::t('installer', 'ERROR_MOD_UNINSTALL_WARN_CORE_MODULE', $extensionName); + $session->addFlash('warning', $msg); + return false; + } + + if ($extension->package_id) { + $extensionName = Yii::t($extension->manifest_cache['langCat'], $extension->name); + $session->addFlash('warning', Yii::t('installer', 'ERROR_CANNOT_UNINSTALL_CHILD_OF_PACKAGE', $extensionName)); + return false; + } + + $moduleId = substr($extension->element, 4); + foreach ($this->clients as $item) { + $path = Yii::getAlias('@' . $item . '/modules/' . $moduleId); + $this->parent->setPath('extension_' . $item, $path); + } + + $this->parent->setPath('source', $this->parent->getPath('extension_backend')); + + $this->parent->findManifest(); + + $this->manifest = $this->parent->manifest; + + if (!$this->manifest) { + foreach ($this->clients as $client) { + FileHelper::removeDirectory($this->parent->getPath('extension_' . $client)); + } + $this->_removeModuleConfig($moduleId); + $this->_removeBackendMenus($extension->id); + $session->addFlash('warning', Yii::t('installer', 'ERROR_MOD_UNINSTALL_REMOVE_MANUALLY')); + return false; + } + + $retval = true; + + try { + $this->parseQueries(); + } catch (\RuntimeException $re) { + $session->addFlash('warning', $re->getMessage()); + $retval = false; + } + + $this->_removeBackendMenus($extension->id); + + $manifest = $this->manifest; + + foreach ($this->clients as $item) { + if ($this->manifest->$item) { + $messagePath = Yii::getAlias('@' . $item . '/messages/'); + $message = $manifest->$item->messages->message; + $messageFile = $messagePath . $message->attributes()->tag . '/' . (string)$message; + if (is_file($messageFile)) { + FileHelper::unlink($messageFile); + } + FileHelper::removeDirectory($this->parent->getPath('extension_' . $item)); + } + } + $extension->delete(); + + // 移除模块配置 + $this->_removeModuleConfig($moduleId); + return $retval; + } + + /** + * 移除模块的后台菜单 + * @param int $id 模块扩展ID + * @return bool + * @throws \Throwable + * @throws \yii\db\StaleObjectException + */ + protected function _removeBackendMenus($id) + { + $manMenus = \common\components\Helper::getMenus('main'); + $mids = []; + $result = true; + foreach ($manMenus as $menu) { + $data = json_decode($menu['data'], true); + if (isset($data['module-id']) && $data['module-id'] == $id) { + $mids[] = $menu['id']; + $menuModel = Menu::findOne($menu['id']); + if (!$menuModel->delete()) { + Yii::$app->session->addFlash('error', $this->parent->errorsToString($menuModel->getErrors())); + $result = false; + } + } + } + Helper::invalidate(); + (new Menu())->setLftRgt(); + // 删除路由 + $moduleId = trim(strtolower((string)($this->manifest->element ?: $this->manifest->name))); + $routeModel = new Route(); + $routes = $routeModel->getAppRoutes($moduleId); + array_walk($routes, function (&$value) { + $value = '@' . Yii::$app->id . $value; + }); + $routeModel->remove($routes); + + return $result; + } + + /** + * 移除模块配置 + * @param $moduleId 模块扩展ID + */ + protected function _removeModuleConfig($moduleId) + { + $modulesConfigPath = Yii::getAlias('@backend/config/modules.php'); + if (is_file($modulesConfigPath)) { + $oldModuleConfig = include $modulesConfigPath; + $newModuleConfig = []; + foreach ($oldModuleConfig as $mk => $mv) { + if ($mk !== $moduleId) { + $newModuleConfig[$mk] = $mv; + } + } + if ($newModuleConfig !== $oldModuleConfig) { + $export = str_replace('\\\\', '\\', VarDumper::export($newModuleConfig)); + $content = 'clients as $client) { + $tmpInstaller->setPath('source', $this->parent->getPath('extension_' . $client)); + if ($tmpInstaller->findManifest()) { + $oldManifest = $tmpInstaller->getManifest(); + if ($oldManifest) { + $this->set('oldFiles', $oldManifest->{$client}->files); + //$this->set('oldClient', $client); + break; + } + } + } + } +} diff --git a/backend/components/adapter/PackageAdapter.php b/backend/components/adapter/PackageAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..454e41f518fed403dd9ecd5bc5136def9fe93a30 --- /dev/null +++ b/backend/components/adapter/PackageAdapter.php @@ -0,0 +1,287 @@ +manifest->packagename; + if (empty($packagePath)) { + $msg = Yii::t('installer', 'ABORT_PACK_INSTALL_NO_PACK', $this->route); + throw new \RuntimeException($msg); + } + $this->parent->setPath('extension_root', Yii::getAlias('@backend/manifests/packages/' . $packagePath)); + } + + /** + * {@inheritdoc} + */ + protected function checkExtensionInFilesystem() + { + if (is_file(Yii::getAlias('@backend/manifests/packages/' . basename($this->parent->manifestFile)))) { + $updateElement = $this->manifest->update; + if (($updateElement || $this->parent->isUpgrade()) && $this->currentExtensionId) { + $this->set('route', 'update'); + } + } + } + + /** + * {@inheritdoc} + */ + protected function createExtensionRoot() + { + /** + * For packages, we only need the extension root if copying manifest files; this step will be handled + * at that point if necessary + */ + } + + /** + * Method to copy the extension's base files from the `` tag(s) and the manifest file + * @return void + * @throws \RuntimeException + * @throws yii\base\ErrorException + * @throws yii\base\Exception + */ + protected function copyBaseFiles() + { + // Install all necessary files + if (!count($this->manifest->files->children())) { + $msg = Yii::t('installer', 'ABORT_PACK_INSTALL_NO_FILES', $this->route); + throw new \yii\base\Exception($msg); + } + + $source = $this->parent->source; + foreach ($this->manifest->files->children() as $child) { + $file = $source . '/' . (string)$child; + if (is_dir($file)) { + $package = []; + $package['dir'] = $file; + $package['type'] = $this->parent->detectType($file); + } else { + $package = $this->parent->unpack($file); + } + $tmpInstaller = new Installer(); + $installResult = $tmpInstaller->install($package['dir']); + if (!$installResult) { + $msg = Yii::t('installer', 'ABORT_PACK_INSTALL_ERROR_EXTENSION', [ + 'route' => Yii::t('installer', strtoupper($this->route)), + 'file' => basename($file) + ]); + throw new \yii\base\Exception($msg); + } + $this->results[] = [ + 'name' => (string)$tmpInstaller->manifest->name, + 'result' => $installResult + ]; + } + } + + /** + * Method to finalise the installation processing + */ + protected function finaliseInstall() + { + if (!empty($this->results)) { + $ids = ArrayHelper::getColumn($this->results, 'result'); + try { + Extensions::updateAll(['package_id' => $this->extension->id], ['id' => $ids]); + } catch (\yii\db\Exception $e) { + $errors = Yii::t('installer', 'ERROR_PACK_SETTING_PACKAGE_ID'); + Yii::$app->session->addFlash('error', $errors); + } + + } + $src = $this->parent->manifestFile; + $dest = Yii::getAlias('@backend/manifests/packages/' . basename($src)); + copy($src, $dest); + } + + /** + * Method to store the extension to the database + * @return void + * @throws \RuntimeException + */ + protected function storeExtension() + { + if ($this->currentExtensionId) { + $this->currentExtensionId->name = $this->name; + $this->extension = $this->currentExtensionId; + } else { + $this->extension->name = $this->name; + $this->extension->type = 'package'; + $this->extension->element = $this->getElement(); + $this->extension->folder = ''; + $this->extension->client_id = 0; + $this->extension->enabled = 1; + $this->extension->protected = 0; + $this->extension->params = $this->parent->getParams(); + $this->extension->status = 1; + } + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + if (!$this->extension->save()) { + $errors = $this->parent->errorsToString($this->extension->getErrors()); + $msg = Yii::t('installer', 'ABORT_PACK_INSTALL_ROLLBACK', $errors); + throw new \RuntimeException($msg); + } + $this->parent->pushStep(['type' => 'extension', 'id' => $this->extension->id]); + } + + /** + * Get the filtered extension element from the manifest + * @param string $element Optional element name to be converted + * @return string The filtered element + */ + public function getElement($element = null) + { + if (!$element) { + $element = (string)$this->manifest->packagename; + $element = 'pkg_' . trim($element); + } + return $element; + } + + public function uninstall($extension) + { + if ($extension->protected === 1) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_WARN_CORE_PACK')); + return false; + } + + /* + * Does this extension have a parent package? + * If so, check if the package disallows individual extensions being uninstalled if the package is not being uninstalled + */ + if ($extension->package_id && !$this->parent->isPackageUninstall()) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_CANNOT_UNINSTALL_CHILD_OF_PACKAGE', $extension->name)); + return false; + } + + $manifestFile = Yii::getAlias('@backend/manifests/packages/' . $extension->element . '.xml'); + if (!is_file($manifestFile)) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_MISSING_MANIFEST')); + return false; + } + + $xml = simplexml_load_file($manifestFile); + if (!$xml) { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_LOAD_MANIFEST')); + return false; + } + + if ($xml->getName() !== 'extension') { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_INVALID_MANIFEST')); + return false; + } + + $this->parent->setPath('extension_root', Yii::getAlias('@backend/manifests/packages/' . (string)$xml->packagename)); + + $error = false; + if (!empty($xml->files->folder)) { + foreach ($xml->files->folder as $folder) { + $tmpInstaller = new Installer(); + $tmpInstaller->setPackageUninstall(true); + $folderType = (string)$folder->attributes()->type; + $folderId = (string)$folder->attributes()->id; + $folderClient = (string)$folder->attributes()->client; + $folderGroup = (string)$folder->attributes()->group; + $id = $this->_getExtensionId($folderType, $folderId, $folderClient, $folderGroup); + if ($id) { + if (!$tmpInstaller->uninstall([$id])) { + $error = true; + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_NOT_PROPER', (string)$folder)); + } + } else { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION')); + } + } + } + if (!empty($xml->files->file)) { + foreach ($xml->files->file as $file) { + $tmpInstaller = new Installer(); + $tmpInstaller->setPackageUninstall(true); + $fileType = (string)$file->attributes()->type; + $fileId = (string)$file->attributes()->id; + $fileClient = (string)$file->attributes()->client; + $fileGroup = (string)$file->attributes()->group; + $id = $this->_getExtensionId($fileType, $fileId, $fileClient, $fileGroup); + if ($id) { + if (!$tmpInstaller->uninstall([$id])) { + $error = true; + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_NOT_PROPER', (string)$file)); + } + } else { + Yii::$app->session->addFlash('warning', Yii::t('installer', 'ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION')); + } + } + } + $this->parent->removeFiles($xml->backend->messages); + + if (!$error) { + FileHelper::unlink($manifestFile); + $folder = $this->parent->getPath('extension_root'); + if (is_dir($folder)) { + FileHelper::removeDirectory($folder); + } + $extension->delete(); + } else { + Yii::$app->session->addFlash('error', Yii::t('installer', 'ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED')); + return false; + } + return true; + } + + /** + * 获取扩展id + * @param string $type 扩展类型 + * @param string $id 扩展元素 + * @param string $client 应用名称 + * @param string $group 扩展分组 + * @return int|null + */ + protected function _getExtensionId($type, $id, $client, $group) + { + $extensions = Extensions::find()->where(['element' => $id]); + switch ($type) { + case 'plugin': + $extensions->andWhere(['folder' => $group]); + break; + case 'library': + case 'package': + case 'module': + break; + case 'language': + case 'component': + case 'template': + $client = Clients::findOne(['name' => strtolower($client)]); + $extensions->andWhere(['client_id' => $client->id]); + break; + } + $extension = $extensions->one(); + return is_null($extension) ? null : $extension->id; + } +} diff --git a/backend/components/adapter/PluginAdapter.php b/backend/components/adapter/PluginAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..8ab6dcf1e397f0786bdc119f72027016cae8c3b7 --- /dev/null +++ b/backend/components/adapter/PluginAdapter.php @@ -0,0 +1,222 @@ +` element of the old extension manifest + */ + protected $oldFiles = null; + + /** + * Method to do any prechecks and setup the install paths for the extension + * @return void + */ + protected function setupInstallPaths() + { + $this->group = (string)$this->manifest->attributes()->group; + + if (empty($this->element) && empty($this->group)) { + $param = Yii::t('installer', strtoupper($this->route)); + throw new \RuntimeException(Yii::t('installer', 'ABORT_PLG_INSTALL_NO_FILE', $param)); + } + + $this->parent->setPath('extension_root', Yii::getAlias('@common/plugins/' . $this->group . '/' . $this->element)); + } + + /** + * Method to check if the extension is already present in the database + * @return void + */ + protected function checkExistingExtension() + { + try { + $this->currentExtensionId = $this->extension->findOne([ + 'type' => $this->type, + 'element' => $this->element, + 'folder' => $this->group + ]); + } catch (\RuntimeException $e) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $e->getMessage() + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params), $e->getCode(), $e); + } + } + + /** + * Method to create the extension root path if necessary + * @return void + * @throws Yii\base\Exception + */ + protected function createExtensionRoot() + { + parent::createExtensionRoot(); + if ($this->route === 'update') { + $tmpInstaller = new Installer(); + $tmpInstaller->setPath('source', $this->parent->getPath('extension_root')); + if ($tmpInstaller->findManifest()) { + $oldManifest = $tmpInstaller->getManifest(); + $this->oldFiles = $oldManifest->files; + } + } + } + + /** + * Method to copy the extension's base files from the `` tag(s) and the manifest file + * @return void + * @throws \RuntimeException + * @throws \yii\base\ErrorException + */ + protected function copyBaseFiles() + { + if ($this->parent->parseFiles($this->manifest->files, null, $this->oldFiles) === false) { + $param = Yii::t('installer', strtoupper($this->route)); + throw new \RuntimeException(Yii::t('installer', 'ABORT_PLG_COPY_FILES', $param)); + } + } + + /** + * Method to parse optional tags in the manifest + * @return void + */ + protected function parseOptionalTags() + { + $this->parent->parseMessages($this->manifest->messages, 'backend'); + } + + /** + * Method to store the extension to the database + * @return void + * @throws \RuntimeException + */ + protected function storeExtension() + { + if ($this->currentExtensionId) { + $this->extension = $this->currentExtensionId; + } else { + $this->extension->type = 'plugin'; + $this->extension->ordering = 0; + $this->extension->element = $this->element; + $this->extension->folder = $this->group; + $this->extension->enabled = 0; + $this->extension->protected = 0; + $this->extension->client_id = 0; + $this->extension->status = 1; + + if ($this->group === 'editors') { + $this->extension->enabled = 1; + } + } + $this->extension->name = $this->name; + $this->extension->params = $this->extension->params ?: $this->parent->getParams(); + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + + if (!$this->extension->save()) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $this->parent->errorsToString($this->extension->getErrors()) + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params)); + } + $this->parent->pushStep(['type' => 'extension', 'id' => $this->extension->id]); + } + + /** + * Get the filtered extension element from the manifest + * @param string $element Optional element name to be converted + * @return string + */ + public function getElement($element = null) + { + if (!$element) { + if (count($this->manifest->files->children())) { + $type = (string)$this->manifest->attributes()->type; + foreach ($this->manifest->files->children() as $child) { + if ((string)$child->attributes()->$type) { + $element = (string)$child->attributes()->$type; + break; + } + } + } + } + return $element; + } + + /** + * 卸载插件 + * @param object $extension 扩展对象数据 + * @return bool + * @throws \Throwable + * @throws \yii\base\ErrorException + * @throws \yii\db\Exception + */ + public function uninstall($extension) + { + $session = Yii::$app->session; + $retval = true; + if ($extension->protected) { + $extensionName = Yii::t($extension->manifest_cache['langCat'], $extension->name); + $session->addFlash('warning', Yii::t('installer', 'ERROR_PLG_UNINSTALL_WARN_CORE_PLUGIN', $extensionName)); + return false; + } + + if ($extension->package_id) { + $extensionName = Yii::t($extension->manifest_cache['langCat'], $extension->name); + $session->addFlash('warning', Yii::t('installer', 'ERROR_CANNOT_UNINSTALL_CHILD_OF_PACKAGE', $extensionName)); + return false; + } + + if (trim($extension->folder) === '') { + $session->addFlash('warning', Yii::t('installer', 'ERROR_PLG_UNINSTALL_FOLDER_FIELD_EMPTY')); + return false; + } + + $pluginPathAlias = '@common/plugins/' . $extension->folder . '/' . $extension->element; + $this->parent->setPath('extension_root', Yii::getAlias($pluginPathAlias)); + $this->parent->setPath('source', $this->parent->getPath('extension_root')); + + $this->parent->findManifest(); + + $this->manifest = $this->parent->manifest; + + if (isset($this->manifest->uninstall->sql)) { + try { + $this->parent->parseSQL($this->manifest->uninstall->sql); + } catch (\yii\db\Exception $e) { + $this->parent->abort(Yii::t('installer', 'ABORT_PLG_UNINSTALL_SQL_ERROR', $e->getMessage())); + return false; + } + } + + if (!$this->parent->removeFiles($this->manifest->files)) { + $retval = false; + } + if (!$this->parent->removeFiles($this->manifest->media)) { + $retval = false; + } + if (!$this->parent->removeFiles($this->manifest->messages, 'backend')) { + $retval = false; + } + + $extension->delete(); + + FileHelper::removeDirectory($this->parent->getPath('extension_root')); + + return $retval; + } +} diff --git a/backend/components/adapter/ThemeAdapter.php b/backend/components/adapter/ThemeAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..2e15bdbb8595d831d6ddd5946e1730b7f9a96f35 --- /dev/null +++ b/backend/components/adapter/ThemeAdapter.php @@ -0,0 +1,119 @@ +manifest->attributes()->client; + $client = Clients::findOne(['name' => $clientName]); + if (is_null($client)) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => Yii::t('installer', 'ERROR_UNKNOWN_CLIENT', $clientName) + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params)); + } + $this->clientId = $client->id; + $basePath = Yii::getAlias('@root' . $client->path); + + if (empty($this->element)) { + $msg = Yii::t('installer', 'ABORT_THEME_NO_FILE', Yii::t('installer', strtoupper($this->route))); + throw new \RuntimeException($msg); + } + + $this->parent->setPath('extension_root', $basePath . '/themes/' . $this->element); + } + + /** + * {@inheritdoc} + */ + protected function checkExistingExtension() + { + try { + $this->currentExtensionId = $this->extension->findOne([ + 'element' => $this->element, + 'type' => $this->type, + 'client_id' => $this->clientId + ]); + } catch (\yii\db\Exception $e) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $e->getMessage() + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params), $e->getCode(), $e); + } + } + + /** + * {@inheritdoc} + */ + protected function copyBaseFiles() + { + if ($this->parent->parseFiles($this->manifest->files) === false) { + throw new \RuntimeException(Yii::t('installer', 'ABORT_THEME_INSTALL_FAIL_COPY_FILES')); + } + } + + /** + * {@inheritdoc} + */ + protected function storeExtension() + { + if ($this->currentExtensionId) { + $this->extension = $this->currentExtensionId; + } else { + $this->extension->type = 'theme'; + $this->extension->element = $this->element; + $this->extension->folder = ''; + $this->extension->enabled = 1; + $this->extension->protected = 0; + $this->extension->client_id = $this->clientId; + $this->extension->params = $this->parent->getParams(); + $this->extension->status = 1; + $this->extension->ordering = 0; + } + $this->extension->name = $this->name; + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + + if (!$this->extension->save()) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $this->parent->errorsToString($this->extension->getErrors()) + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params)); + } + } + + /** + * {@inheritdoc} + */ + protected function parseQueries() + { + if ($this->route === 'install') { + $themeStyles = new \backend\modules\themes\models\ThemeStyles(); + $themeStyles->template = $this->element; + $themeStyles->client_id = $this->clientId; + $themeStyles->home = 0; + $themeStyles->title = strtoupper($this->element).'_TITLE'; + $themeStyles->params = $this->extension->params; + $themeStyles->save(); + } + } +} diff --git a/backend/components/adapter/WidgetAdapter.php b/backend/components/adapter/WidgetAdapter.php new file mode 100755 index 0000000000000000000000000000000000000000..4d61d62dd4d331384aa0ebcbd67e524db39712a5 --- /dev/null +++ b/backend/components/adapter/WidgetAdapter.php @@ -0,0 +1,157 @@ +clientName = (string)$this->manifest->attributes()->client; + $client = Clients::findOne(['name' => $this->clientName]); + if (is_null($client)) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => Yii::t('installer', 'ERROR_UNKNOWN_CLIENT', $this->clientName) + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params)); + } + $this->clientId = $client->id; + $basePath = Yii::getAlias('@root' . $client->path); + if (empty($this->element)) { + $msg = Yii::t('installer', 'ABORT_THEME_NO_FILE', Yii::t('installer', strtoupper($this->route))); + throw new \RuntimeException($msg); + } + + $this->parent->setPath('extension_root', $basePath . '/widgets/' . $this->element); + } + + /** + * @inheritDoc + */ + protected function checkExistingExtension() + { + try { + $this->currentExtensionId = $this->extension->findOne([ + 'element' => $this->element, + 'type' => $this->type, + 'client_id' => $this->clientId + ]); + } catch (\yii\db\Exception $e) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $e->getMessage() + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params), $e->getCode(), $e); + } + } + + /** + * @inheritDoc + */ + protected function copyBaseFiles() + { + if ($this->parent->parseFiles($this->manifest->files) === false) { + throw new \RuntimeException(Yii::t('installer', 'ABORT_THEME_INSTALL_FAIL_COPY_FILES')); + } + + foreach ($this->manifest->files->children() as $child) { + if ($child->attributes()->theme) { + $theme = (string)$child->attributes()->theme; + $childType = $child->getName() === 'folder' ? 'folder' : 'file'; + $startsWith = \yii\helpers\StringHelper::startsWith((string)$child, $theme . '/'); + $source = $this->parent->source . '/' . (string)$child; + if ($startsWith) { + $inThemePath = '/widgets/' . $this->element . substr((string)$child, strlen($theme)); + } else { + $inThemePath = (string)$child; + } + $themePath = Yii::getAlias('@root') . '/' . $this->clientName . '/themes/' . $theme; + $dest = $themePath . $inThemePath; + if ($childType === 'folder') { + if (is_dir($source)) { + FileHelper::copyDirectory($source, $dest); + } + } else { + if (is_file($source)) { + FileHelper::createDirectory(dirname($dest)); + copy($source, $dest); + } + } + } + } + } + + /** + * @inheritDoc + */ + protected function parseOptionalTags() + { + $this->parent->parseMessages($this->manifest->messages, $this->clientName); + } + + /** + * @inheritDoc + */ + protected function storeExtension() + { + if ($this->currentExtensionId) { + $this->extension = $this->currentExtensionId; + } else { + $this->extension->type = 'widget'; + $this->extension->element = $this->element; + $this->extension->folder = ''; + $this->extension->enabled = 1; + $this->extension->protected = 0; + $this->extension->client_id = $this->clientId; + $this->extension->params = $this->parent->getParams(); + $this->extension->status = 1; + $this->extension->ordering = 0; + } + $this->extension->name = $this->name; + $this->extension->manifest_cache = $this->parent->generateManifestCache(); + + if (!$this->extension->save()) { + $params = [ + 'action' => Yii::t('installer', strtoupper($this->route)), + 'error' => $this->parent->errorsToString($this->extension->getErrors()) + ]; + throw new \RuntimeException(Yii::t('installer', 'ABORT_ROLLBACK', $params)); + } + + $this->parent->pushStep([ + 'type' => 'extension', + 'id' => $this->extension->id + ]); + + if ($this->route === 'install') { + $widgets = new Widgets(); + $widgets->title = $this->name; + $widgets->content = ''; + $widgets->widget = $this->element; + $widgets->showtitle = 1; + $widgets->params = ''; + $widgets->client_id = $this->clientId; + $widgets->language = '*'; + $widgets->save(); + } + } +} diff --git a/backend/config/.gitignore b/backend/config/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..a309bbe326c4134690b44c7b45537040db2596a4 --- /dev/null +++ b/backend/config/.gitignore @@ -0,0 +1,4 @@ +#codeception-local.php +#main-local.php +#params-local.php +#test-local.php diff --git a/backend/config/bootstrap.php b/backend/config/bootstrap.php new file mode 100755 index 0000000000000000000000000000000000000000..b3d9bbc7f3711e882119cd6b3af051245d859d04 --- /dev/null +++ b/backend/config/bootstrap.php @@ -0,0 +1 @@ + [ + 'user' => [ + 'identityClass' => 'backend\modules\admin\models\User', + 'loginUrl' => [ + 'admin/user/login', + ], + 'enableAutoLogin' => true, + 'identityCookie' => [ + 'name' => '_identity-backend', + 'httpOnly' => true, + ], + ], + ], + 'as access' => [ + 'class' => 'backend\modules\admin\components\AccessControl', + 'allowActions' => [ + '/site/*', + '/admin/user/request-password-reset', + '/admin/user/signup', + '/admin/user/profile', + '/debug/*', + ], + ], +]; + +return array_merge($admin); diff --git a/backend/config/icon.php b/backend/config/icon.php new file mode 100755 index 0000000000000000000000000000000000000000..22a602e1da04b29cddd33d23d7f09d6efc6edb77 --- /dev/null +++ b/backend/config/icon.php @@ -0,0 +1,1546 @@ + 'e900', + 'home2' => 'e901', + 'home3' => 'e902', + 'office' => 'e903', + 'newspaper' => 'e904', + 'pencil' => 'e905', + 'pencil2' => 'e906', + 'quill' => 'e907', + 'pen' => 'e908', + 'blog' => 'e909', + 'eyedropper' => 'e90a', + 'droplet' => 'e90b', + 'paint-format' => 'e90c', + 'image' => 'e90d', + 'images' => 'e90e', + 'camera' => 'e90f', + 'headphones' => 'e910', + 'music' => 'e911', + 'play' => 'e912', + 'film' => 'e913', + 'video-camera' => 'e914', + 'dice' => 'e915', + 'pacman' => 'e916', + 'spades' => 'e917', + 'clubs' => 'e918', + 'diamonds' => 'e919', + 'bullhorn' => 'e91a', + 'connection' => 'e91b', + 'podcast' => 'e91c', + 'feed' => 'e91d', + 'mic' => 'e91e', + 'book' => 'e91f', + 'books' => 'e920', + 'library' => 'e921', + 'file-text' => 'e922', + 'profile' => 'e923', + 'file-empty' => 'e924', + 'files-empty' => 'e925', + 'file-text2' => 'e926', + 'file-picture' => 'e927', + 'file-music' => 'e928', + 'file-play' => 'e929', + 'file-video' => 'e92a', + 'file-zip' => 'e92b', + 'copy' => 'e92c', + 'paste' => 'e92d', + 'stack' => 'e92e', + 'folder' => 'e92f', + 'folder-open' => 'e930', + 'folder-plus' => 'e931', + 'folder-minus' => 'e932', + 'folder-download' => 'e933', + 'folder-upload' => 'e934', + 'price-tag' => 'e935', + 'price-tags' => 'e936', + 'barcode' => 'e937', + 'qrcode' => 'e938', + 'ticket' => 'e939', + 'cart' => 'e93a', + 'coin-dollar' => 'e93b', + 'coin-euro' => 'e93c', + 'coin-pound' => 'e93d', + 'coin-yen' => 'e93e', + 'credit-card' => 'e93f', + 'calculator' => 'e940', + 'lifebuoy' => 'e941', + 'phone' => 'e942', + 'phone-hang-up' => 'e943', + 'address-book' => 'e944', + 'envelop' => 'e945', + 'pushpin' => 'e946', + 'location' => 'e947', + 'location2' => 'e948', + 'compass' => 'e949', + 'compass2' => 'e94a', + 'map' => 'e94b', + 'map2' => 'e94c', + 'history' => 'e94d', + 'clock' => 'e94e', + 'clock2' => 'e94f', + 'alarm' => 'e950', + 'bell' => 'e951', + 'stopwatch' => 'e952', + 'calendar' => 'e953', + 'printer' => 'e954', + 'keyboard' => 'e955', + 'display' => 'e956', + 'laptop' => 'e957', + 'mobile' => 'e958', + 'mobile2' => 'e959', + 'tablet' => 'e95a', + 'tv' => 'e95b', + 'drawer' => 'e95c', + 'drawer2' => 'e95d', + 'box-add' => 'e95e', + 'box-remove' => 'e95f', + 'download' => 'e960', + 'upload' => 'e961', + 'floppy-disk' => 'e962', + 'drive' => 'e963', + 'database' => 'e964', + 'undo' => 'e965', + 'redo' => 'e966', + 'undo2' => 'e967', + 'redo2' => 'e968', + 'forward' => 'e969', + 'reply' => 'e96a', + 'bubble' => 'e96b', + 'bubbles' => 'e96c', + 'bubbles2' => 'e96d', + 'bubble2' => 'e96e', + 'bubbles3' => 'e96f', + 'bubbles4' => 'e970', + 'user' => 'e971', + 'users' => 'e972', + 'user-plus' => 'e973', + 'user-minus' => 'e974', + 'user-check' => 'e975', + 'user-tie' => 'e976', + 'quotes-left' => 'e977', + 'quotes-right' => 'e978', + 'hour-glass' => 'e979', + 'spinner' => 'e97a', + 'spinner2' => 'e97b', + 'spinner3' => 'e97c', + 'spinner4' => 'e97d', + 'spinner5' => 'e97e', + 'spinner6' => 'e97f', + 'spinner7' => 'e980', + 'spinner8' => 'e981', + 'spinner9' => 'e982', + 'spinner10' => 'e983', + 'spinner11' => 'e984', + 'binoculars' => 'e985', + 'search' => 'e986', + 'zoom-in' => 'e987', + 'zoom-out' => 'e988', + 'enlarge' => 'e989', + 'shrink' => 'e98a', + 'enlarge2' => 'e98b', + 'shrink2' => 'e98c', + 'key' => 'e98d', + 'key2' => 'e98e', + 'lock' => 'e98f', + 'unlocked' => 'e990', + 'wrench' => 'e991', + 'equalizer' => 'e992', + 'equalizer2' => 'e993', + 'cog' => 'e994', + 'cogs' => 'e995', + 'hammer' => 'e996', + 'magic-wand' => 'e997', + 'aid-kit' => 'e998', + 'bug' => 'e999', + 'pie-chart' => 'e99a', + 'stats-dots' => 'e99b', + 'stats-bars' => 'e99c', + 'stats-bars2' => 'e99d', + 'trophy' => 'e99e', + 'gift' => 'e99f', + 'glass' => 'e9a0', + 'glass2' => 'e9a1', + 'mug' => 'e9a2', + 'spoon-knife' => 'e9a3', + 'leaf' => 'e9a4', + 'rocket' => 'e9a5', + 'meter' => 'e9a6', + 'meter2' => 'e9a7', + 'hammer2' => 'e9a8', + 'fire' => 'e9a9', + 'lab' => 'e9aa', + 'magnet' => 'e9ab', + 'bin' => 'e9ac', + 'bin2' => 'e9ad', + 'briefcase' => 'e9ae', + 'airplane' => 'e9af', + 'truck' => 'e9b0', + 'road' => 'e9b1', + 'accessibility' => 'e9b2', + 'target' => 'e9b3', + 'shield' => 'e9b4', + 'power' => 'e9b5', + 'switch' => 'e9b6', + 'power-cord' => 'e9b7', + 'clipboard' => 'e9b8', + 'list-numbered' => 'e9b9', + 'list' => 'e9ba', + 'list2' => 'e9bb', + 'tree' => 'e9bc', + 'menu' => 'e9bd', + 'menu2' => 'e9be', + 'menu3' => 'e9bf', + 'menu4' => 'e9c0', + 'cloud' => 'e9c1', + 'cloud-download' => 'e9c2', + 'cloud-upload' => 'e9c3', + 'cloud-check' => 'e9c4', + 'download2' => 'e9c5', + 'upload2' => 'e9c6', + 'download3' => 'e9c7', + 'upload3' => 'e9c8', + 'sphere' => 'e9c9', + 'earth' => 'e9ca', + 'link' => 'e9cb', + 'flag' => 'e9cc', + 'attachment' => 'e9cd', + 'eye' => 'e9ce', + 'eye-plus' => 'e9cf', + 'eye-minus' => 'e9d0', + 'eye-blocked' => 'e9d1', + 'bookmark' => 'e9d2', + 'bookmarks' => 'e9d3', + 'sun' => 'e9d4', + 'contrast' => 'e9d5', + 'brightness-contrast' => 'e9d6', + 'star-empty' => 'e9d7', + 'star-half' => 'e9d8', + 'star-full' => 'e9d9', + 'heart' => 'e9da', + 'heart-broken' => 'e9db', + 'man' => 'e9dc', + 'woman' => 'e9dd', + 'man-woman' => 'e9de', + 'happy' => 'e9df', + 'happy2' => 'e9e0', + 'smile' => 'e9e1', + 'smile2' => 'e9e2', + 'tongue' => 'e9e3', + 'tongue2' => 'e9e4', + 'sad' => 'e9e5', + 'sad2' => 'e9e6', + 'wink' => 'e9e7', + 'wink2' => 'e9e8', + 'grin' => 'e9e9', + 'grin2' => 'e9ea', + 'cool' => 'e9eb', + 'cool2' => 'e9ec', + 'angry' => 'e9ed', + 'angry2' => 'e9ee', + 'evil' => 'e9ef', + 'evil2' => 'e9f0', + 'shocked' => 'e9f1', + 'shocked2' => 'e9f2', + 'baffled' => 'e9f3', + 'baffled2' => 'e9f4', + 'confused' => 'e9f5', + 'confused2' => 'e9f6', + 'neutral' => 'e9f7', + 'neutral2' => 'e9f8', + 'hipster' => 'e9f9', + 'hipster2' => 'e9fa', + 'wondering' => 'e9fb', + 'wondering2' => 'e9fc', + 'sleepy' => 'e9fd', + 'sleepy2' => 'e9fe', + 'frustrated' => 'e9ff', + 'frustrated2' => 'ea00', + 'crying' => 'ea01', + 'crying2' => 'ea02', + 'point-up' => 'ea03', + 'point-right' => 'ea04', + 'point-down' => 'ea05', + 'point-left' => 'ea06', + 'warning' => 'ea07', + 'notification' => 'ea08', + 'question' => 'ea09', + 'plus' => 'ea0a', + 'minus' => 'ea0b', + 'info' => 'ea0c', + 'cancel-circle' => 'ea0d', + 'blocked' => 'ea0e', + 'cross' => 'ea0f', + 'checkmark' => 'ea10', + 'checkmark2' => 'ea11', + 'spell-check' => 'ea12', + 'enter' => 'ea13', + 'exit' => 'ea14', + 'play2' => 'ea15', + 'pause' => 'ea16', + 'stop' => 'ea17', + 'previous' => 'ea18', + 'next' => 'ea19', + 'backward' => 'ea1a', + 'forward2' => 'ea1b', + 'play3' => 'ea1c', + 'pause2' => 'ea1d', + 'stop2' => 'ea1e', + 'backward2' => 'ea1f', + 'forward3' => 'ea20', + 'first' => 'ea21', + 'last' => 'ea22', + 'previous2' => 'ea23', + 'next2' => 'ea24', + 'eject' => 'ea25', + 'volume-high' => 'ea26', + 'volume-medium' => 'ea27', + 'volume-low' => 'ea28', + 'volume-mute' => 'ea29', + 'volume-mute2' => 'ea2a', + 'volume-increase' => 'ea2b', + 'volume-decrease' => 'ea2c', + 'loop' => 'ea2d', + 'loop2' => 'ea2e', + 'infinite' => 'ea2f', + 'shuffle' => 'ea30', + 'arrow-up-left' => 'ea31', + 'arrow-up' => 'ea32', + 'arrow-up-right' => 'ea33', + 'arrow-right' => 'ea34', + 'arrow-down-right' => 'ea35', + 'arrow-down' => 'ea36', + 'arrow-down-left' => 'ea37', + 'arrow-left' => 'ea38', + 'arrow-up-left2' => 'ea39', + 'arrow-up2' => 'ea3a', + 'arrow-up-right2' => 'ea3b', + 'arrow-right2' => 'ea3c', + 'arrow-down-right2' => 'ea3d', + 'arrow-down2' => 'ea3e', + 'arrow-down-left2' => 'ea3f', + 'arrow-left2' => 'ea40', + 'circle-up' => 'ea41', + 'circle-right' => 'ea42', + 'circle-down' => 'ea43', + 'circle-left' => 'ea44', + 'tab' => 'ea45', + 'move-up' => 'ea46', + 'move-down' => 'ea47', + 'sort-alpha-asc' => 'ea48', + 'sort-alpha-desc' => 'ea49', + 'sort-numeric-asc' => 'ea4a', + 'sort-numberic-desc' => 'ea4b', + 'sort-amount-asc' => 'ea4c', + 'sort-amount-desc' => 'ea4d', + 'command' => 'ea4e', + 'shift' => 'ea4f', + 'ctrl' => 'ea50', + 'opt' => 'ea51', + 'checkbox-checked' => 'ea52', + 'checkbox-unchecked' => 'ea53', + 'radio-checked' => 'ea54', + 'radio-checked2' => 'ea55', + 'radio-unchecked' => 'ea56', + 'crop' => 'ea57', + 'make-group' => 'ea58', + 'ungroup' => 'ea59', + 'scissors' => 'ea5a', + 'filter' => 'ea5b', + 'font' => 'ea5c', + 'ligature' => 'ea5d', + 'ligature2' => 'ea5e', + 'text-height' => 'ea5f', + 'text-width' => 'ea60', + 'font-size' => 'ea61', + 'bold' => 'ea62', + 'underline' => 'ea63', + 'italic' => 'ea64', + 'strikethrough' => 'ea65', + 'omega' => 'ea66', + 'sigma' => 'ea67', + 'page-break' => 'ea68', + 'superscript' => 'ea69', + 'subscript' => 'ea6a', + 'superscript2' => 'ea6b', + 'subscript2' => 'ea6c', + 'text-color' => 'ea6d', + 'pagebreak' => 'ea6e', + 'clear-formatting' => 'ea6f', + 'table' => 'ea70', + 'table2' => 'ea71', + 'insert-template' => 'ea72', + 'pilcrow' => 'ea73', + 'ltr' => 'ea74', + 'rtl' => 'ea75', + 'section' => 'ea76', + 'paragraph-left' => 'ea77', + 'paragraph-center' => 'ea78', + 'paragraph-right' => 'ea79', + 'paragraph-justify' => 'ea7a', + 'indent-increase' => 'ea7b', + 'indent-decrease' => 'ea7c', + 'share' => 'ea7d', + 'new-tab' => 'ea7e', + 'embed' => 'ea7f', + 'embed2' => 'ea80', + 'terminal' => 'ea81', + 'share2' => 'ea82', + 'mail' => 'ea83', + 'mail2' => 'ea84', + 'mail3' => 'ea85', + 'mail4' => 'ea86', + 'amazon' => 'ea87', + 'google' => 'ea88', + 'google2' => 'ea89', + 'google3' => 'ea8a', + 'google-plus' => 'ea8b', + 'google-plus2' => 'ea8c', + 'google-plus3' => 'ea8d', + 'hangouts' => 'ea8e', + 'google-drive' => 'ea8f', + 'facebook' => 'ea90', + 'facebook2' => 'ea91', + 'instagram' => 'ea92', + 'whatsapp' => 'ea93', + 'spotify' => 'ea94', + 'telegram' => 'ea95', + 'twitter' => 'ea96', + 'vine' => 'ea97', + 'vk' => 'ea98', + 'renren' => 'ea99', + 'sina-weibo' => 'ea9a', + 'rss' => 'ea9b', + 'rss2' => 'ea9c', + 'youtube' => 'ea9d', + 'youtube2' => 'ea9e', + 'twitch' => 'ea9f', + 'vimeo' => 'eaa0', + 'vimeo2' => 'eaa1', + 'lanyrd' => 'eaa2', + 'flickr' => 'eaa3', + 'flickr2' => 'eaa4', + 'flickr3' => 'eaa5', + 'flickr4' => 'eaa6', + 'dribbble' => 'eaa7', + 'behance' => 'eaa8', + 'behance2' => 'eaa9', + 'deviantart' => 'eaaa', + '500px' => 'eaab', + 'steam' => 'eaac', + 'steam2' => 'eaad', + 'dropbox' => 'eaae', + 'onedrive' => 'eaaf', + 'github' => 'eab0', + 'npm' => 'eab1', + 'basecamp' => 'eab2', + 'trello' => 'eab3', + 'wordpress' => 'eab4', + 'joomla' => 'eab5', + 'ello' => 'eab6', + 'blogger' => 'eab7', + 'blogger2' => 'eab8', + 'tumblr' => 'eab9', + 'tumblr2' => 'eaba', + 'yahoo' => 'eabb', + 'yahoo2' => 'eabc', + 'tux' => 'eabd', + 'appleinc' => 'eabe', + 'finder' => 'eabf', + 'android' => 'eac0', + 'windows' => 'eac1', + 'windows8' => 'eac2', + 'soundcloud' => 'eac3', + 'soundcloud2' => 'eac4', + 'skype' => 'eac5', + 'reddit' => 'eac6', + 'hackernews' => 'eac7', + 'wikipedia' => 'eac8', + 'linkedin' => 'eac9', + 'linkedin2' => 'eaca', + 'lastfm' => 'eacb', + 'lastfm2' => 'eacc', + 'delicious' => 'eacd', + 'stumbleupon' => 'eace', + 'stumbleupon2' => 'eacf', + 'stackoverflow' => 'ead0', + 'pinterest' => 'ead1', + 'pinterest2' => 'ead2', + 'xing' => 'ead3', + 'xing2' => 'ead4', + 'flattr' => 'ead5', + 'foursquare' => 'ead6', + 'yelp' => 'ead7', + 'paypal' => 'ead8', + 'chrome' => 'ead9', + 'firefox' => 'eada', + 'IE' => 'eadb', + 'edge' => 'eadc', + 'safari' => 'eadd', + 'opera' => 'eade', + 'file-pdf' => 'eadf', + 'file-openoffice' => 'eae0', + 'file-word' => 'eae1', + 'file-excel' => 'eae2', + 'libreoffice' => 'eae3', + 'html-five' => 'eae4', + 'html-five2' => 'eae5', + 'css3' => 'eae6', + 'git' => 'eae7', + 'codepen' => 'eae8', + 'svg' => 'eae9', + 'IcoMoon' => 'eaea', + 'gl-asterisk' => '2a', + 'gl-plus' => '2b', + 'gl-yen' => 'a5', + 'gl-jpy' => 'a5', + 'gl-euro' => '20ac', + 'gl-eur' => '20ac', + 'gl-ruble' => '20bd', + 'gl-rub' => '20bd', + 'gl-minus' => '2212', + 'gl-hourglass' => '231b', + 'gl-cloud' => '2601', + 'gl-tent' => '26fa', + 'gl-envelope' => '2709', + 'gl-pencil' => '270f', + 'gl-glass' => 'e001', + 'gl-music' => 'e002', + 'gl-search' => 'e003', + 'gl-heart' => 'e005', + 'gl-star' => 'e006', + 'gl-star-empty' => 'e007', + 'gl-user' => 'e008', + 'gl-film' => 'e009', + 'gl-th-large' => 'e010', + 'gl-th' => 'e011', + 'gl-th-list' => 'e012', + 'gl-ok' => 'e013', + 'gl-remove' => 'e014', + 'gl-zoom-in' => 'e015', + 'gl-zoom-out' => 'e016', + 'gl-off' => 'e017', + 'gl-signal' => 'e018', + 'gl-cog' => 'e019', + 'gl-trash' => 'e020', + 'gl-home' => 'e021', + 'gl-file' => 'e022', + 'gl-time' => 'e023', + 'gl-road' => 'e024', + 'gl-download-alt' => 'e025', + 'gl-download' => 'e026', + 'gl-upload' => 'e027', + 'gl-inbox' => 'e028', + 'gl-play-circle' => 'e029', + 'gl-repeat' => 'e030', + 'gl-refresh' => 'e031', + 'gl-list-alt' => 'e032', + 'gl-lock' => 'e033', + 'gl-flag' => 'e034', + 'gl-headphones' => 'e035', + 'gl-volume-off' => 'e036', + 'gl-volume-down' => 'e037', + 'gl-volume-up' => 'e038', + 'gl-qrcode' => 'e039', + 'gl-barcode' => 'e040', + 'gl-tag' => 'e041', + 'gl-tags' => 'e042', + 'gl-book' => 'e043', + 'gl-bookmark' => 'e044', + 'gl-print' => 'e045', + 'gl-camera' => 'e046', + 'gl-font' => 'e047', + 'gl-bold' => 'e048', + 'gl-italic' => 'e049', + 'gl-text-height' => 'e050', + 'gl-text-width' => 'e051', + 'gl-align-left' => 'e052', + 'gl-align-center' => 'e053', + 'gl-align-right' => 'e054', + 'gl-align-justify' => 'e055', + 'gl-list' => 'e056', + 'gl-indent-left' => 'e057', + 'gl-indent-right' => 'e058', + 'gl-facetime-video' => 'e059', + 'gl-picture' => 'e060', + 'gl-map-marker' => 'e062', + 'gl-adjust' => 'e063', + 'gl-tint' => 'e064', + 'gl-edit' => 'e065', + 'gl-share' => 'e066', + 'gl-check' => 'e067', + 'gl-move' => 'e068', + 'gl-step-backward' => 'e069', + 'gl-fast-backward' => 'e070', + 'gl-backward' => 'e071', + 'gl-play' => 'e072', + 'gl-pause' => 'e073', + 'gl-stop' => 'e074', + 'gl-forward' => 'e075', + 'gl-fast-forward' => 'e076', + 'gl-step-forward' => 'e077', + 'gl-eject' => 'e078', + 'gl-chevron-left' => 'e079', + 'gl-chevron-right' => 'e080', + 'gl-plus-sign' => 'e081', + 'gl-minus-sign' => 'e082', + 'gl-remove-sign' => 'e083', + 'gl-ok-sign' => 'e084', + 'gl-question-sign' => 'e085', + 'gl-info-sign' => 'e086', + 'gl-screenshot' => 'e087', + 'gl-remove-circle' => 'e088', + 'gl-ok-circle' => 'e089', + 'gl-ban-circle' => 'e090', + 'gl-arrow-left' => 'e091', + 'gl-arrow-right' => 'e092', + 'gl-arrow-up' => 'e093', + 'gl-arrow-down' => 'e094', + 'gl-share-alt' => 'e095', + 'gl-resize-full' => 'e096', + 'gl-resize-small' => 'e097', + 'gl-exclamation-sign' => 'e101', + 'gl-gift' => 'e102', + 'gl-leaf' => 'e103', + 'gl-fire' => 'e104', + 'gl-eye-open' => 'e105', + 'gl-eye-close' => 'e106', + 'gl-warning-sign' => 'e107', + 'gl-plane' => 'e108', + 'gl-calendar' => 'e109', + 'gl-random' => 'e110', + 'gl-comment' => 'e111', + 'gl-magnet' => 'e112', + 'gl-chevron-up' => 'e113', + 'gl-chevron-down' => 'e114', + 'gl-retweet' => 'e115', + 'gl-shopping-cart' => 'e116', + 'gl-folder-close' => 'e117', + 'gl-folder-open' => 'e118', + 'gl-resize-vertical' => 'e119', + 'gl-resize-horizontal' => 'e120', + 'gl-hdd' => 'e121', + 'gl-bullhorn' => 'e122', + 'gl-bell' => 'e123', + 'gl-certificate' => 'e124', + 'gl-thumbs-up' => 'e125', + 'gl-thumbs-down' => 'e126', + 'gl-hand-right' => 'e127', + 'gl-hand-left' => 'e128', + 'gl-hand-up' => 'e129', + 'gl-hand-down' => 'e130', + 'gl-circle-arrow-right' => 'e131', + 'gl-circle-arrow-left' => 'e132', + 'gl-circle-arrow-up' => 'e133', + 'gl-circle-arrow-down' => 'e134', + 'gl-globe' => 'e135', + 'gl-wrench' => 'e136', + 'gl-tasks' => 'e137', + 'gl-filter' => 'e138', + 'gl-briefcase' => 'e139', + 'gl-fullscreen' => 'e140', + 'gl-dashboard' => 'e141', + 'gl-paperclip' => 'e142', + 'gl-heart-empty' => 'e143', + 'gl-link' => 'e144', + 'gl-phone' => 'e145', + 'gl-pushpin' => 'e146', + 'gl-usd' => 'e148', + 'gl-gbp' => 'e149', + 'gl-sort' => 'e150', + 'gl-sort-by-alphabet' => 'e151', + 'gl-sort-by-alphabet-alt' => 'e152', + 'gl-sort-by-order' => 'e153', + 'gl-sort-by-order-alt' => 'e154', + 'gl-sort-by-attributes' => 'e155', + 'gl-sort-by-attributes-alt' => 'e156', + 'gl-unchecked' => 'e157', + 'gl-expand' => 'e158', + 'gl-collapse-down' => 'e159', + 'gl-collapse-up' => 'e160', + 'gl-log-in' => 'e161', + 'gl-flash' => 'e162', + 'gl-log-out' => 'e163', + 'gl-new-window' => 'e164', + 'gl-record' => 'e165', + 'gl-save' => 'e166', + 'gl-open' => 'e167', + 'gl-saved' => 'e168', + 'gl-import' => 'e169', + 'gl-export' => 'e170', + 'gl-send' => 'e171', + 'gl-floppy-disk' => 'e172', + 'gl-floppy-saved' => 'e173', + 'gl-floppy-remove' => 'e174', + 'gl-floppy-save' => 'e175', + 'gl-floppy-open' => 'e176', + 'gl-credit-card' => 'e177', + 'gl-transfer' => 'e178', + 'gl-cutlery' => 'e179', + 'gl-header' => 'e180', + 'gl-compressed' => 'e181', + 'gl-earphone' => 'e182', + 'gl-phone-alt' => 'e183', + 'gl-tower' => 'e184', + 'gl-stats' => 'e185', + 'gl-sd-video' => 'e186', + 'gl-hd-video' => 'e187', + 'gl-subtitles' => 'e188', + 'gl-sound-stereo' => 'e189', + 'gl-sound-dolby' => 'e190', + 'gl-sound-5-1' => 'e191', + 'gl-sound-6-1' => 'e192', + 'gl-sound-7-1' => 'e193', + 'gl-copyright-mark' => 'e194', + 'gl-registration-mark' => 'e195', + 'gl-cloud-download' => 'e197', + 'gl-cloud-upload' => 'e198', + 'gl-tree-conifer' => 'e199', + 'gl-tree-deciduous' => 'e200', + 'gl-cd' => 'e201', + 'gl-save-file' => 'e202', + 'gl-open-file' => 'e203', + 'gl-level-up' => 'e204', + 'gl-copy' => 'e205', + 'gl-paste' => 'e206', + 'gl-alert' => 'e209', + 'gl-equalizer' => 'e210', + 'gl-king' => 'e211', + 'gl-queen' => 'e212', + 'gl-pawn' => 'e213', + 'gl-bishop' => 'e214', + 'gl-knight' => 'e215', + 'gl-baby-formula' => 'e216', + 'gl-blackboard' => 'e218', + 'gl-bed' => 'e219', + 'gl-erase' => 'e221', + 'gl-lamp' => 'e223', + 'gl-duplicate' => 'e224', + 'gl-piggy-bank' => 'e225', + 'gl-scissors' => 'e226', + 'gl-bitcoin' => 'e227', + 'gl-btc' => 'e227', + 'gl-xbt' => 'e227', + 'gl-scale' => 'e230', + 'gl-ice-lolly' => 'e231', + 'gl-ice-lolly-tasted' => 'e232', + 'gl-education' => 'e233', + 'gl-option-horizontal' => 'e234', + 'gl-option-vertical' => 'e235', + 'gl-menu-hamburger' => 'e236', + 'gl-modal-window' => 'e237', + 'gl-oil' => 'e238', + 'gl-grain' => 'e239', + 'gl-sunglasses' => 'e240', + 'gl-text-size' => 'e241', + 'gl-text-color' => 'e242', + 'gl-text-background' => 'e243', + 'gl-object-align-top' => 'e244', + 'gl-object-align-bottom' => 'e245', + 'gl-object-align-horizontal' => 'e246', + 'gl-object-align-left' => 'e247', + 'gl-object-align-vertical' => 'e248', + 'gl-object-align-right' => 'e249', + 'gl-triangle-right' => 'e250', + 'gl-triangle-left' => 'e251', + 'gl-triangle-bottom' => 'e252', + 'gl-triangle-top' => 'e253', + 'gl-console' => 'e254', + 'gl-superscript' => 'e255', + 'gl-subscript' => 'e256', + 'gl-menu-left' => 'e257', + 'gl-menu-right' => 'e258', + 'gl-menu-down' => 'e259', + 'gl-menu-up' => 'e260', + 'gl-apple' => 'f8ff', + 'gl-key' => '1f511', + 'gl-door' => '1f6aa', + 'fa-asterisk' => 'f069', + 'fa-plus' => 'f067', + 'fa-question' => 'f128', + 'fa-minus' => 'f068', + 'fa-glass' => 'f000', + 'fa-music' => 'f001', + 'fa-search' => 'f002', + 'fa-envelope-o' => 'f003', + 'fa-heart' => 'f004', + 'fa-star' => 'f005', + 'fa-star-o' => 'f006', + 'fa-user' => 'f007', + 'fa-film' => 'f008', + 'fa-th-large' => 'f009', + 'fa-th' => 'f00a', + 'fa-th-list' => 'f00b', + 'fa-check' => 'f00c', + 'fa-close' => 'f00d', + 'fa-remove' => 'f00d', + 'fa-times' => 'f00d', + 'fa-search-plus' => 'f00e', + 'fa-search-minus' => 'f010', + 'fa-power-off' => 'f011', + 'fa-signal' => 'f012', + 'fa-cog' => 'f013', + 'fa-gear' => 'f013', + 'fa-trash-o' => 'f014', + 'fa-home' => 'f015', + 'fa-file-o' => 'f016', + 'fa-clock-o' => 'f017', + 'fa-road' => 'f018', + 'fa-download' => 'f019', + 'fa-arrow-circle-o-down' => 'f01a', + 'fa-arrow-circle-o-up' => 'f01b', + 'fa-inbox' => 'f01c', + 'fa-play-circle-o' => 'f01d', + 'fa-repeat' => 'f01e', + 'fa-rotate-right' => 'f01e', + 'fa-refresh' => 'f021', + 'fa-list-alt' => 'f022', + 'fa-lock' => 'f023', + 'fa-flag' => 'f024', + 'fa-headphones' => 'f025', + 'fa-volume-off' => 'f026', + 'fa-volume-down' => 'f027', + 'fa-volume-up' => 'f028', + 'fa-qrcode' => 'f029', + 'fa-barcode' => 'f02a', + 'fa-tag' => 'f02b', + 'fa-tags' => 'f02c', + 'fa-book' => 'f02d', + 'fa-bookmark' => 'f02e', + 'fa-print' => 'f02f', + 'fa-camera' => 'f030', + 'fa-font' => 'f031', + 'fa-bold' => 'f032', + 'fa-italic' => 'f033', + 'fa-text-height' => 'f034', + 'fa-text-width' => 'f035', + 'fa-align-left' => 'f036', + 'fa-align-center' => 'f037', + 'fa-align-right' => 'f038', + 'fa-align-justify' => 'f039', + 'fa-list' => 'f03a', + 'fa-dedent' => 'f03b', + 'fa-outdent' => 'f03b', + 'fa-indent' => 'f03c', + 'fa-video-camera' => 'f03d', + 'fa-image' => 'f03e', + 'fa-photo' => 'f03e', + 'fa-picture-o' => 'f03e', + 'fa-pencil' => 'f040', + 'fa-map-marker' => 'f041', + 'fa-adjust' => 'f042', + 'fa-tint' => 'f043', + 'fa-edit' => 'f044', + 'fa-pencil-square-o' => 'f044', + 'fa-share-square-o' => 'f045', + 'fa-check-square-o' => 'f046', + 'fa-arrows' => 'f047', + 'fa-step-backward' => 'f048', + 'fa-fast-backward' => 'f049', + 'fa-backward' => 'f04a', + 'fa-play' => 'f04b', + 'fa-pause' => 'f04c', + 'fa-stop' => 'f04d', + 'fa-forward' => 'f04e', + 'fa-fast-forward' => 'f050', + 'fa-step-forward' => 'f051', + 'fa-eject' => 'f052', + 'fa-chevron-left' => 'f053', + 'fa-chevron-right' => 'f054', + 'fa-plus-circle' => 'f055', + 'fa-minus-circle' => 'f056', + 'fa-times-circle' => 'f057', + 'fa-check-circle' => 'f058', + 'fa-question-circle' => 'f059', + 'fa-info-circle' => 'f05a', + 'fa-crosshairs' => 'f05b', + 'fa-times-circle-o' => 'f05c', + 'fa-check-circle-o' => 'f05d', + 'fa-ban' => 'f05e', + 'fa-arrow-left' => 'f060', + 'fa-arrow-right' => 'f061', + 'fa-arrow-up' => 'f062', + 'fa-arrow-down' => 'f063', + 'fa-mail-forward' => 'f064', + 'fa-share' => 'f064', + 'fa-expand' => 'f065', + 'fa-compress' => 'f066', + 'fa-exclamation-circle' => 'f06a', + 'fa-gift' => 'f06b', + 'fa-leaf' => 'f06c', + 'fa-fire' => 'f06d', + 'fa-eye' => 'f06e', + 'fa-eye-slash' => 'f070', + 'fa-exclamation-triangle' => 'f071', + 'fa-warning' => 'f071', + 'fa-plane' => 'f072', + 'fa-calendar' => 'f073', + 'fa-random' => 'f074', + 'fa-comment' => 'f075', + 'fa-magnet' => 'f076', + 'fa-chevron-up' => 'f077', + 'fa-chevron-down' => 'f078', + 'fa-retweet' => 'f079', + 'fa-shopping-cart' => 'f07a', + 'fa-folder' => 'f07b', + 'fa-folder-open' => 'f07c', + 'fa-arrows-v' => 'f07d', + 'fa-arrows-h' => 'f07e', + 'fa-bar-chart' => 'f080', + 'fa-bar-chart-o' => 'f080', + 'fa-twitter-square' => 'f081', + 'fa-facebook-square' => 'f082', + 'fa-camera-retro' => 'f083', + 'fa-key' => 'f084', + 'fa-cogs' => 'f085', + 'fa-gears' => 'f085', + 'fa-comments' => 'f086', + 'fa-thumbs-o-up' => 'f087', + 'fa-thumbs-o-down' => 'f088', + 'fa-star-half' => 'f089', + 'fa-heart-o' => 'f08a', + 'fa-sign-out' => 'f08b', + 'fa-linkedin-square' => 'f08c', + 'fa-thumb-tack' => 'f08d', + 'fa-external-link' => 'f08e', + 'fa-sign-in' => 'f090', + 'fa-trophy' => 'f091', + 'fa-github-square' => 'f092', + 'fa-upload' => 'f093', + 'fa-lemon-o' => 'f094', + 'fa-phone' => 'f095', + 'fa-square-o' => 'f096', + 'fa-bookmark-o' => 'f097', + 'fa-phone-square' => 'f098', + 'fa-twitter' => 'f099', + 'fa-facebook' => 'f09a', + 'fa-facebook-f' => 'f09a', + 'fa-github' => 'f09b', + 'fa-unlock' => 'f09c', + 'fa-credit-card' => 'f09d', + 'fa-feed' => 'f09e', + 'fa-rss' => 'f09e', + 'fa-hdd-o' => 'f0a0', + 'fa-bullhorn' => 'f0a1', + 'fa-bell-o' => 'f0a2', + 'fa-certificate' => 'f0a3', + 'fa-hand-o-right' => 'f0a4', + 'fa-hand-o-left' => 'f0a5', + 'fa-hand-o-up' => 'f0a6', + 'fa-hand-o-down' => 'f0a7', + 'fa-arrow-circle-left' => 'f0a8', + 'fa-arrow-circle-right' => 'f0a9', + 'fa-arrow-circle-up' => 'f0aa', + 'fa-arrow-circle-down' => 'f0ab', + 'fa-globe' => 'f0ac', + 'fa-wrench' => 'f0ad', + 'fa-tasks' => 'f0ae', + 'fa-filter' => 'f0b0', + 'fa-briefcase' => 'f0b1', + 'fa-arrows-alt' => 'f0b2', + 'fa-group' => 'f0c0', + 'fa-users' => 'f0c0', + 'fa-chain' => 'f0c1', + 'fa-link' => 'f0c1', + 'fa-cloud' => 'f0c2', + 'fa-flask' => 'f0c3', + 'fa-cut' => 'f0c4', + 'fa-scissors' => 'f0c4', + 'fa-copy' => 'f0c5', + 'fa-files-o' => 'f0c5', + 'fa-paperclip' => 'f0c6', + 'fa-floppy-o' => 'f0c7', + 'fa-save' => 'f0c7', + 'fa-square' => 'f0c8', + 'fa-bars' => 'f0c9', + 'fa-navicon' => 'f0c9', + 'fa-reorder' => 'f0c9', + 'fa-list-ul' => 'f0ca', + 'fa-list-ol' => 'f0cb', + 'fa-strikethrough' => 'f0cc', + 'fa-underline' => 'f0cd', + 'fa-table' => 'f0ce', + 'fa-magic' => 'f0d0', + 'fa-truck' => 'f0d1', + 'fa-pinterest' => 'f0d2', + 'fa-pinterest-square' => 'f0d3', + 'fa-google-plus-square' => 'f0d4', + 'fa-google-plus' => 'f0d5', + 'fa-money' => 'f0d6', + 'fa-caret-down' => 'f0d7', + 'fa-caret-up' => 'f0d8', + 'fa-caret-left' => 'f0d9', + 'fa-caret-right' => 'f0da', + 'fa-columns' => 'f0db', + 'fa-sort' => 'f0dc', + 'fa-unsorted' => 'f0dc', + 'fa-sort-desc' => 'f0dd', + 'fa-sort-down' => 'f0dd', + 'fa-sort-asc' => 'f0de', + 'fa-sort-up' => 'f0de', + 'fa-envelope' => 'f0e0', + 'fa-linkedin' => 'f0e1', + 'fa-rotate-left' => 'f0e2', + 'fa-undo' => 'f0e2', + 'fa-gavel' => 'f0e3', + 'fa-legal' => 'f0e3', + 'fa-dashboard' => 'f0e4', + 'fa-tachometer' => 'f0e4', + 'fa-comment-o' => 'f0e5', + 'fa-comments-o' => 'f0e6', + 'fa-bolt' => 'f0e7', + 'fa-flash' => 'f0e7', + 'fa-sitemap' => 'f0e8', + 'fa-umbrella' => 'f0e9', + 'fa-clipboard' => 'f0ea', + 'fa-paste' => 'f0ea', + 'fa-lightbulb-o' => 'f0eb', + 'fa-exchange' => 'f0ec', + 'fa-cloud-download' => 'f0ed', + 'fa-cloud-upload' => 'f0ee', + 'fa-user-md' => 'f0f0', + 'fa-stethoscope' => 'f0f1', + 'fa-suitcase' => 'f0f2', + 'fa-bell' => 'f0f3', + 'fa-coffee' => 'f0f4', + 'fa-cutlery' => 'f0f5', + 'fa-file-text-o' => 'f0f6', + 'fa-building-o' => 'f0f7', + 'fa-hospital-o' => 'f0f8', + 'fa-ambulance' => 'f0f9', + 'fa-medkit' => 'f0fa', + 'fa-fighter-jet' => 'f0fb', + 'fa-beer' => 'f0fc', + 'fa-h-square' => 'f0fd', + 'fa-plus-square' => 'f0fe', + 'fa-angle-double-left' => 'f100', + 'fa-angle-double-right' => 'f101', + 'fa-angle-double-up' => 'f102', + 'fa-angle-double-down' => 'f103', + 'fa-angle-left' => 'f104', + 'fa-angle-right' => 'f105', + 'fa-angle-up' => 'f106', + 'fa-angle-down' => 'f107', + 'fa-desktop' => 'f108', + 'fa-laptop' => 'f109', + 'fa-tablet' => 'f10a', + 'fa-mobile' => 'f10b', + 'fa-mobile-phone' => 'f10b', + 'fa-circle-o' => 'f10c', + 'fa-quote-left' => 'f10d', + 'fa-quote-right' => 'f10e', + 'fa-spinner' => 'f110', + 'fa-circle' => 'f111', + 'fa-mail-reply' => 'f112', + 'fa-reply' => 'f112', + 'fa-github-alt' => 'f113', + 'fa-folder-o' => 'f114', + 'fa-folder-open-o' => 'f115', + 'fa-smile-o' => 'f118', + 'fa-frown-o' => 'f119', + 'fa-meh-o' => 'f11a', + 'fa-gamepad' => 'f11b', + 'fa-keyboard-o' => 'f11c', + 'fa-flag-o' => 'f11d', + 'fa-flag-checkered' => 'f11e', + 'fa-terminal' => 'f120', + 'fa-code' => 'f121', + 'fa-mail-reply-all' => 'f122', + 'fa-reply-all' => 'f122', + 'fa-star-half-empty' => 'f123', + 'fa-star-half-full' => 'f123', + 'fa-star-half-o' => 'f123', + 'fa-location-arrow' => 'f124', + 'fa-crop' => 'f125', + 'fa-code-fork' => 'f126', + 'fa-chain-broken' => 'f127', + 'fa-unlink' => 'f127', + 'fa-info' => 'f129', + 'fa-exclamation' => 'f12a', + 'fa-superscript' => 'f12b', + 'fa-subscript' => 'f12c', + 'fa-eraser' => 'f12d', + 'fa-puzzle-piece' => 'f12e', + 'fa-microphone' => 'f130', + 'fa-microphone-slash' => 'f131', + 'fa-shield' => 'f132', + 'fa-calendar-o' => 'f133', + 'fa-fire-extinguisher' => 'f134', + 'fa-rocket' => 'f135', + 'fa-maxcdn' => 'f136', + 'fa-chevron-circle-left' => 'f137', + 'fa-chevron-circle-right' => 'f138', + 'fa-chevron-circle-up' => 'f139', + 'fa-chevron-circle-down' => 'f13a', + 'fa-html5' => 'f13b', + 'fa-css3' => 'f13c', + 'fa-anchor' => 'f13d', + 'fa-unlock-alt' => 'f13e', + 'fa-bullseye' => 'f140', + 'fa-ellipsis-h' => 'f141', + 'fa-ellipsis-v' => 'f142', + 'fa-rss-square' => 'f143', + 'fa-play-circle' => 'f144', + 'fa-ticket' => 'f145', + 'fa-minus-square' => 'f146', + 'fa-minus-square-o' => 'f147', + 'fa-level-up' => 'f148', + 'fa-level-down' => 'f149', + 'fa-check-square' => 'f14a', + 'fa-pencil-square' => 'f14b', + 'fa-external-link-square' => 'f14c', + 'fa-share-square' => 'f14d', + 'fa-compass' => 'f14e', + 'fa-caret-square-o-down' => 'f150', + 'fa-toggle-down' => 'f150', + 'fa-caret-square-o-up' => 'f151', + 'fa-toggle-up' => 'f151', + 'fa-caret-square-o-right' => 'f152', + 'fa-toggle-right' => 'f152', + 'fa-eur' => 'f153', + 'fa-euro' => 'f153', + 'fa-gbp' => 'f154', + 'fa-dollar' => 'f155', + 'fa-usd' => 'f155', + 'fa-inr' => 'f156', + 'fa-rupee' => 'f156', + 'fa-cny' => 'f157', + 'fa-jpy' => 'f157', + 'fa-rmb' => 'f157', + 'fa-yen' => 'f157', + 'fa-rouble' => 'f158', + 'fa-rub' => 'f158', + 'fa-ruble' => 'f158', + 'fa-krw' => 'f159', + 'fa-won' => 'f159', + 'fa-bitcoin' => 'f15a', + 'fa-btc' => 'f15a', + 'fa-file' => 'f15b', + 'fa-file-text' => 'f15c', + 'fa-sort-alpha-asc' => 'f15d', + 'fa-sort-alpha-desc' => 'f15e', + 'fa-sort-amount-asc' => 'f160', + 'fa-sort-amount-desc' => 'f161', + 'fa-sort-numeric-asc' => 'f162', + 'fa-sort-numeric-desc' => 'f163', + 'fa-thumbs-up' => 'f164', + 'fa-thumbs-down' => 'f165', + 'fa-youtube-square' => 'f166', + 'fa-youtube' => 'f167', + 'fa-xing' => 'f168', + 'fa-xing-square' => 'f169', + 'fa-youtube-play' => 'f16a', + 'fa-dropbox' => 'f16b', + 'fa-stack-overflow' => 'f16c', + 'fa-instagram' => 'f16d', + 'fa-flickr' => 'f16e', + 'fa-adn' => 'f170', + 'fa-bitbucket' => 'f171', + 'fa-bitbucket-square' => 'f172', + 'fa-tumblr' => 'f173', + 'fa-tumblr-square' => 'f174', + 'fa-long-arrow-down' => 'f175', + 'fa-long-arrow-up' => 'f176', + 'fa-long-arrow-left' => 'f177', + 'fa-long-arrow-right' => 'f178', + 'fa-apple' => 'f179', + 'fa-windows' => 'f17a', + 'fa-android' => 'f17b', + 'fa-linux' => 'f17c', + 'fa-dribbble' => 'f17d', + 'fa-skype' => 'f17e', + 'fa-foursquare' => 'f180', + 'fa-trello' => 'f181', + 'fa-female' => 'f182', + 'fa-male' => 'f183', + 'fa-gittip' => 'f184', + 'fa-gratipay' => 'f184', + 'fa-sun-o' => 'f185', + 'fa-moon-o' => 'f186', + 'fa-archive' => 'f187', + 'fa-bug' => 'f188', + 'fa-vk' => 'f189', + 'fa-weibo' => 'f18a', + 'fa-renren' => 'f18b', + 'fa-pagelines' => 'f18c', + 'fa-stack-exchange' => 'f18d', + 'fa-arrow-circle-o-right' => 'f18e', + 'fa-arrow-circle-o-left' => 'f190', + 'fa-caret-square-o-left' => 'f191', + 'fa-toggle-left' => 'f191', + 'fa-dot-circle-o' => 'f192', + 'fa-wheelchair' => 'f193', + 'fa-vimeo-square' => 'f194', + 'fa-try' => 'f195', + 'fa-turkish-lira' => 'f195', + 'fa-plus-square-o' => 'f196', + 'fa-space-shuttle' => 'f197', + 'fa-slack' => 'f198', + 'fa-envelope-square' => 'f199', + 'fa-wordpress' => 'f19a', + 'fa-openid' => 'f19b', + 'fa-bank' => 'f19c', + 'fa-institution' => 'f19c', + 'fa-university' => 'f19c', + 'fa-graduation-cap' => 'f19d', + 'fa-mortar-board' => 'f19d', + 'fa-yahoo' => 'f19e', + 'fa-google' => 'f1a0', + 'fa-reddit' => 'f1a1', + 'fa-reddit-square' => 'f1a2', + 'fa-stumbleupon-circle' => 'f1a3', + 'fa-stumbleupon' => 'f1a4', + 'fa-delicious' => 'f1a5', + 'fa-digg' => 'f1a6', + 'fa-pied-piper-pp' => 'f1a7', + 'fa-pied-piper-alt' => 'f1a8', + 'fa-drupal' => 'f1a9', + 'fa-joomla' => 'f1aa', + 'fa-language' => 'f1ab', + 'fa-fax' => 'f1ac', + 'fa-building' => 'f1ad', + 'fa-child' => 'f1ae', + 'fa-paw' => 'f1b0', + 'fa-spoon' => 'f1b1', + 'fa-cube' => 'f1b2', + 'fa-cubes' => 'f1b3', + 'fa-behance' => 'f1b4', + 'fa-behance-square' => 'f1b5', + 'fa-steam' => 'f1b6', + 'fa-steam-square' => 'f1b7', + 'fa-recycle' => 'f1b8', + 'fa-automobile' => 'f1b9', + 'fa-car' => 'f1b9', + 'fa-cab' => 'f1ba', + 'fa-taxi' => 'f1ba', + 'fa-tree' => 'f1bb', + 'fa-spotify' => 'f1bc', + 'fa-deviantart' => 'f1bd', + 'fa-soundcloud' => 'f1be', + 'fa-database' => 'f1c0', + 'fa-file-pdf-o' => 'f1c1', + 'fa-file-word-o' => 'f1c2', + 'fa-file-excel-o' => 'f1c3', + 'fa-file-powerpoint-o' => 'f1c4', + 'fa-file-image-o' => 'f1c5', + 'fa-file-photo-o' => 'f1c5', + 'fa-file-picture-o' => 'f1c5', + 'fa-file-archive-o' => 'f1c6', + 'fa-file-zip-o' => 'f1c6', + 'fa-file-audio-o' => 'f1c7', + 'fa-file-sound-o' => 'f1c7', + 'fa-file-movie-o' => 'f1c8', + 'fa-file-video-o' => 'f1c8', + 'fa-file-code-o' => 'f1c9', + 'fa-vine' => 'f1ca', + 'fa-codepen' => 'f1cb', + 'fa-jsfiddle' => 'f1cc', + 'fa-life-bouy' => 'f1cd', + 'fa-life-buoy' => 'f1cd', + 'fa-life-ring' => 'f1cd', + 'fa-life-saver' => 'f1cd', + 'fa-support' => 'f1cd', + 'fa-circle-o-notch' => 'f1ce', + 'fa-ra' => 'f1d0', + 'fa-rebel' => 'f1d0', + 'fa-resistance' => 'f1d0', + 'fa-empire' => 'f1d1', + 'fa-ge' => 'f1d1', + 'fa-git-square' => 'f1d2', + 'fa-git' => 'f1d3', + 'fa-hacker-news' => 'f1d4', + 'fa-y-combinator-square' => 'f1d4', + 'fa-yc-square' => 'f1d4', + 'fa-tencent-weibo' => 'f1d5', + 'fa-qq' => 'f1d6', + 'fa-wechat' => 'f1d7', + 'fa-weixin' => 'f1d7', + 'fa-paper-plane' => 'f1d8', + 'fa-send' => 'f1d8', + 'fa-paper-plane-o' => 'f1d9', + 'fa-send-o' => 'f1d9', + 'fa-history' => 'f1da', + 'fa-circle-thin' => 'f1db', + 'fa-header' => 'f1dc', + 'fa-paragraph' => 'f1dd', + 'fa-sliders' => 'f1de', + 'fa-share-alt' => 'f1e0', + 'fa-share-alt-square' => 'f1e1', + 'fa-bomb' => 'f1e2', + 'fa-futbol-o' => 'f1e3', + 'fa-soccer-ball-o' => 'f1e3', + 'fa-tty' => 'f1e4', + 'fa-binoculars' => 'f1e5', + 'fa-plug' => 'f1e6', + 'fa-slideshare' => 'f1e7', + 'fa-twitch' => 'f1e8', + 'fa-yelp' => 'f1e9', + 'fa-newspaper-o' => 'f1ea', + 'fa-wifi' => 'f1eb', + 'fa-calculator' => 'f1ec', + 'fa-paypal' => 'f1ed', + 'fa-google-wallet' => 'f1ee', + 'fa-cc-visa' => 'f1f0', + 'fa-cc-mastercard' => 'f1f1', + 'fa-cc-discover' => 'f1f2', + 'fa-cc-amex' => 'f1f3', + 'fa-cc-paypal' => 'f1f4', + 'fa-cc-stripe' => 'f1f5', + 'fa-bell-slash' => 'f1f6', + 'fa-bell-slash-o' => 'f1f7', + 'fa-trash' => 'f1f8', + 'fa-copyright' => 'f1f9', + 'fa-at' => 'f1fa', + 'fa-eyedropper' => 'f1fb', + 'fa-paint-brush' => 'f1fc', + 'fa-birthday-cake' => 'f1fd', + 'fa-area-chart' => 'f1fe', + 'fa-pie-chart' => 'f200', + 'fa-line-chart' => 'f201', + 'fa-lastfm' => 'f202', + 'fa-lastfm-square' => 'f203', + 'fa-toggle-off' => 'f204', + 'fa-toggle-on' => 'f205', + 'fa-bicycle' => 'f206', + 'fa-bus' => 'f207', + 'fa-ioxhost' => 'f208', + 'fa-angellist' => 'f209', + 'fa-cc' => 'f20a', + 'fa-ils' => 'f20b', + 'fa-shekel' => 'f20b', + 'fa-sheqel' => 'f20b', + 'fa-meanpath' => 'f20c', + 'fa-buysellads' => 'f20d', + 'fa-connectdevelop' => 'f20e', + 'fa-dashcube' => 'f210', + 'fa-forumbee' => 'f211', + 'fa-leanpub' => 'f212', + 'fa-sellsy' => 'f213', + 'fa-shirtsinbulk' => 'f214', + 'fa-simplybuilt' => 'f215', + 'fa-skyatlas' => 'f216', + 'fa-cart-plus' => 'f217', + 'fa-cart-arrow-down' => 'f218', + 'fa-diamond' => 'f219', + 'fa-ship' => 'f21a', + 'fa-user-secret' => 'f21b', + 'fa-motorcycle' => 'f21c', + 'fa-street-view' => 'f21d', + 'fa-heartbeat' => 'f21e', + 'fa-venus' => 'f221', + 'fa-mars' => 'f222', + 'fa-mercury' => 'f223', + 'fa-intersex' => 'f224', + 'fa-transgender' => 'f224', + 'fa-transgender-alt' => 'f225', + 'fa-venus-double' => 'f226', + 'fa-mars-double' => 'f227', + 'fa-venus-mars' => 'f228', + 'fa-mars-stroke' => 'f229', + 'fa-mars-stroke-v' => 'f22a', + 'fa-mars-stroke-h' => 'f22b', + 'fa-neuter' => 'f22c', + 'fa-genderless' => 'f22d', + 'fa-facebook-official' => 'f230', + 'fa-pinterest-p' => 'f231', + 'fa-whatsapp' => 'f232', + 'fa-server' => 'f233', + 'fa-user-plus' => 'f234', + 'fa-user-times' => 'f235', + 'fa-bed' => 'f236', + 'fa-hotel' => 'f236', + 'fa-viacoin' => 'f237', + 'fa-train' => 'f238', + 'fa-subway' => 'f239', + 'fa-medium' => 'f23a', + 'fa-y-combinator' => 'f23b', + 'fa-yc' => 'f23b', + 'fa-optin-monster' => 'f23c', + 'fa-opencart' => 'f23d', + 'fa-expeditedssl' => 'f23e', + 'fa-battery' => 'f240', + 'fa-battery-4' => 'f240', + 'fa-battery-full' => 'f240', + 'fa-battery-3' => 'f241', + 'fa-battery-three-quarters' => 'f241', + 'fa-battery-2' => 'f242', + 'fa-battery-half' => 'f242', + 'fa-battery-1' => 'f243', + 'fa-battery-quarter' => 'f243', + 'fa-battery-0' => 'f244', + 'fa-battery-empty' => 'f244', + 'fa-mouse-pointer' => 'f245', + 'fa-i-cursor' => 'f246', + 'fa-object-group' => 'f247', + 'fa-object-ungroup' => 'f248', + 'fa-sticky-note' => 'f249', + 'fa-sticky-note-o' => 'f24a', + 'fa-cc-jcb' => 'f24b', + 'fa-cc-diners-club' => 'f24c', + 'fa-clone' => 'f24d', + 'fa-balance-scale' => 'f24e', + 'fa-hourglass-o' => 'f250', + 'fa-hourglass-1' => 'f251', + 'fa-hourglass-start' => 'f251', + 'fa-hourglass-2' => 'f252', + 'fa-hourglass-half' => 'f252', + 'fa-hourglass-3' => 'f253', + 'fa-hourglass-end' => 'f253', + 'fa-hourglass' => 'f254', + 'fa-hand-grab-o' => 'f255', + 'fa-hand-rock-o' => 'f255', + 'fa-hand-paper-o' => 'f256', + 'fa-hand-stop-o' => 'f256', + 'fa-hand-scissors-o' => 'f257', + 'fa-hand-lizard-o' => 'f258', + 'fa-hand-spock-o' => 'f259', + 'fa-hand-pointer-o' => 'f25a', + 'fa-hand-peace-o' => 'f25b', + 'fa-trademark' => 'f25c', + 'fa-registered' => 'f25d', + 'fa-creative-commons' => 'f25e', + 'fa-gg' => 'f260', + 'fa-gg-circle' => 'f261', + 'fa-tripadvisor' => 'f262', + 'fa-odnoklassniki' => 'f263', + 'fa-odnoklassniki-square' => 'f264', + 'fa-get-pocket' => 'f265', + 'fa-wikipedia-w' => 'f266', + 'fa-safari' => 'f267', + 'fa-chrome' => 'f268', + 'fa-firefox' => 'f269', + 'fa-opera' => 'f26a', + 'fa-internet-explorer' => 'f26b', + 'fa-television' => 'f26c', + 'fa-tv' => 'f26c', + 'fa-contao' => 'f26d', + 'fa-500px' => 'f26e', + 'fa-amazon' => 'f270', + 'fa-calendar-plus-o' => 'f271', + 'fa-calendar-minus-o' => 'f272', + 'fa-calendar-times-o' => 'f273', + 'fa-calendar-check-o' => 'f274', + 'fa-industry' => 'f275', + 'fa-map-pin' => 'f276', + 'fa-map-signs' => 'f277', + 'fa-map-o' => 'f278', + 'fa-map' => 'f279', + 'fa-commenting' => 'f27a', + 'fa-commenting-o' => 'f27b', + 'fa-houzz' => 'f27c', + 'fa-vimeo' => 'f27d', + 'fa-black-tie' => 'f27e', + 'fa-fonticons' => 'f280', + 'fa-reddit-alien' => 'f281', + 'fa-edge' => 'f282', + 'fa-credit-card-alt' => 'f283', + 'fa-codiepie' => 'f284', + 'fa-modx' => 'f285', + 'fa-fort-awesome' => 'f286', + 'fa-usb' => 'f287', + 'fa-product-hunt' => 'f288', + 'fa-mixcloud' => 'f289', + 'fa-scribd' => 'f28a', + 'fa-pause-circle' => 'f28b', + 'fa-pause-circle-o' => 'f28c', + 'fa-stop-circle' => 'f28d', + 'fa-stop-circle-o' => 'f28e', + 'fa-shopping-bag' => 'f290', + 'fa-shopping-basket' => 'f291', + 'fa-hashtag' => 'f292', + 'fa-bluetooth' => 'f293', + 'fa-bluetooth-b' => 'f294', + 'fa-percent' => 'f295', + 'fa-gitlab' => 'f296', + 'fa-wpbeginner' => 'f297', + 'fa-wpforms' => 'f298', + 'fa-envira' => 'f299', + 'fa-universal-access' => 'f29a', + 'fa-wheelchair-alt' => 'f29b', + 'fa-question-circle-o' => 'f29c', + 'fa-blind' => 'f29d', + 'fa-audio-description' => 'f29e', + 'fa-volume-control-phone' => 'f2a0', + 'fa-braille' => 'f2a1', + 'fa-assistive-listening-systems' => 'f2a2', + 'fa-american-sign-language-interpreting' => 'f2a3', + 'fa-asl-interpreting' => 'f2a3', + 'fa-deaf' => 'f2a4', + 'fa-deafness' => 'f2a4', + 'fa-hard-of-hearing' => 'f2a4', + 'fa-glide' => 'f2a5', + 'fa-glide-g' => 'f2a6', + 'fa-sign-language' => 'f2a7', + 'fa-signing' => 'f2a7', + 'fa-low-vision' => 'f2a8', + 'fa-viadeo' => 'f2a9', + 'fa-viadeo-square' => 'f2aa', + 'fa-snapchat' => 'f2ab', + 'fa-snapchat-ghost' => 'f2ac', + 'fa-snapchat-square' => 'f2ad', + 'fa-pied-piper' => 'f2ae', + 'fa-first-order' => 'f2b0', + 'fa-yoast' => 'f2b1', + 'fa-themeisle' => 'f2b2', + 'fa-google-plus-circle' => 'f2b3', + 'fa-google-plus-official' => 'f2b3', + 'fa-fa' => 'f2b4', + 'fa-font-awesome' => 'f2b4', + 'fa-handshake-o' => 'f2b5', + 'fa-envelope-open' => 'f2b6', + 'fa-envelope-open-o' => 'f2b7', + 'fa-linode' => 'f2b8', + 'fa-address-book' => 'f2b9', + 'fa-address-book-o' => 'f2ba', + 'fa-address-card' => 'f2bb', + 'fa-vcard' => 'f2bb', + 'fa-address-card-o' => 'f2bc', + 'fa-vcard-o' => 'f2bc', + 'fa-user-circle' => 'f2bd', + 'fa-user-circle-o' => 'f2be', + 'fa-user-o' => 'f2c0', + 'fa-id-badge' => 'f2c1', + 'fa-drivers-license' => 'f2c2', + 'fa-id-card' => 'f2c2', + 'fa-drivers-license-o' => 'f2c3', + 'fa-id-card-o' => 'f2c3', + 'fa-quora' => 'f2c4', + 'fa-free-code-camp' => 'f2c5', + 'fa-telegram' => 'f2c6', + 'fa-thermometer' => 'f2c7', + 'fa-thermometer-4' => 'f2c7', + 'fa-thermometer-full' => 'f2c7', + 'fa-thermometer-3' => 'f2c8', + 'fa-thermometer-three-quarters' => 'f2c8', + 'fa-thermometer-2' => 'f2c9', + 'fa-thermometer-half' => 'f2c9', + 'fa-thermometer-1' => 'f2ca', + 'fa-thermometer-quarter' => 'f2ca', + 'fa-thermometer-0' => 'f2cb', + 'fa-thermometer-empty' => 'f2cb', + 'fa-shower' => 'f2cc', + 'fa-bath' => 'f2cd', + 'fa-bathtub' => 'f2cd', + 'fa-s15' => 'f2cd', + 'fa-podcast' => 'f2ce', + 'fa-window-maximize' => 'f2d0', + 'fa-window-minimize' => 'f2d1', + 'fa-window-restore' => 'f2d2', + 'fa-times-rectangle' => 'f2d3', + 'fa-window-close' => 'f2d3', + 'fa-times-rectangle-o' => 'f2d4', + 'fa-window-close-o' => 'f2d4', + 'fa-bandcamp' => 'f2d5', + 'fa-grav' => 'f2d6', + 'fa-etsy' => 'f2d7', + 'fa-imdb' => 'f2d8', + 'fa-ravelry' => 'f2d9', + 'fa-eercast' => 'f2da', + 'fa-microchip' => 'f2db', + 'fa-snowflake-o' => 'f2dc', + 'fa-superpowers' => 'f2dd', + 'fa-wpexplorer' => 'f2de', + 'fa-meetup' => 'f2e0', +]; diff --git a/backend/config/main-local.php b/backend/config/main-local.php new file mode 100755 index 0000000000000000000000000000000000000000..1700ffd381ef3de47f9a4a1b6a2f36cb5f1a0cec --- /dev/null +++ b/backend/config/main-local.php @@ -0,0 +1,27 @@ + [ + 'request' => [ + // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation + 'cookieValidationKey' => 'UrCGRqblVXCPOjZ7-JE0zctegcoJkJIO', + ], + ], +]; + +if (!YII_ENV_TEST) { + // configuration adjustments for 'dev' environment + $config['bootstrap'][] = 'debug'; + $config['modules']['debug'] = [ + 'class' => 'yii\debug\Module', + 'allowedIPs' => ['127.0.0.1', '::1','172.17.0.1'] + ]; + + $config['bootstrap'][] = 'gii'; + $config['modules']['gii'] = [ + 'class' => 'yii\gii\Module', + 'allowedIPs' => ['127.0.0.1', '::1','172.17.0.1'] + ]; +} + +return $config; diff --git a/backend/config/main.php b/backend/config/main.php new file mode 100755 index 0000000000000000000000000000000000000000..29fb9b4b312a4cb0dee6bc6b136ddaa49754c6db --- /dev/null +++ b/backend/config/main.php @@ -0,0 +1,92 @@ + 'app-backend', + 'basePath' => dirname(__DIR__), + 'controllerNamespace' => 'backend\controllers', + 'bootstrap' => ['log'], + 'modules' => require __DIR__ . '/modules.php', + 'components' => [ + 'request' => [ + 'csrfParam' => '_csrf-backend', + ], + 'user' => [ + 'identityClass' => 'common\models\User', + //'loginUrl' => ['admin/user/login'], + 'enableAutoLogin' => true, + 'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true], + ], + 'session' => [ + // this is the name of the session cookie used for login on the backend + 'name' => 'advanced-backend', + ], + 'log' => [ + 'traceLevel' => YII_DEBUG ? 3 : 0, + 'targets' => [ + [ + 'class' => 'yii\log\FileTarget', + 'levels' => ['error', 'warning'], + ], + ], + ], + 'errorHandler' => [ + 'errorAction' => 'site/error', + ], + 'view' => [ + 'theme' => [ + 'basePath' => '@app/themes/' . $params['global']['theme'], + 'baseUrl' => '@web/themes/' . $params['global']['theme'], + 'pathMap' => [ + '@app/views' => '@app/themes/' . $params['global']['theme'] + ] + ] + ], + 'i18n' => [ + 'translations' => [ + '*' => [ + 'class' => 'yii\i18n\PhpMessageSource', + 'basePath' => '@app/themes/' . $params['global']['theme'] . '/messages', + 'on missingTranslation' => [ + 'common\components\TranslationEventHandler', + 'handleMissingTranslation' + ] + ], + 'yii' => [ + 'class' => 'yii\i18n\PhpMessageSource', + 'basePath' => '@yii/messages', + 'on missingTranslation' => [ + 'common\components\YiiTranslationEventHandler', + 'handleMissingTranslation' + ] + ] + ] + ], + 'urlManagerFrontend' => [ + 'class' => yii\web\UrlManager::class, + 'enablePrettyUrl' => true, + 'showScriptName' => false, + 'enableStrictParsing' => true, + 'suffix' => '.html', + 'hostInfo' => $params['global']['hostInfo']['frontend'] + ], + 'assetManager' => [ + 'bundles' => $bundles + ], + 'formatter' => [ + 'nullDisplay' => '' + ] + ], + 'params' => $params, +]; diff --git a/backend/config/modules.php b/backend/config/modules.php new file mode 100755 index 0000000000000000000000000000000000000000..9b179140ff41afb2b7062edad9cfb00d93792eda --- /dev/null +++ b/backend/config/modules.php @@ -0,0 +1,31 @@ + [ + 'class' => 'backend\modules\admin\Module', + ], + 'plugins' => [ + 'class' => 'backend\modules\plugins\Module', + ], + 'media' => [ + 'class' => 'backend\modules\media\Module', + ], + 'languages' => [ + 'class' => 'backend\modules\languages\Module', + ], + 'actionlogs' => [ + 'class' => 'backend\modules\actionlogs\Module', + ], + 'themes' => [ + 'class' => 'backend\modules\themes\Module', + ], + 'widgets' => [ + 'class' => 'backend\modules\widgets\Module', + ], + 'categories' => [ + 'class' => 'backend\modules\categories\Module', + ], + 'content' => [ + 'class' => 'backend\modules\content\Module', + ], +]; diff --git a/backend/config/params-local.php b/backend/config/params-local.php new file mode 100755 index 0000000000000000000000000000000000000000..d0b9c34f7d0f3532bc86ceba7de24b0193bcea16 --- /dev/null +++ b/backend/config/params-local.php @@ -0,0 +1,3 @@ + 'admin@example.com', + 'mdm.admin.configs' => [ + 'advanced' => [ + 'frontend' => [ + '@common/config/main.php', + '@common/config/main-local.php', + '@common/config/extension.php', + '@frontend/config/main.php', + '@frontend/config/main-local.php', + '@frontend/config/extension.php', + ], + 'backend' => [ + '@common/config/main.php', + '@common/config/main-local.php', + '@common/config/extension.php', + '@backend/config/main.php', + '@backend/config/main-local.php', + '@backend/config/extension.php', + ], + ], + ], + 'global' => [ + 'theme' => 'basic', + ], +]; diff --git a/backend/config/test.php b/backend/config/test.php new file mode 100755 index 0000000000000000000000000000000000000000..411b05f49ca3ff217a0a8adebadb7dc344e71753 --- /dev/null +++ b/backend/config/test.php @@ -0,0 +1,15 @@ + 'app-backend-tests', + 'components' => [ + 'assetManager' => [ + 'basePath' => __DIR__ . '/../web/assets', + ], + 'urlManager' => [ + 'showScriptName' => true, + ], + 'request' => [ + 'cookieValidationKey' => 'test', + ], + ], +]; diff --git a/backend/controllers/CacheController.php b/backend/controllers/CacheController.php new file mode 100755 index 0000000000000000000000000000000000000000..333cb117ec36bee6797dd803c0b152b9c42fc64e --- /dev/null +++ b/backend/controllers/CacheController.php @@ -0,0 +1,24 @@ +request; + if ($request->isPost) { + $path = $request->post('path'); + FileHelper::removeDirectory($path); + return $this->redirect(['index']); + } + $clients = Clients::getList(); + return $this->render('index', ['clients' => $clients]); + } + +} diff --git a/backend/controllers/ClientsController.php b/backend/controllers/ClientsController.php new file mode 100755 index 0000000000000000000000000000000000000000..e8badcd6f646a39d5a0f7c8a05456ef99d738d26 --- /dev/null +++ b/backend/controllers/ClientsController.php @@ -0,0 +1,95 @@ + [ + 'class' => VerbFilter::class, + 'actions' => [ + 'delete' => ['POST'], + ], + ], + ]; + } + + /** + * Lists all Clients models. + * @return mixed + */ + public function actionIndex() + { + $dataProvider = new ActiveDataProvider([ + 'query' => Clients::find()->orderBy('ordering,id desc'), + ]); + + return $this->render('index', [ + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Clients model. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Updates an existing Clients model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } + + return $this->render('update', [ + 'model' => $model, + ]); + } + + /** + * Finds the Clients model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Clients the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Clients::findOne($id)) !== null) { + return $model; + } + + throw new NotFoundHttpException(Yii::t('common', 'REQUESTED_PAGE_NOT_EXIST')); + } +} diff --git a/backend/controllers/ExtensionsController.php b/backend/controllers/ExtensionsController.php new file mode 100755 index 0000000000000000000000000000000000000000..8e882264ed44211c96784bd91e7bf9f76c6a75de --- /dev/null +++ b/backend/controllers/ExtensionsController.php @@ -0,0 +1,217 @@ + [ + 'class' => VerbFilter::class, + 'actions' => [ + 'delete' => ['POST'], + ], + ], + ]; + } + + public function beforeAction($action) + { + if (parent::beforeAction($action)) { + Helper::addEntry('扩展安装', ['/extensions/installer'], 'installer'); + Helper::addEntry('扩展升级', ['/extensions/update'], 'update'); + Helper::addEntry('扩展管理', ['/extensions/manage'], 'manage'); + Helper::addEntry('数据库维护', ['/extensions/database'], 'database'); + Helper::addEntry('语言安装', ['/extensions/languages'], 'languages'); + Helper::addEntry('升级检查', ['/extensions/updatesites'], 'updatesites'); + return true; + } + return false; + } + + /** + * 扩展安装 + * @return mixed + * @throws yii\base\ErrorException + */ + public function actionInstaller() + { + $model = new UploadForm(['exts' => 'zip, rar, tar']); + $request = Yii::$app->request; + $session = Yii::$app->session; + if ($request->isPost) { + if ($request->post('action') === 'continue') { + $installRes = Installer::install(); + $this->installedAfter($installRes); + } else { + $model->file = UploadedFile::getInstance($model, 'file'); + if ($model->upload('', true)) { + $filePath = $model->path . $model->file->name; + $installer = new Installer(); + $ExtensionId = $installer->install($filePath); + $this->installedAfter($ExtensionId); + } else { + $session->setFlash('error', Helper::errorsToString($model->errors)); + } + } + return $this->redirect(['installer']); + } + + return $this->render('installer', ['model' => $model]); + } + + /** + * Lists all Extensions models. + * @return mixed + */ + public function actionManage() + { + $request = Yii::$app->request; + $session = Yii::$app->session; + if ($request->isPost) { + $post = $request->post(); + if (isset($post['selection'])) { + $status = $post['action'] === 'enable' ? 0 : ($post['action'] === 'disable' ? 1 : null); + if ($status === null) { + if ($post['action'] === 'uninstall') { + $installer = new Installer(); + $installer->uninstall($post['selection']); + } else { + $session->setFlash('error', Yii::t('yii', 'INVALID_DATA_PARAMETER', [ + 'param' => 'action' + ])); + } + } else { + $extensions = Extensions::find()->where([ + 'id' => $post['selection'], + 'protected' => 0, + 'status' => $status + ])->all(); + if (count($extensions) > 0) { + foreach ($extensions as $extension) { + $extension->status = abs($extension->status - 1); + $extension->save(); + } + } + + $message = $status ? 'EXTENSION_DISABLED_NUM' : 'EXTENSION_ENABLED_NUM'; + $session->setFlash('success', Yii::t('extensions', $message, count($extensions))); + } + } else { + $extensions = Extensions::findOne(['id' => $post['id'], 'protected' => 0]); + if ($extensions !== null) { + $extensions->status = $extensions->status ? 0 : 1; + if ($extensions->save()) { + $success = [ + 'enabled' => Yii::t('extensions', 'EXTENSION_ENABLED_NUM', '1'), + 'disabled' => Yii::t('extensions', 'EXTENSION_DISABLED_NUM', '1') + ]; + $session->setFlash('success', $extensions->status ? $success['enabled'] : $success['disabled']); + } else { + $fail = [ + 'enabled' => Yii::t('extensions', 'EXTENSION_ENABLED_FAILED'), + 'disabled' => Yii::t('extensions', 'EXTENSION_DISABLED_FAILED') + ]; + $session->setFlash('error', $extensions->status ? $fail['disabled'] : $fail['enabled']); + } + } else { + $session->setFlash('warning', Yii::t('extensions', 'EXTENSIONS_NOT_EXIST_OR_PROTECTED')); + } + } + } + + $searchModel = new ExtensionsSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('manage', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Updates an existing Extensions model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } + + return $this->render('update', ['model' => $model]); + } + + /** + * Finds the Extensions model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Extensions the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Extensions::findOne($id)) !== null) { + return $model; + } + + throw new NotFoundHttpException(Yii::t('common', 'REQUESTED_PAGE_NOT_EXIST')); + } + + /** + * 安装完成操作 + * @param int|boolean $extensionId 扩展ID + */ + private function installedAfter($extensionId) + { + if (false !== $extensionId) { + $extension = Extensions::findOne($extensionId); + $session = Yii::$app->session; + $session->setFlash('success', Yii::t('extensions', 'EXTENSION_INSTALLATION_SUCCESSFUL', [ + 'name' => Yii::t('extensions', strtoupper($extension->type)) + ])); + $langCat = $extension->manifest_cache['langCat'] ?? false; + $description = trim($extension->manifest_cache['description']); + + if ($extension->type == 'theme') { + $client = \backend\models\Clients::findOne($extension->client_id); + $messageBasePath = '@' . $client->name . '/themes/' . $extension->element . '/messages'; + } else { + $messageBasePath = '@backend/messages'; + } + + Yii::$app->i18n->translations[$langCat] = [ + 'class' => 'yii\i18n\PhpMessageSource', + 'basePath' => $messageBasePath + ]; + + $message = $langCat ? Yii::t($langCat, $description) : $description; + + $session->setFlash('panel', $message); + } + } + +} diff --git a/backend/controllers/LanguagesController.php b/backend/controllers/LanguagesController.php new file mode 100755 index 0000000000000000000000000000000000000000..015def7021a5616e30ecf6e48d72121a5be302a9 --- /dev/null +++ b/backend/controllers/LanguagesController.php @@ -0,0 +1,127 @@ + [ + 'class' => VerbFilter::className(), + 'actions' => [ + 'delete' => ['POST'], + ], + ], + ]; + } + + /** + * Lists all Languages models. + * @return mixed + */ + public function actionIndex() + { + $searchModel = new LanguagesSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->queryParams); + + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider, + ]); + } + + /** + * Displays a single Languages model. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionView($id) + { + return $this->render('view', [ + 'model' => $this->findModel($id), + ]); + } + + /** + * Creates a new Languages model. + * If creation is successful, the browser will be redirected to the 'view' page. + * @return mixed + */ + public function actionCreate() + { + $model = new Languages(); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } + + return $this->render('create', [ + 'model' => $model, + ]); + } + + /** + * Updates an existing Languages model. + * If update is successful, the browser will be redirected to the 'view' page. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionUpdate($id) + { + $model = $this->findModel($id); + + if ($model->load(Yii::$app->request->post()) && $model->save()) { + return $this->redirect(['view', 'id' => $model->id]); + } + + return $this->render('update', [ + 'model' => $model, + ]); + } + + /** + * Deletes an existing Languages model. + * If deletion is successful, the browser will be redirected to the 'index' page. + * @param integer $id + * @return mixed + * @throws NotFoundHttpException if the model cannot be found + */ + public function actionDelete($id) + { + $this->findModel($id)->delete(); + + return $this->redirect(['index']); + } + + /** + * Finds the Languages model based on its primary key value. + * If the model is not found, a 404 HTTP exception will be thrown. + * @param integer $id + * @return Languages the loaded model + * @throws NotFoundHttpException if the model cannot be found + */ + protected function findModel($id) + { + if (($model = Languages::findOne($id)) !== null) { + return $model; + } + + throw new NotFoundHttpException(Yii::t('common', 'REQUESTED_PAGE_NOT_EXIST')); + } +} diff --git a/backend/controllers/SiteController.php b/backend/controllers/SiteController.php new file mode 100755 index 0000000000000000000000000000000000000000..77f91d2c055a542108af28efb58d0c1091a49b32 --- /dev/null +++ b/backend/controllers/SiteController.php @@ -0,0 +1,256 @@ + [ + 'class' => AccessControl::class, + 'rules' => [ + [ + 'actions' => ['login', 'error'], + 'allow' => true, + ], + [ + 'actions' => ['logout', 'index', 'sysinfo', 'icon'], + 'allow' => true, + 'roles' => ['@'], + ], + ], + ], + 'verbs' => [ + 'class' => VerbFilter::class, + 'actions' => [ + 'logout' => ['post'], + ], + ], + ]; + } + + /** + * {@inheritdoc} + */ + public function actions() + { + return [ + 'error' => [ + 'class' => 'yii\web\ErrorAction', + ], + ]; + } + + /** + * Displays homepage. + * + * @return string + */ + public function actionIndex() + { + Helper::addEntries([ + [ + 'label' => Yii::t('site', 'SUBMENU_CONTENT') + ], + [ + 'label' => Icon::i('fa-pencil') . Yii::t('site', 'SUBMENU_ADD_ARTICLE'), + 'url' => ['content/articles/create'] + ], + [ + 'label' => Icon::i('stack') . Yii::t('site', 'SUBMENU_ARTICLES'), + 'url' => ['/content/articles'] + ], + [ + 'label' => Icon::i('fa-folder-open') . Yii::t('site', 'SUBMENU_ARTICLES_CATEGORIES'), + 'url' => ['/categories/default', 'extension' => 'mod_content'] + ], + [ + 'label' => Icon::i('fa-picture-o') . Yii::t('site', 'SUBMENU_MEDIA'), + 'url' => ['/media/default'] + ], + [ + 'label' => '前台配置' + ], + [ + 'label' => Icon::i('fa-list') . '菜单管理', + 'url' => ['/admin/menu-types'] + ], + [ + 'label' => Icon::i('fa-cube') . '小部件管理', + 'url' => ['/widgets'] + ], + [ + 'label' => '系统配置' + ], + [ + 'label' => Icon::i('fa-cog') . '全局配置', + 'url' => ['/menus/index'] + ], + [ + 'label' => Icon::i('fa-eye') . '主题管理', + 'url' => ['/themes/styles'] + ], + [ + 'label' => Icon::i('fa-comment') . '语言管理', + 'url' => ['/languages/installed'] + ], + [ + 'label' => '扩展管理' + ], + [ + 'label' => Icon::i('fa-download') . '安装扩展', + 'url' => ['/extensions/installer'] + ] + ]); + return $this->render('index'); + } + + public function actionSysinfo() + { + $db = Yii::$app->db; + $formatter = Yii::$app->formatter; + $data = [ + 'info' => [ + 'php' => php_uname(), + 'dbserver' => $db->driverName, + 'dbversion' => $db->serverVersion, + 'dbcharset' => $db->charset, + 'phpversion' => phpversion(), + 'server' => isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : getenv('SERVER_SOFTWARE'), + 'sapi_name' => php_sapi_name(), + 'version' => Yii::$app->version, + 'framework' => 'Yii ' . Yii::getVersion(), + 'useragent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '' + ], + 'phpSettings' => [ + 'safe_mode' => Yii::t('common', ini_get('safe_mode') ? 'ON' : 'OFF'), + 'display_errors' => Yii::t('common', ini_get('display_errors') ?: 'NONE'), + 'short_open_tag' => Yii::t('common', ini_get('short_open_tag') == '1' ? 'ON' : 'OFF'), + 'file_uploads' => Yii::t('common', ini_get('file_uploads') == '1' ? 'ON' : 'OFF'), + 'magic_quotes_gpc' => Yii::t('common', ini_get('magic_quotes_gpc') ? 'ON' : 'OFF'), + 'register_globals' => Yii::t('common', ini_get('register_globals') ? 'ON' : 'OFF'), + 'output_buffering' => $formatter->asShortSize(ini_get('output_buffering')), + 'open_basedir' => Yii::t('common', ini_get('open_basedir') ?: 'NONE'), + 'session.save_path' => Yii::t('common', ini_get('session.save_path') ?: 'NONE'), + 'session.auto_start' => Yii::t('common', ini_get('session.auto_start') ? 'ON' : 'OFF'), + 'disable_functions' => ini_get('disable_functions'), + 'xml' => Yii::t('common', extension_loaded('xml') ? 'YES' : 'NO'), + 'zlib' => Yii::t('common', extension_loaded('zlib') ? 'YES' : 'NO'), + 'zip' => Yii::t('common', (function_exists('zip_open') && function_exists('zip_read')) ? 'YES' : 'NO'), + 'mbstring' => Yii::t('common', extension_loaded('mbstring') ? 'YES' : 'NO'), + 'iconv' => Yii::t('common', function_exists('iconv') ? 'YES' : 'NO'), + 'max_input_vars' => $formatter->asInteger(ini_get('max_input_vars')) + ] + ]; + + ob_start(); + //date_default_timezone_set('UTC'); + phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES); + $phpInfo = ob_get_contents(); + ob_end_clean(); + preg_match_all('#]*>(.*)#siU', $phpInfo, $output); + $output = preg_replace('#]*>#', '', $output[1][0]); + $output = preg_replace('#(\w),(\w)#', '\1, \2', $output); + $output = preg_replace('#
#', '', $output); + $output = str_replace('
', '', $output); + $output = preg_replace('#
(.*)<\/tr>#', '$1', $output); + $output = str_replace('
', '', $output); + $output = str_replace('', '', $output); + $data['phpInfo'] = $output; + $msg = [ + 'info' => Yii::t('site', 'SYSTEM_INFORMATION'), + 'phpSettings' => Yii::t('site', 'RELEVANT_PHP_SETTINGS'), + 'phpInfo' => Yii::t('site', 'PHP_INFORMATION'), + 'php' => Yii::t('site', 'PHP_BUILT_ON'), + 'dbserver' => Yii::t('site', 'DATABASE_TYPE'), + 'dbversion' => Yii::t('site', 'DATABASE_VERSION'), + 'dbcharset' => Yii::t('site', 'DATABASE_CHARSET'), + 'phpversion' => Yii::t('site', 'PHP_VERSION'), + 'server' => Yii::t('site', 'WEB_SERVER'), + 'sapi_name' => Yii::t('site', 'WEBSERVER_PHP_INTERFACE'), + 'version' => Yii::t('site', 'APPLICATION_VERSION'), + 'framework' => Yii::t('site', 'FRAMEWORK'), + 'useragent' => Yii::t('site', 'USER_AGENT'), + 'safe_mode' => Yii::t('site', 'SAFE_MODE'), + 'display_errors' => Yii::t('site', 'DISPLAY_ERRORS'), + 'short_open_tag' => Yii::t('site', 'SHORT_OPEN_TAGS'), + 'file_uploads' => Yii::t('site', 'FILE_UPLOADS'), + 'magic_quotes_gpc' => Yii::t('site', 'MAGIC_QUOTES'), + 'register_globals' => Yii::t('site', 'REGISTER_GLOBALS'), + 'output_buffering' => Yii::t('site', 'OUTPUT_BUFFERING'), + 'open_basedir' => Yii::t('site', 'OPEN_BASEDIR'), + 'session.save_path' => Yii::t('site', 'SESSION_SAVE_PATH'), + 'session.auto_start' => Yii::t('site', 'SESSION_AUTO_START'), + 'disable_functions' => Yii::t('site', 'DISABLED_FUNCTIONS'), + 'xml' => Yii::t('site', 'XML_ENABLED'), + 'zlib' => Yii::t('site', 'ZLIB_ENABLED'), + 'zip' => Yii::t('site', 'NATIVE_ZIP_ENABLED'), + 'mbstring' => Yii::t('site', 'MULTIBYTE_STRING_MBSTRING_ENABLED'), + 'iconv' => Yii::t('site', 'ICONV_AVAILABLE'), + 'max_input_vars' => Yii::t('site', 'MAXIMUM_INPUT_VARIABLES'), + ]; + return $this->render('sysinfo', ['data' => $data, 'msg' => $msg]); + } + + /** + * Login action. + * @return string + * @throws yii\base\InvalidConfigException + */ + public function actionLogin() + { + if (!Yii::$app->user->isGuest) { + return $this->goHome(); + } + + $model = new LoginForm(); + $post = Yii::$app->request->post(); + + if ($model->load($post) && $model->login()) { + return $this->goBack(); + } else { + $model->password = ''; + + return $this->renderPartial('login', [ + 'model' => $model, + ]); + } + } + + /** + * Logout action. + * + * @return string + */ + public function actionLogout() + { + Yii::$app->user->logout(); + + return $this->goHome(); + } + + /** + * 显示字体图标 + * @return string + */ + public function actionIcon() + { + $icon = require Yii::getAlias('@backend/config/icon.php'); + return $this->render('icon', ['icon' => $icon]); + } +} diff --git a/backend/controllers/TestController.php b/backend/controllers/TestController.php new file mode 100755 index 0000000000000000000000000000000000000000..eea3f2ee77b8d365a0420626348b87d143519006 --- /dev/null +++ b/backend/controllers/TestController.php @@ -0,0 +1,39 @@ +on(self::EVENT_AFTER_HELLO, [$plugin, 'hello'], 'abc', true); + } + + public function actionIndex() + { + $this->trigger(self::EVENT_AFTER_HELLO); + } + + public function actionForm() + { + $model = new \backend\models\TestForm(); + $post = Yii::$app->request->post(); + if ($model->load($post)) { + print_r($model); + exit; + } else { + return $this->render('form', ['model' => $model]); + } + } +} diff --git a/backend/manifests/packages/pkg_zh-CN.xml b/backend/manifests/packages/pkg_zh-CN.xml new file mode 100755 index 0000000000000000000000000000000000000000..a4de216a5b61c6e8ff792d425e28d69f54778c45 --- /dev/null +++ b/backend/manifests/packages/pkg_zh-CN.xml @@ -0,0 +1,26 @@ + + + Chinese Simplified (zh-CN) Language Pack + zh-CN + 1.0.0 + 2019年7月 + FireLoong 火龙网 www.fireloong.com + fireloong@foxmail.com + www.fireloong.com + 版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + https://gitee.com/fireloong/yii2cms + Yii2CMS Project + www.fireloong.com + + + + frontend_zh-CN + backend_zh-CN + + + + https://update.fireloong.com/language/translationlist_3.xml + + + diff --git a/backend/manifests/packages/pkg_zh-TW.xml b/backend/manifests/packages/pkg_zh-TW.xml new file mode 100755 index 0000000000000000000000000000000000000000..3c7c934f895a8f5c3908c9c4efd36a17b4e8a0df --- /dev/null +++ b/backend/manifests/packages/pkg_zh-TW.xml @@ -0,0 +1,27 @@ + + + Chinese (Traditional) Language Pack + zh-TW + 1.0.0 + September 2017 + FireLoong 火龙网 www.fireloong.com + fireloong@foxmail.com + www.fireloong.com + 版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + https://github.com/joomla/joomla-cms + Yii2CMS Project + www.fireloong.com + + + + + frontend_zh-TW + backend_zh-TW + + + + https://update.fireloong.com/language/translationlist_1.xml + + + diff --git a/backend/manifests/packages/pkg_zh-US.xml b/backend/manifests/packages/pkg_zh-US.xml new file mode 100755 index 0000000000000000000000000000000000000000..269594f2527b887da23516b3c618e4cdd81bbd0b --- /dev/null +++ b/backend/manifests/packages/pkg_zh-US.xml @@ -0,0 +1,27 @@ + + + English United States Language Pack + en-US + 1.0.0 + July 2019 + FireLoong www.fireloong.com + fireloong@foxmail.com + www.fireloong.com + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL + http://www.fireloong.com + Yii2CMS Project + www.fireloong.com + + + + + frontend_en-US + backend_en-US + + + + https://update.fireloong.com/language/translationlist_1.xml + + + diff --git a/backend/messages/en-US/common.php b/backend/messages/en-US/common.php new file mode 100755 index 0000000000000000000000000000000000000000..473b99340db5edd7134bc285d1bba6077aa1ca9e --- /dev/null +++ b/backend/messages/en-US/common.php @@ -0,0 +1,9 @@ + 'Email', + 'STATUS' => 'Status', + 'ACTIVE' => 'Active', + 'INACTIVE' => 'Inactive', + 'PAGE_NOT_FOUND_MSG' => 'The requested page does not exist.' +]; \ No newline at end of file diff --git a/backend/messages/en-US/install.xml b/backend/messages/en-US/install.xml new file mode 100755 index 0000000000000000000000000000000000000000..d3464cdb5232f805cd7dc16a9965b2db443d62e8 --- /dev/null +++ b/backend/messages/en-US/install.xml @@ -0,0 +1,28 @@ + + + English (en-US) + en-US + 1.0.0 + July 2019 + FireLoong www.fireloong.com + fireloong@foxmail.com + www.fireloong.com + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + en-US Administrator language + + English (en-US) + English (United States) + en-US + en_US.utf8, en_US.UTF-8, en_US, eng_US, en, english, english-us, us, usa, american, america, american, us, america, america + 1 + 0,6 + gregorian + + + / + install.xml + uninstall.xml + + + diff --git a/backend/messages/en-US/rbac-admin.php b/backend/messages/en-US/rbac-admin.php new file mode 100755 index 0000000000000000000000000000000000000000..5dfd6c8dab1579cf0799c545414a6960cd73fff4 --- /dev/null +++ b/backend/messages/en-US/rbac-admin.php @@ -0,0 +1,28 @@ + 'Login', + 'USERNAME' => 'Username', + 'PASSWORD' => 'Password', + 'EMAIL' => 'Email', + 'REMEMBER_ME' => 'Remember Me', + 'RESET_IT' => 'reset it', + 'SIGNUP' => 'signup', + 'SEND' => 'Send', + 'ASSIGN' => 'Assign', + 'REMOVE' => 'Remove', + 'CHANGE_PASSWORD' => 'Change Password', + 'RETYPE_PASSWORD' => 'Retype Password', + 'REQUEST_PASSWORD_RESET' => 'Request password reset', + 'USER_LOGIN_FORM_HEAD' => 'Please fill out the following fields to login:', + 'USER_RESET_PASSWORD_AND_SIGNUP' => 'If you forgot your password you can {reset}. For new user you can {signup}.', + 'USER_RESET_PASSWORD_FORM_HEAD' => 'Please fill out your email. A link to reset password will be sent there.', + 'USER_SIGNUP_FORM_HEAD' => 'Please fill out the following fields to signup:', + 'ASSIGNMENT_BREADCRUMBS' => 'Assignments', + 'ASSIGNMENT_VIEW_TITLE' => 'Assignment', + 'ASSIGNMENT_VIEW_SEARCH_AVAILABLE' => 'Search for available', + 'ASSIGNMENT_VIEW_SEARCH_ASSIGNED' => 'Search for assigned', + 'USER_INDEX_TITLE' => 'Users', + 'USER_INDEX_ACTIVATE' => 'Activate', + 'USER_INDEX_ACTIVATE_CONFIRM' => 'Are you sure you want to activate this user?' +]; diff --git a/backend/messages/en-US/site.php b/backend/messages/en-US/site.php new file mode 100755 index 0000000000000000000000000000000000000000..39c7e81088a4d89a5d4c5fb954f4f0759102565f --- /dev/null +++ b/backend/messages/en-US/site.php @@ -0,0 +1,7 @@ + 'Login', + 'LOGOUT' => 'Logout', + 'USER_LOGIN_FORM_HEAD' => 'Please fill out the following fields to login:' +]; diff --git a/backend/messages/overrides/zh-CN.rbac-admin.override.php b/backend/messages/overrides/zh-CN.rbac-admin.override.php new file mode 100755 index 0000000000000000000000000000000000000000..dff11ebd5cfcc42e838d235318fba5e9cae603e1 --- /dev/null +++ b/backend/messages/overrides/zh-CN.rbac-admin.override.php @@ -0,0 +1,14 @@ + '主菜单', + 'FRONTEND_MAIN_MENU_DESC' => '前台主菜单', + 'BACKEND_MAIN_MENU_LABEL' => '主菜单', + 'BACKEND_MAIN_MENU_DESC' => '后台主菜单', + 'ROLE_PUBLIC' => '公共角色', + 'ROLE_PUBLIC_DESCRIPTION' => '最低权限的角色', + 'ROLE_SUPER_ADMINISTRATOR' => '超级管理员', + 'ROLE_SUPER_ADMINISTRATOR_DESCRIPTION' => '有全部权限的管理员', + 'ROLE_REGISTERED' => '注册会员', + 'ROLE_REGISTERED_DESCRIPTION' => '已经注册的用户', +]; diff --git a/backend/messages/zh-CN/backend.php b/backend/messages/zh-CN/backend.php new file mode 100755 index 0000000000000000000000000000000000000000..281d7b3e370ffee7a848136656f0bbec4ad6f1f4 --- /dev/null +++ b/backend/messages/zh-CN/backend.php @@ -0,0 +1,7 @@ + '系统后台', + 'SITE_VIEW_DEFAULT_TITLE' => '控制面板', + 'SITE_VIEW_DEFAULT_DESC' => '显示管理后台控制面板页面' +]; diff --git a/backend/messages/zh-CN/cache.php b/backend/messages/zh-CN/cache.php new file mode 100755 index 0000000000000000000000000000000000000000..7517d482e122797c3364181555515cda2831f360 --- /dev/null +++ b/backend/messages/zh-CN/cache.php @@ -0,0 +1,6 @@ + '清理缓存', + 'CLEAR_CLIENT_CACHE' => '清除 {0} 缓存' +]; diff --git a/backend/messages/zh-CN/clients.php b/backend/messages/zh-CN/clients.php new file mode 100755 index 0000000000000000000000000000000000000000..6ea7afb5efdacb246ca5694ea238af40e2209be7 --- /dev/null +++ b/backend/messages/zh-CN/clients.php @@ -0,0 +1,8 @@ + '应用管理', + 'NAME' => '名称', + 'PATH' => '路径', + 'DESCRIPTION' => '描述' +]; diff --git a/backend/messages/zh-CN/common.php b/backend/messages/zh-CN/common.php new file mode 100755 index 0000000000000000000000000000000000000000..6655c3a20d4862f4e824565a3452bb7fa4984238 --- /dev/null +++ b/backend/messages/zh-CN/common.php @@ -0,0 +1,51 @@ + '内容管理系统', + 'BACKEND' => '后台管理', + 'YES' => '是', + 'NO' => '否', + 'ON' => '开', + 'OFF' => '关', + 'NONE' => '无', + 'ALL' => '全部', + 'NEW' => '新增', + 'EDIT' => '编辑', + 'UPDATE' => '更新', + 'DELETE' => '删除', + 'CLOSE' => '关闭', + 'SAVE' => '保存', + 'RESET' => '重置', + 'ORDER' => '排序', + 'ENABLE' => '启用', + 'ENABLED' => '启用', + 'DISABLE' => '关闭', + 'DISABLED' => '关闭', + 'CHECK_ALL' => '全选', + 'SELECT' => '选择', + 'CLEAR' => '清除', + 'CANCEL' => '取消', + 'APPLY' => '确定', + 'STATUS' => '状态', + 'DATE' => '日期', + 'NAME' => '名称', + 'SEARCH' => '搜索', + 'UNINSTALL' => '卸载', + 'REFRESH_CACHE' => '刷新缓存', + 'PUBLISHED' => '已发布', + 'UNPUBLISHED' => '未发布', + 'TRASHED' => '回收站', + 'SHOW' => '显示', + 'HIDE' => '隐藏', + 'ROOT_PARENT' => '- 无 -', + 'REQUESTED_PAGE_NOT_EXIST' => '请求的页面不存在!', + 'PATH_INVALID' => '目录不存在或无效:{0}', + 'CHANGE_IMAGE' => '更换图片', + 'FILE_ALREADY_EXISTS' => '文件已经存在。', + 'SELECTED_IMAGE' => '选择的图片', + 'NO_SELECTED_IMAGE' => '没有选择图片', + 'SAVE_FAILED' => '保存失败!', + 'SAVE_SUCCESS' => '保存成功!', + 'LANGUAGES' => '多语言', + 'ROOT' => '根' +]; diff --git a/backend/messages/zh-CN/extensions.php b/backend/messages/zh-CN/extensions.php new file mode 100755 index 0000000000000000000000000000000000000000..02d9b3c4d63f222d1fb6954741fb5c00807941f4 --- /dev/null +++ b/backend/messages/zh-CN/extensions.php @@ -0,0 +1,59 @@ + '扩展管理', + 'EXTENSIONS_MANAGER' => '扩展管理', + 'EXTENSIONS_INSTALL' => '扩展安装', + 'EXTENSIONS_UPDATE' => '扩展升级', + 'EXTENSIONS_MANAGE' => '扩展管理', + 'DATABASE' => '数据库维护', + 'LANGUAGES_INSTALL' => '语言安装', + 'WIDGETS' => '小部件管理', + 'PLUGINS' => '插件管理', + 'THEMES' => '主题管理', + 'INSTALL_FROM_WEB' => '从扩展目录安装', + 'UPLOAD_PACKAGE_FILE' => '上传安装包文件', + 'INSTALL_FROM_FOLDER' => '从站内目录安装', + 'INSTALL_FROM_URL' => '从网址(URL)远程安装', + 'UPLOAD_INSTALL_EXTENSION' => '上传 & 安装 扩展', + 'UPLOAD_INSTALL' => '上传 & 安装', + 'DRAG_FILE_HERE' => '拖放文件到这里上传文件。', + 'SELECT_FILE' => '选择要上传的文件', + 'MAXIMUM_UPLOAD_SIZE_LIMIT' => '最大上传文件大小:{0}', + 'FOLDER_INSTALLER' => '从站内目录安装', + 'FOLDER_INSTALLER_BUTTON' => '检查并安装', + 'URL_INSTALLER_BUTTON' => '检查并安装', + 'SELECTION_FROM_LIST' => '请先从列表中选择。', + 'CONFIRM_UNINSTALL' => '确定要卸载吗? 确定将永久删除选择的扩展!', + 'PROTECTED_EXTENSION' => '受保护的扩展', + 'DISABLE_EXTENSION' => '关闭扩展', + 'ENABLE_EXTENSION' => '启用扩展', + 'AUTHOR_INFORMATION' => '作者资料', + 'EXTENSION_ENABLED_NUM' => '{0}个扩展成功启用!', + 'EXTENSION_DISABLED_NUM' => '{0}个扩展成功关闭!', + 'EXTENSION_ENABLED_FAILED' => '扩展启用失败!', + 'EXTENSION_DISABLED_FAILED' => '扩展关闭失败!', + 'EXTENSIONS_NOT_EXIST_OR_PROTECTED' => '扩展不存在或受保护的扩展!', + 'EXTENSION_INSTALLATION_SUCCESSFUL' => '{name}安装成功!', + 'PACKAGE_ID' => '应用包 ID', + 'NAME' => '名称', + 'TYPE' => '类型', + 'ELEMENT' => '元素', + 'FOLDER' => '文件夹', + 'CLIENT' => '应用', + 'ENABLED' => '启用', + 'PROTECTED' => '受保护', + 'MANIFEST_CACHE' => '清单缓存', + 'PARAMS' => '参数', + 'ORDER' => '排序', + 'STATUS' => '状态', + 'VERSION' => '版本', + 'DATE' => '日期', + 'AUTHOR' => '作者', + 'PACKAGE' => '应用包', + 'LANGUAGE' => '语言', + 'MODULE' => '模块', + 'PLUGIN' => '插件', + 'THEME' => '主题', + 'WIDGET' => '小部件' +]; diff --git a/backend/messages/zh-CN/install.xml b/backend/messages/zh-CN/install.xml new file mode 100755 index 0000000000000000000000000000000000000000..124dd083669cedada48ce91a2c56b387ae569f86 --- /dev/null +++ b/backend/messages/zh-CN/install.xml @@ -0,0 +1,27 @@ + + + Chinese Simplified (zh-CN) + zh-CN + 1.0.0 + 2019年7月 + FireLoong 火龙网 www.fireloong.com + fireloong@foxmail.com + www.fireloong.com + 版权所有 (C) 2005 - 2019 FireLoong 火龙网 www.fireloong.com + GNU General Public License version 2 or later; see LICENSE.txt + zh-CN 管理后台简体中文语言 + + Chinese Simplified (zh-CN) + 简体中文(中国) + zh-CN + zh_CN.utf8, zh_CN.UTF-8, zh, zho, zhi, zh_CN, zho_CN, zhi_CN, chn_CN, cn, simplified_chinese + 1 + 0,6 + gregorian + + + / + install.xml + + + diff --git a/backend/messages/zh-CN/installer.php b/backend/messages/zh-CN/installer.php new file mode 100755 index 0000000000000000000000000000000000000000..b3fbbf148245681889584e8654490b6e8e9f4fc6 --- /dev/null +++ b/backend/messages/zh-CN/installer.php @@ -0,0 +1,55 @@ + '安装', + 'UPDATE' => '更新', + 'INSTALL_PACKAGE_FILE_DIRECTORIES_NOT_EXIST' => '扩展安装包或目录不存在!', + 'ERROR_UNINSTALLING_TYPE' => '{0}卸载时发生错误。', + 'UNINSTALLING_TYPE_SUCCESSFUL' => '{0}卸载完成。', + 'FILENAMES_FORMAT_INCORRECT_FILES' => '下列文件名的格式不正确:
{files}', + 'ERROR_NOT_FIND_XML_SETUP_FILE' => '未找到 XML 设置(setup)文件。', + 'ABORT_ERROR_DELETING_EXTENSIONS_RECORD' => '不能从数据库中删除扩展的记录。', + 'FAILED_DELETE_DIR' => '删除目录失败:{0}', + 'FAILED_DELETE_FILE' => '删除文件失败:{0}', + 'ABORT_SQL_ERROR' => '扩展 {action}: SQL 错误处理查询: {error}', + 'ERROR_UNKNOWN_CLIENT' => '未知应用端【{0}】', + 'ERROR_UNKNOWN_TYPE' => '未知扩展类型', + 'ABORT_LANGUAGE' => '语言安装异常中止:{0}', + 'ERROR_NO_LANGUAGE_TAG' => '应用包没有指定语言标签。', + 'ERROR_CREATE_FOLDER_FAILED' => '创建目录失败【{0}】', + 'ERROR_FOLDER_IN_USE' => '其它扩展已经在使用此目录【{0}】', + 'WARNING_UNABLE_TO_INSTALL_CONTENT_LANGUAGE' => '不能创建{name}的内容语言:{error}', + 'ERROR_LANG_UNINSTALL_ELEMENT_EMPTY' => '语言卸载: 没有语言标签, 不能卸载文件。', + 'ERROR_LANG_UNINSTALL_PROTECTED' => '此语言不能卸载,语言在数据库中受保护。', + 'ERROR_LANG_UNINSTALL_DEFAULT' => '此语言不能卸载,因为语言已被定义为默认语言。', + 'ERROR_CANNOT_UNINSTALL_CHILD_OF_PACKAGE' => '{0}是某个应用包的一部分,不允许单独卸载。', + 'ERROR_LANG_UNINSTALL_DIRECTORY' => '语言卸载:不能删除指定语言的目录。', + 'ERROR_LANG_UNINSTALL_PATH_EMPTY' => '语言卸载:没有语言路径, 不能卸载文件。', + 'ERROR_MOD_INSTALL_BACKEND_ELEMENT' => '模块安装:XML 文件没有管理后台部分', + 'ERROR_MOD_INSTALL_FAIL_COPY_FILE' => '模块安装:文件复制失败', + 'ABORT_MOD_INSTALL_ROLLBACK' => '模块安装:{0}', + 'ABORT_MOD_BUILD_BACKEND_MENUS_FAILED' => '构建管理菜单时出现错误。', + 'ERROR_MOD_UNINSTALL_WARN_CORE_MODULE' => '模块卸载:试图卸载核心模块:{0}', + 'ERROR_MOD_UNINSTALL_REMOVE_MANUALLY' => '模块卸载:不能卸载组件,请手动删除。', + 'ABORT_PACK_INSTALL_NO_PACK' => '应用包 {0}:没有指定的应用包文件。', + 'ABORT_PACK_INSTALL_NO_FILES' => '应用包 {0}:没有要安装的文件!', + 'ABORT_PACK_INSTALL_ERROR_EXTENSION' => '应用包 {route}:安装扩展时发生错误:{file}', + 'ERROR_PACK_SETTING_PACKAGE_ID' => '不能记录此安装包扩展的安装包 ID 。', + 'ABORT_PACK_INSTALL_ROLLBACK' => '应用包安装:{0}', + 'ERROR_PACK_UNINSTALL_WARN_CORE_PACK' => '应用包卸载:试图卸载核心应用包。', + 'ERROR_PACK_UNINSTALL_MISSING_MANIFEST' => '应用包卸载:缺少清单(manifest)文件。', + 'ERROR_PACK_UNINSTALL_LOAD_MANIFEST' => '应用包卸载:不能加载清单(manifest)文件。', + 'ERROR_PACK_UNINSTALL_INVALID_MANIFEST' => '应用包卸载:清单(manifest)文件无效。', + 'ERROR_PACK_UNINSTALL_NOT_PROPER' => '应用包卸载:此扩展可能已经卸载或者不能正确卸载。应用包名称:{0}', + 'ERROR_PACK_UNINSTALL_UNKNOWN_EXTENSION' => '尝试卸载一个未知扩展,扩展可能在早些时候已经删除。', + 'ERROR_PACK_UNINSTALL_MANIFEST_NOT_REMOVED' => '应用包卸载:发现错误, 清单(manifest)文件不能删除!', + 'ABORT_PLG_INSTALL_NO_FILE' => '插件{0}:没有指定的插件文件。', + 'ABORT_ROLLBACK' => '扩展{action}:{error}', + 'ABORT_PLG_COPY_FILES' => '插件{0}:不能从文件源复制文件。', + 'ERROR_PLG_UNINSTALL_WARN_CORE_PLUGIN' => '插件卸载:试图卸载核心插件:{0}', + 'ERROR_PLG_UNINSTALL_FOLDER_FIELD_EMPTY' => '插件卸载:没有目录名称, 不能删除文件。', + 'ABORT_PLG_UNINSTALL_SQL_ERROR' => '插件卸载:SQL 错误 {0}', + 'ABORT_THEME_INSTALL_UNKNOWN_CLIENT' => '主题安装:未知应用端【{0}】', + 'ABORT_THEME_NO_FILE' => '主题{0}:没有指定主题文件', + 'ABORT_THEME_INSTALL_FAIL_COPY_FILES' => '主题安装:不能从源复制文件' +]; diff --git a/backend/messages/zh-CN/mod_actionlogs.php b/backend/messages/zh-CN/mod_actionlogs.php new file mode 100755 index 0000000000000000000000000000000000000000..e0f9099edb7468c5fac65fedb8d0846ea8d68fc4 --- /dev/null +++ b/backend/messages/zh-CN/mod_actionlogs.php @@ -0,0 +1,20 @@ + '操作日志', + 'ACTIONS_LOGS_XML_DESCRIPTION' => '显示会员在网站中的操作日志', + 'USER_ACTIONS_LOGS' => '会员操作日志', + 'SELECTION_FROM_LIST' => '请先从列表中选择。', + 'DELETE_ITEMS_CONFIRM_LOGS' => '确定要删除吗? 确定将永久删除选择的条目!', + 'DELETE_ITEMS_CONFIRM_ALL_LOGS' => '确定要删除全部会员操作日志吗?', + 'EXPORT_SELECTED_AS_CSV' => '导出已选日志 CSV 文件', + 'EXPORT_ALL_AS_CSV' => '导出全部日志 CSV 文件', + 'DELETE' => '删除', + 'PURGE' => '清空', + 'ACTION' => '操作', + 'MESSAGE' => '信息', + 'DATE' => '时间', + 'IP_ADDRESS' => 'IP 地址', + 'UID' => '会员 ID', + 'ITEM_ID' => '条目 ID' +]; diff --git a/backend/messages/zh-CN/mod_categories.php b/backend/messages/zh-CN/mod_categories.php new file mode 100755 index 0000000000000000000000000000000000000000..4b2f022788f0a57347596f5e5e920883587392ae --- /dev/null +++ b/backend/messages/zh-CN/mod_categories.php @@ -0,0 +1,40 @@ + '分类管理', + 'CONTENT_CATEGORIES' => '文章分类管理', + 'CREATE_CATEGORY' => '创建分类', + 'CREATE_CATEGORY_MOD_CONTENT' => '创建文章管理分类', + 'UPDATE_CATEGORY_MOD_CONTENT' => '编辑文章管理分类', + 'ALIAS_PLACEHOLDER' => '根据名称自动生成', + 'CATEGORY' => '分类', + 'BASIC_OPTIONS' => '基本选项', + 'PUBLISHING_OPTIONS' => '发布选项', + 'FIELD_TITLE_LABEL' => '名称', + 'FIELD_ALIAS_LABEL' => '别名', + 'FIELD_DESCRIPTION_LABEL' => '说明', + 'FIELD_PARENT_ID_LABEL' => '上级分类', + 'FIELD_PUBLISHED_LABEL' => '状态', + 'FIELD_NOTE_LABEL' => '注释', + 'FIELD_CREATED_AT_LABEL' => '创建日期', + 'FIELD_CATEGORY_LAYOUT_LABEL' => '选择显示样式', + 'FIELD_IMAGE_LABEL' => '分类图片', + 'FIELD_IMAGE_ALT_LABEL' => '图片替代(alt)文字', + 'FIELD_METADESC_LABEL' => '元描述
(Meta Description)', + 'FIELD_METAKEY_LABEL' => '元关键字
(Meta Keywords)', + 'FIELD_AUTHOR_LABEL' => '作者', + 'FIELD_LANGUAGE_LABEL' => '语言', + 'FIELD_HITS_LABEL' => '点击数', + 'FIELD_Modified_At_LABEL' => '修改日期', + 'FIELD_Modified_By_LABEL' => '修改人', + 'FIELD_CREATED_BY_LABEL' => '创建人', + 'FIELD_ROBOTS_LABEL' => '搜索引擎抓取规则', + 'USER_DEFAULT_SETTING' => '使用默认设置', + 'INDEX_AND_FOLLOW' => '索引,跟踪(Index, Follow)', + 'NOINDEX_AND_FOLLOW' => '不索引,跟踪(No index, follow)', + 'INDEX_AND_NOFOLLOW' => '索引,不跟踪(Index, No follow)', + 'NOINDEX_AND_NOFOLLOW' => '不索引,不跟踪(No index, no follow)', + 'ALL_LANGUAGES' => '全部语言', + 'UNPUBLISH' => '取消发布', + 'PUBLISH' => '发布' +]; diff --git a/backend/messages/zh-CN/mod_content.php b/backend/messages/zh-CN/mod_content.php new file mode 100755 index 0000000000000000000000000000000000000000..b100b5657423fd54dc187eb4414c96e34aab268a --- /dev/null +++ b/backend/messages/zh-CN/mod_content.php @@ -0,0 +1,62 @@ + '内容管理', + 'CONTENT' => '内容管理', + 'CONTENT_XML_DESCRIPTION' => '内容管理模块', + 'SUBMENU_ARTICLES' => '文章', + 'SUBMENU_CATEGORIES' => '文章分类', + 'SUBMENU_FEATURED' => '精选文章', + 'ARTICLES' => '文章管理', + 'ARTICLES_LIST' => '文章列表', + 'CREATE_ARTICLE' => '创建新文章', + 'UPDATE_ARTICLE' => '更新文章', + 'ALIAS_PLACEHOLDER' => '根据标题自动生成', + 'FIELD_TITLE_LABEL' => '标题', + 'FIELD_ALIAS_LABEL' => '别名', + 'ARTICLE_CONTENT' => '文章内容', + 'URLS_AND_IMAGES' => '图片和链接', + 'SHOW_OPTIONS' => '显示设置', + 'PUBLISHING_OPTIONS' => '发布选项', + 'EDITOR_CONFIG' => '编辑界面', + 'FIELD_STATUS_LABEL' => '状态', + 'FIELD_ARTICLE_TEXT_LABEL' => '文章内容', + 'FIELD_NOTE_LABEL' => '注释', + 'FIELD_FEATURED_LABEL' => '精选', + 'FIELD_LANGUAGE_LABEL' => '语言', + 'FIELD_CATID_LABEL' => '分类', + 'FIELD_IMAGES_IMAGE_INTRO_LABEL' => '文章摘要图片', + 'FIELD_IMAGES_ALIGN_INTRO_LABEL' => '图片对齐方式', + 'USER_DEFAULT_SETTING_VALUE' => '使用默认设置 ({0})', + 'ALIGN_RIGHT' => '右对齐', + 'ALIGN_LEFT' => '左对齐', + 'ALIGN_CENTER' => '居中对齐', + 'FIELD_IMAGES_ALT_INTRO_LABEL' => '图片替代文字
(图片 Alt 属性)', + 'FIELD_IMAGES_CAPTION_INTRO_LABEL' => '图片说明
(图片 Caption 属性)', + 'FIELD_IMAGES_IMAGE_FULL_LABEL' => '正文图片', + 'FIELD_IMAGES_ALIGN_FULL_LABEL' => '图片对齐方式', + 'FIELD_IMAGES_ALT_FULL_LABEL' => '图片替代文字
(图片 Alt 属性)', + 'FIELD_IMAGES_CAPTION_FULL_LABEL' => '图片说明
(图片 Caption 属性)', + 'FIELD_PUBLISH_UP_LABEL' => '发布开始时间', + 'FIELD_PUBLISH_DOWN_LABEL' => '发布结束时间', + 'FIELD_CREATED_AT_LABEL' => '创建日期', + 'FIELD_CREATED_BY_LABEL' => '创建人', + 'FIELD_CREATED_BY_ALIAS_LABEL' => '创建人别名', + 'FIELD_MODIFIED_AT_LABEL' => '修改日期', + 'FIELD_MODIFIED_BY_LABEL' => '修改人', + 'FIELD_HITS_LABEL' => '点击次数', + 'FIELD_METADESC_LABEL' => '元描述
(Meta Description)', + 'FIELD_METAKEY_LABEL' => '元关键字
(Meta Keywords)', + 'FIELD_XREFERENCE_LABEL' => '参考文献', + 'FIELD_ROBOTS_LABEL' => '搜索引擎抓取规则', + 'USER_DEFAULT_SETTING' => '使用默认设置', + 'INDEX_AND_FOLLOW' => '索引,跟踪(Index, Follow)', + 'NOINDEX_AND_FOLLOW' => '不索引,跟踪(No index, follow)', + 'INDEX_AND_NOFOLLOW' => '索引,不跟踪(Index, No follow)', + 'NOINDEX_AND_NOFOLLOW' => '不索引,不跟踪(No index, no follow)', + 'FIELD_AUTHOR_LABEL' => '作者', + 'FIELD_RIGHTS_LABEL' => '版权信息', + 'FIELD_METADATA_XREFERENCE_LABEL' => '外部参考', + 'EDIT_CATEGORY' => '编辑分类', + 'SELECT_ARTICLE' => '选择文章' +]; diff --git a/backend/messages/zh-CN/mod_langs.php b/backend/messages/zh-CN/mod_langs.php new file mode 100755 index 0000000000000000000000000000000000000000..a30e88f2b9a9e1812a019da568b7585f2f2bbda4 --- /dev/null +++ b/backend/messages/zh-CN/mod_langs.php @@ -0,0 +1,53 @@ + '语言管理', + 'LANGUAGES_XML_DESCRIPTION' => '用于管理网站语言。', + 'SUBMENU_INSTALLED' => '语言管理', + 'SUBMENU_CONTENT' => '内容语言', + 'SUBMENU_OVERRIDES' => '文本替换', + 'DEFAULT' => '默认', + 'SET_DEFAULT' => '设置默认', + 'SWITCH_LANGUAGE' => '切换语言', + 'INSTALL_LANGUAGES' => '安装语言', + 'AUTHOR_EMAIL' => '作者邮箱', + 'AUTHOR' => '作者', + 'VERSION' => '版本', + 'NATIVE_TITLE' => '本地化语言名称', + 'LANGUAGE_TAG' => '语言标签', + 'FILTER_SEARCH_DESC' => '搜索语言名称和语言标签', + 'DEFAULT_LANGUAGE_SAVED' => '默认语言保存成功。', + 'DEFAULT_LANGUAGE_FAILED' => '默认语言保存失败。', + 'URL_LANGUAGE_CODE' => 'URL地址语言代码', + 'NEW' => '新建', + 'TITLE' => '名称', + 'IMAGE' => '图片', + 'STATUS' => '状态', + 'DESCRIPTION' => '描述', + 'NEW_CONTENT_LANGUAGE' => '新建内容语言', + 'EDIT_CONTENT_LANGUAGE' => '编辑内容语言', + 'DETAILS' => '说明', + 'METADATA' => '元数据(Metadata)', + 'SITE_NAME' => '网站名称', + 'META_KEYWORDS' => '元关键字
(Meta Keywords)', + 'META_DESCRIPTION' => '元描述
(Meta Description)', + 'CUSTOM_SITE_NAME' => '本地化网站名称', + 'EDIT_ITEM' => '编辑语言', + 'DELETE_SELECTED_ITEM_CONFIRM' => '确定要删除吗? 确定将永久删除选择的条目!', + 'SELECTION_FROM_LIST' => '请先从列表中选择。', + 'SELECT_LANGUAGE' => '选择语言', + 'SELECT_CLIENT' => '选择应用', + 'LANGUAGE' => '语言', + 'CLIENT' => '应用', + 'CATEGORY' => '类别', + 'SEARCH' => '搜索', + 'CLEAR' => '清除', + 'OVERRIDE_FIELD_KEY' => '文本常量', + 'OVERRIDE_FIELD_VALUE' => '文本字串', + 'EDIT_OVERRIDE' => '编辑文本替换', + 'CREATE_OVERRIDE' => '创建文本替换', + 'OVERRIDE_SEARCH_LEGEND' => '查找替换文本', + 'OVERRIDE_FIRST_SELECT_MESSAGE' => '创建新文本替换,请首先选择语言和应用。', + 'ALL_LANGUAGES' => '全部语言', + 'OVERRIDE_FIELD_KEY_NOT_EXIST' => '文本常量不存在!' +]; diff --git a/backend/messages/zh-CN/mod_media.php b/backend/messages/zh-CN/mod_media.php new file mode 100755 index 0000000000000000000000000000000000000000..3886f10c2c39d8a77042978046f0213d5c1c8af6 --- /dev/null +++ b/backend/messages/zh-CN/mod_media.php @@ -0,0 +1,35 @@ + '多媒体文件管理', + 'FOLDERS' => '目录', + 'FOLDER' => '目录', + 'UPLOAD' => '上传', + 'CREATE_NEW_FOLDER' => '创建新目录', + 'CREATE_FOLDER' => '创建目录', + 'FILE_UPLOAD' => '上传文件', + 'START_UPLOAD' => '开始上传', + 'BACK_UP_LEVEL' => '返回上级', + 'DELETE_FILE' => '删除文件', + 'PREVIEW' => '预览', + 'FILENAME' => '文件名', + 'PATH' => '路径', + 'TYPE' => '类型', + 'MODIFY' => '修改于', + 'SIZE' => '尺寸', + 'IMGWIDTH' => '图片宽度', + 'IMGHEIGHT' => '图片高度', + 'SELECTION_FROM_LIST' => '请先从列表中选择。', + 'PATH_INVALID' => '提供的文件或目录路径无效:./{0}', + 'DELETE_PROGRESS' => '删除进度:./{0}', + 'DIRNAME_WRONGFUL' => '未能创建目录。目录名称只能使用字母、数字、下划线和中划线,并且不能有空格。', + 'CREATE_DIR_FAILED' => '目录 “./{0}” 创建失败。', + 'CREATE_DIR_SUCCESS' => '目录 “./{0}” 创建完成。', + 'DELETE_SELECTED_ITEM_CONFIRM' => '确定要删除吗? 确定将永久删除选择的条目!', + 'UPLOAD_SUCCESS' => '上传完成:{0}', + 'INSERT_IMAGE' => '插入图片', + 'UP' => '上一级', + 'INSERT' => '插入', + 'IMAGE_URL' => '图片地址' +]; + diff --git a/backend/messages/zh-CN/mod_plugins.php b/backend/messages/zh-CN/mod_plugins.php new file mode 100755 index 0000000000000000000000000000000000000000..3cce508437a88ecb64815f41cac0834f5aa3589b --- /dev/null +++ b/backend/messages/zh-CN/mod_plugins.php @@ -0,0 +1,15 @@ + '插件管理', + 'TYPE' => '类型', + 'ELEMENT' => '插件主文件', + 'PLUGINS_EDIT_TITLE' => '插件管理:{0}', + 'PLUGIN_TYPE' => '插件类型', + 'PLUGIN' => '基本选项', + 'PLUGIN_FILE' => '插件文件', + 'PLUGIN_TYPE_DESC' => '插件所在的分类或文件目录名称。', + 'PLUGIN_FILE_DESC' => '插件主文件名称', + 'DISABLE_PLUGIN' => '关闭插件', + 'ENABLE_PLUGIN' => '启用插件' +]; diff --git a/backend/messages/zh-CN/mod_themes.php b/backend/messages/zh-CN/mod_themes.php new file mode 100755 index 0000000000000000000000000000000000000000..c528c5ead3f35757a30304335ebf75654538e302 --- /dev/null +++ b/backend/messages/zh-CN/mod_themes.php @@ -0,0 +1,17 @@ + '风格管理', + 'SUBMENU_TEMPLATES' => '模板管理', + 'TEMPLATE_NAME' => '模板名称', + 'STYLE_NAME' => '风格名称', + 'DEFAULT' => '默认', + 'SET_DEFAULT' => '设为默认', + 'DEFAULT_STYLE_SET_SUCCESS' => '默认风格设置成功!', + 'DEFAULT_STYLE_SET_FAILED' => '默认风格设置失败!', + 'TEMPLATE_IMAGE' => '图片', + 'EDIT_TEMPLATE' => '编辑 {0} 模板', + 'TEMPLATE_VERSION' => '版本', + 'TEMPLATE_DATE' => '日期', + 'TEMPLATE_AUTHOR' => '作者' +]; diff --git a/backend/messages/zh-CN/mod_widgets.php b/backend/messages/zh-CN/mod_widgets.php new file mode 100755 index 0000000000000000000000000000000000000000..73099673d89f01386a8e09dee1ec28cc238bd84a --- /dev/null +++ b/backend/messages/zh-CN/mod_widgets.php @@ -0,0 +1,15 @@ + '小部件管理', + 'TITLE' => '名称', + 'POSITION' => '位置', + 'LANGUAGE' => '语言', + 'GENERAL' => '基本选项', + 'CLIENT_NAME' => '应用端名称', + 'SHOW_TITLE' => '小部件名称', + 'CUSTOM_POSITION' => '已放置小部件的位置', + 'PUBLISH_UP' => '发布开始时间', + 'PUBLISH_DOWN' => '发布结束时间', + 'NOTE' => '说明' +]; diff --git a/backend/messages/zh-CN/plg_actionlog.php b/backend/messages/zh-CN/plg_actionlog.php new file mode 100755 index 0000000000000000000000000000000000000000..6e67b51c462088720cf41dbcf50526b68a78e90e --- /dev/null +++ b/backend/messages/zh-CN/plg_actionlog.php @@ -0,0 +1,11 @@ + '会员 {username} 在 {app} 登录', + 'USER_TRIED_LOGIN_APP' => '会员 {username} 试图在 {app} 登录', + 'USER_LOGGED_OUT_APP' => '会员 {username} 从 {app} 退出', + 'USER_PURGED_ONE_OR_MORE_ROWS' => '会员 {username} 删除了一行或多行操作日志', + 'USER_EXPORTED_ONE_OR_MORE_ROWS' => '会员 {username} 导出了一行或多行操作日志', + 'ACTION_LOG_NAME' => '操作日志 - 核心扩展操作插件', + 'ACTION_LOG_XML_DESCRIPTION' => '记录会员在 CMS 核心扩展中的操作, 如果需要可以查看日志' +]; diff --git a/backend/messages/zh-CN/plg_none.php b/backend/messages/zh-CN/plg_none.php new file mode 100755 index 0000000000000000000000000000000000000000..f92f8f1ee2e2c459203664f56dc02d851556be1d --- /dev/null +++ b/backend/messages/zh-CN/plg_none.php @@ -0,0 +1,6 @@ + '编辑器 - 不使用编辑器', + 'XML_DESCRIPTION' => '此插件加载一个基础的文本输入框,用于输入纯文本字符。' +]; diff --git a/backend/messages/zh-CN/plg_tinymce.php b/backend/messages/zh-CN/plg_tinymce.php new file mode 100755 index 0000000000000000000000000000000000000000..b6cdb98a2cb70ab8d9f743aa78319d24f6c45d8d --- /dev/null +++ b/backend/messages/zh-CN/plg_tinymce.php @@ -0,0 +1,13 @@ + '编辑器 - TinyMCE 编辑器', + 'XML_DESCRIPTION' => 'TinyMCE 是跨平台的基于 JavaScript 所见即所得 HTML 编辑器。', + 'FIELD_LABEL_ADVANCED_PARAMS' => '高级选项', + 'FIELD_NUMBER_OF_SETS_LABEL' => '编辑器面板数量', + 'FIELD_NUMBER_OF_SETS_DESC' => '编辑器面板的创建数量;最小是 3。', + 'FIELD_HEIGHT_LABEL' => 'HTML 源代码编辑窗口高度', + 'FIELD_HEIGHT_DESC' => 'HTML 源代码编辑窗口高度;此选项仅在高级模式和扩展模式下生效', + 'FIELD_WIDTH_LABEL' => 'HTML 源代码编辑窗口宽度', + 'FIELD_WIDTH_DESC' => 'HTML 源代码编辑窗口宽度;此选项仅在高级模式和扩展模式下生效' +]; diff --git a/backend/messages/zh-CN/rbac-admin.php b/backend/messages/zh-CN/rbac-admin.php new file mode 100755 index 0000000000000000000000000000000000000000..57b226ec1819d4cbd1d4f455f82f3bc335943239 --- /dev/null +++ b/backend/messages/zh-CN/rbac-admin.php @@ -0,0 +1,131 @@ + '权限管理', + 'USERS_VIEW_DEFAULT_TITLE' => '会员管理', + 'USERS_VIEW_DEFAULT_DESC' => '显示会员列表', + 'MODULE_ADMIN' => 'Admin', + 'USERS' => '用户列表', + 'ASSIGNMENTS' => '权限分配', + 'ROLES' => '角色列表', + 'PERMISSIONS' => '权限列表', + 'ROUTES' => '路由列表', + 'RULES' => '规则列表', + 'MENUS' => '菜单管理', + 'MENU_ITEMS' => '菜单项管理', + 'USERNAME' => '登录用户名', + 'PASSWORD' => '密码', + 'EMAIL' => '邮箱', + 'STATUS' => '状态', + 'CREATED_AT' => '创建时间', + 'UPDATED_AT' => '更新时间', + 'ACTIVATE' => '激活', + 'ACTIVE' => '已激活', + 'INACTIVE' => '未激活', + 'ACTIVATE_CONFIRM' => '您确定要激活此用户?', + 'SEARCH_AVAILABLE' => '搜索可用项', + 'SEARCH_ASSIGNED' => '搜索已分配', + 'CREATE_ROLE' => '新建角色', + 'UPDATE_ROLE' => '更新角色', + 'NAME' => '名称', + 'RULE_NAME' => '规则名称', + 'DESCRIPTION' => '描述', + 'PARAMS' => '参数', + 'DATA' => '数据', + 'CREATE' => '新建', + 'UPDATE' => '更新', + 'CREATE_PERMISSION' => '创建权限', + 'ADD' => '添加', + 'NEW_ROUTE' => '输入路由', + 'ASSIGN' => '分配', + 'REMOVE' => '移除', + 'CREATE_RULE' => '新建规则', + 'UPDATE_RULE' => '更新规则', + 'CLASS_NAME' => '类名', + 'CLASS_MUST_EXTEND_RULE' =>'"{class}" 必须从 "yii\rbac\Rule" 或它的子类扩展', + 'NEW' => '新增', + 'MENU_TYPE' => '菜单类型', + 'TITLE' => '名称', + 'CLIENT' => '应用', + 'SAVE' => '保存', + 'PARENT' => '父级', + 'ROUTE' => '路由', + 'ALIAS' => '别名', + 'PARENT_NAME' => '父级名称', + 'LEVEL' => '级别', + 'LANGUAGE' => '语言', + 'ORDER' => '排序', + //'TYPE' => '类型', + 'ALL_LANGUAGES' => '全部语言', + 'PUBLISHED' => '已发布', + 'UNPUBLISHED' => '未发布', + 'TRASHED' => '回收站', + 'MODULE' => '模块', + 'SEPARATOR' => '分隔线', + 'HEADING' => '标题', + 'UNPUBLISH_MENU_ITEM' => '取消发布菜单项', + 'PUBLISH_MENU_ITEM' => '发布菜单项', + 'SEARCH' => '搜索', + 'RESET' => '重置', + 'USER_LOGIN_FORM_HEAD' => '请填写以下登录字段:', + 'REMEMBER_ME' => '记住我', + 'LOGIN' => '登录', + 'USER_RESET_PASSWORD_AND_SIGNUP' => '如果忘记密码,可以{reset}。新用户可以{signup}。', + 'USER_RESET_PASSWORD_FORM_HEAD' => '请填写你的电子邮件。将在此处发送重置密码的链接。', + 'USER_SIGNUP_FORM_HEAD' => '请填写以下字段进行注册:', + 'REQUEST_PASSWORD_RESET' => '找回密码', + 'RETYPE_PASSWORD' => '重新输入密码', + 'RESET_IT' => '重置', + 'SIGNUP' => '注册', + 'SEND' => '发送', + 'PASSWORD_VALIDATE_FAILED' => '用户名或密码错误', + 'ASSIGNMENT_VIEW_TITLE' => '分配权限', + 'CANNOT_DELETE_SELF' => '无法删除自己', + 'UPDATE_USER' => '更新用户资料', + 'SEARCH_USERNAME' => '搜索用户名', + 'TYPE_MEMBER_LABEL' => '前台会员', + 'TYPE_ADMIN_LABEL' => '后台管理员', + 'CHANGE_PASSWORD' => '修改密码', + 'SUBMIT' => '提交', + 'NEW_PASSWORD' => '新密码', + 'OLD_PASSWORD' => '原密码', + 'INCORRECT_OLD_PASSWORD' => '原密码不正确!', + 'MENU_PUBLISH_SUCCESS' => '菜单项发布成功!', + 'MENU_UNPUBLISH_SUCCESS' => '取消发布菜单项成功!', + 'MENU_PUBLISH_FAILED' => '菜单发布失败!', + 'MENU_UNPUBLISH_FAILED' => '取消发布菜单项失败!', + 'CREATE_MENU_TYPES' => '创建菜单', + 'UPDATE_MENU_TYPES' => '更新菜单', + 'MENU_TYPES_SEARCH_TIP' => '搜索菜单名称和菜单类型', + 'MENU_SEARCH_TIP' => '搜索菜单项名称', + 'MENU_ITEM_TYPES' => '菜单项类型', + 'MENU_ALIAS_PLACEHOLDER' => '根据名称自动生成', + 'MENU_ITEM_SET' => '菜单项设置', + 'BROWSER_NAV' => '目标窗口', + 'BROWSER_TARGET_NEW' => '在新窗口打开', + 'BROWSER_TARGET_PARENT' => '在当前窗口打开', + 'MENUS_TYPE_SYSTEM' => '菜单链接', + 'MENUS_TYPE_EXTERNAL_URL' => '外部链接', + 'MENUS_TYPE_EXTERNAL_URL_DESC' => '链接到外部网站或者网站内部页面的链接', + 'MENUS_TYPE_ALIAS' => '菜单项镜像', + 'MENUS_TYPE_ALIAS_DESC' => '创建其它菜单项的镜像菜单项', + 'MENUS_TYPE_SEPARATOR' => '分区文字(字符)', + 'MENUS_TYPE_SEPARATOR_DESC' => '用文字(字符)将菜单项分成不同的区域', + 'MENUS_TYPE_HEADING' => '菜单项分区标题', + 'MENUS_TYPE_HEADING_DESC' => '单内的次级标题,用于将菜单项分区', + 'NOTE' => '说明', + 'SELECT_MENU_TYPE' => '- 选择菜单 -', + 'MENUS_ITEM_ROOT' => '根菜单项', + 'LANGUAGE_CATEGORY' => '语言分类', + 'LINK_URL' => '链接地址', + 'ALIAS_REDIRECT' => '重定向', + 'ALIAS_MENU' => '目标菜单项', + 'CHANGE_MENUITEM' => '选择或更改菜单项', + 'PUBLISHED_MENU_ITEM' => '菜单项已发布', + 'UNPUBLISHED_MENU_ITEM' => '菜单项未发布', + 'SELECT_ONE_MENU_ITEM' => '选择一个菜单项', + 'DEFAULT_HOME' => '默认首页', + 'SET_DEFAULT' => '设为默认', + 'DEFAULT' => '默认', + 'DEFAULT_HOME_SAVED' => '默认首页设置成功!' +]; diff --git a/backend/messages/zh-CN/site.php b/backend/messages/zh-CN/site.php new file mode 100755 index 0000000000000000000000000000000000000000..620cf97ce37a5d8026c6f23608cd1c8c2eb85984 --- /dev/null +++ b/backend/messages/zh-CN/site.php @@ -0,0 +1,53 @@ + '系统管理', + 'CONTROL_PANEL' => '控制面板', + 'GLOBAL_CONFIGURATION' => '全局配置', + 'SYSTEM_INFORMATION' => '系统信息', + 'USERS' => '会员管理', + 'USER_MANAGER' => '会员管理', + 'USERS_ADD_USER' => '添加新会员', + 'MODULES' => '模块设置', + 'EDIT_PROFILE' => '编辑我的资料', + 'LOGOUT' => '退出', + 'SETTING' => '参数', + 'VALUE' => '当前设置', + 'RELEVANT_PHP_SETTINGS' => '相关 PHP 参数', + 'PHP_INFORMATION' => 'PHP 信息', + 'PHP_BUILT_ON' => '服务器操作系统(PHP Built On)', + 'DATABASE_TYPE' => '数据库类型', + 'DATABASE_VERSION' => '数据库版本', + 'DATABASE_CHARSET' => '数据库字符集', + 'PHP_VERSION' => 'PHP 版本', + 'WEB_SERVER' => 'Web 服务器', + 'WEBSERVER_PHP_INTERFACE' => 'Web 服务器 和 PHP 接口', + 'APPLICATION_VERSION' => '应用版本', + 'FRAMEWORK' => '框架', + 'USER_AGENT' => '浏览器版本(User Agent)', + 'SAFE_MODE' => '安全模式(Safe Mode)', + 'DISPLAY_ERRORS' => '错误显示(Display Errors)', + 'SHORT_OPEN_TAGS' => '短标签(Short Open Tags)', + 'FILE_UPLOADS' => '文件上传', + 'MAGIC_QUOTES' => '魔术引号(Magic Quotes)', + 'REGISTER_GLOBALS' => 'Register Globals 设置', + 'OUTPUT_BUFFERING' => '输出缓冲(Output Buffering)', + 'OPEN_BASEDIR' => 'Open basedir 设置', + 'SESSION_SAVE_PATH' => '会话保存目录(Session Save Path)', + 'SESSION_AUTO_START' => '会话自启动(Session Auto Start)', + 'DISABLED_FUNCTIONS' => '禁用函数(Disabled Functions)', + 'XML_ENABLED' => '启用 XML', + 'ZLIB_ENABLED' => '启用 Zlib', + 'NATIVE_ZIP_ENABLED' => '启用 Native ZIP', + 'MULTIBYTE_STRING_MBSTRING_ENABLED' => '启用 Mbstring', + 'ICONV_AVAILABLE' => '是否已安装 Iconv 函数库', + 'MAXIMUM_INPUT_VARIABLES' => '最大输入变量', + 'LAST_VISIT_DATE' => '上次访问时间', + 'ADMIN_NAME' => '会员名', + 'SUBMENU_CONTENT' => '内容管理', + 'SUBMENU_ADD_ARTICLE' => '添加文章', + 'SUBMENU_ARTICLES' => '文章管理', + 'SUBMENU_ARTICLES_CATEGORIES' => '文章分类管理', + 'SUBMENU_MEDIA' => '多媒体文件管理', + 'FONT_ICON' => '字体图标' +]; \ No newline at end of file diff --git a/backend/messages/zh-CN/wid_alert.php b/backend/messages/zh-CN/wid_alert.php new file mode 100755 index 0000000000000000000000000000000000000000..a18317d74e39e0ef26b2dab9546522ddee8d965e --- /dev/null +++ b/backend/messages/zh-CN/wid_alert.php @@ -0,0 +1,7 @@ + '信息提示框', + 'WIDGET_ALERT_XML_DESCRIPTION' => '用于显示各种不同类型的信息', + 'ADVANCED' => '高级选项' +]; diff --git a/backend/messages/zh-CN/wid_latest_actions.php b/backend/messages/zh-CN/wid_latest_actions.php new file mode 100755 index 0000000000000000000000000000000000000000..b4ad48d6308e6a1195d3c194dab7398293896120 --- /dev/null +++ b/backend/messages/zh-CN/wid_latest_actions.php @@ -0,0 +1,11 @@ + '操作日志 - 最新操作', + 'WIDGET_LATEST_ACTIONS_XML_DESCRIPTION' => '用于显示最新操作行为列表', + 'ADVANCED' => '高级选项', + 'FIELD_COUNT_LABEL' => '数量', + 'FIELD_COUNT_DESC' => '显示最新操作行为数量', + 'FIELD_BOOTSTRAP_SIZE_LABEL' => '模块显示宽度
(Bootstrap 列数)', + 'FIELD_BOOTSTRAP_SIZE_DESC' => '此选项指定模块使用多少 bootstrap 列,这个列数决定了模块的宽度' +]; diff --git a/backend/metadata/site_index.xml b/backend/metadata/site_index.xml new file mode 100755 index 0000000000000000000000000000000000000000..080f15b02955113ac145b6d57b145fcd0cca1b9e --- /dev/null +++ b/backend/metadata/site_index.xml @@ -0,0 +1,8 @@ + + + + SITE_VIEW_DEFAULT_DESC + site/index + module + + \ No newline at end of file diff --git a/backend/models/.gitkeep b/backend/models/.gitkeep new file mode 100755 index 0000000000000000000000000000000000000000..72e8ffc0db8aad71a934dd11e5968bd5109e54b4 --- /dev/null +++ b/backend/models/.gitkeep @@ -0,0 +1 @@ +* diff --git a/backend/models/Admin.php b/backend/models/Admin.php new file mode 100755 index 0000000000000000000000000000000000000000..3367d215f12b23442de57c7c6d05525036c39036 --- /dev/null +++ b/backend/models/Admin.php @@ -0,0 +1,61 @@ + 200], + [['uid'], 'unique'], + [['uid'], 'exist', 'skipOnError' => true, 'targetClass' => User::class, 'targetAttribute' => ['uid' => 'id']], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'uid' => Yii::t('site', 'USER_ID'), + 'name' => Yii::t('site', 'ADMIN_NAME'), + 'lastvisitDate' => Yii::t('site', 'LAST_VISIT_DATE') + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getU() + { + return $this->hasOne(User::class, ['id' => 'uid']); + } +} diff --git a/backend/models/Clients.php b/backend/models/Clients.php new file mode 100755 index 0000000000000000000000000000000000000000..a7ea6d899397ddd16b05937bde4b516450ab02fe --- /dev/null +++ b/backend/models/Clients.php @@ -0,0 +1,86 @@ + 50], + [['url'], 'url'], + [['url'], 'string', 'max' => 1024], + [['path'], 'string', 'max' => 200], + [['description'], 'string', 'max' => 255], + [['ordering', 'status'], 'default', 'value' => 0], + [['name'], 'unique'] + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('clients', 'ID'), + 'name' => Yii::t('clients', 'NAME'), + 'url' => Yii::t('clients', 'URL'), + 'path' => Yii::t('clients', 'PATH'), + 'description' => Yii::t('clients', 'DESCRIPTION'), + 'ordering' => Yii::t('common', 'ORDER'), + 'status' => Yii::t('common', 'STATUS'), + ]; + } + + /** + * 应用列表 + * @param array $firstItem 第一项数组,如:[''=>'请选择应用'] + * @param string $key 应用键值 + * @param string $value 应用显示的值 + * @return array 返回所有有效的应用数组 + */ + public static function getList($firstItem = [], $key = 'id', $value = 'name') + { + $clients = static::find()->where(['status' => 1])->orderBy('ordering')->all(); + if (empty($firstItem)) { + $list = []; + } else { + foreach ($firstItem as $k => $val) { + $list[$k] = $val; + } + } + + foreach ($clients as $client) { + $list[$client->$key] = $client->$value; + } + return $list; + } + +} diff --git a/backend/models/Extensions.php b/backend/models/Extensions.php new file mode 100755 index 0000000000000000000000000000000000000000..c90da289f374d84bbbcad94219139953c39c3b6d --- /dev/null +++ b/backend/models/Extensions.php @@ -0,0 +1,92 @@ + ''], + [['name', 'element', 'folder'], 'string', 'max' => 100], + [['type'], 'string', 'max' => 20] + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('extensions', 'ID'), + 'package_id' => Yii::t('extensions', 'PACKAGE_ID'), + 'name' => Yii::t('extensions', 'NAME'), + 'type' => Yii::t('extensions', 'TYPE'), + 'element' => Yii::t('extensions', 'ELEMENT'), + 'folder' => Yii::t('extensions', 'FOLDER'), + 'client_id' => Yii::t('extensions', 'CLIENT'), + 'enabled' => Yii::t('extensions', 'ENABLED'), + 'protected' => Yii::t('extensions', 'PROTECTED'), + 'manifest_cache' => Yii::t('extensions', 'MANIFEST_CACHE'), + 'params' => Yii::t('extensions', 'PARAMS'), + 'ordering' => Yii::t('extensions', 'ORDER'), + 'status' => Yii::t('extensions', 'STATUS'), + 'title_native' => Yii::t('mod_langs', 'NATIVE_TITLE'), + 'code' => Yii::t('mod_langs', 'LANGUAGE_TAG') + ]; + } + + /** + * {@inheritdoc} + * @return ExtensionsQuery the active query used by this AR class. + */ + public static function find() + { + return new ExtensionsQuery(get_called_class()); + } + + public function getClients() + { + return $this->hasOne(Clients::class, ['id' => 'client_id']); + } + +} diff --git a/backend/models/ExtensionsQuery.php b/backend/models/ExtensionsQuery.php new file mode 100755 index 0000000000000000000000000000000000000000..66aa49c28608b7d90f935a2ea134a8d9574f9a31 --- /dev/null +++ b/backend/models/ExtensionsQuery.php @@ -0,0 +1,34 @@ +andWhere('[[status]]=1'); + }*/ + + /** + * {@inheritdoc} + * @return Extensions[]|array + */ + public function all($db = null) + { + return parent::all($db); + } + + /** + * {@inheritdoc} + * @return Extensions|array|null + */ + public function one($db = null) + { + return parent::one($db); + } +} diff --git a/backend/models/Languages.php b/backend/models/Languages.php new file mode 100755 index 0000000000000000000000000000000000000000..81e0863a6edfdd19da60f09aece9198b11d1d198 --- /dev/null +++ b/backend/models/Languages.php @@ -0,0 +1,82 @@ + 7], + [['title', 'title_native', 'sef', 'image'], 'string', 'max' => 50], + [['title', 'title_native', 'sitename', 'description', 'metakey', 'metadesc'], 'trim'], + [['description'], 'string', 'max' => 512], + [['sitename'], 'string', 'max' => 1024], + [['code', 'sef'], 'unique'], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('languages', 'ID'), + 'code' => Yii::t('languages', 'LANGUAGE_TAG'), + 'title' => Yii::t('languages', 'TITLE'), + 'title_native' => Yii::t('languages', 'TITLE_NATIVE'), + 'sef' => Yii::t('languages', 'SEF'), + 'image' => Yii::t('languages', 'IMAGE'), + 'description' => Yii::t('languages', 'DESCRIPTION'), + 'metakey' => Yii::t('languages', 'METAKEY'), + 'metadesc' => Yii::t('languages', 'METADESC'), + 'sitename' => Yii::t('languages', 'SITENAME'), + 'published' => Yii::t('languages', 'PUBLISHED'), + 'ordering' => Yii::t('languages', 'ORDER'), + ]; + } + + /** + * {@inheritdoc} + * @return LanguagesQuery the active query used by this AR class. + */ + public static function find() + { + return new LanguagesQuery(get_called_class()); + } + +} diff --git a/backend/models/LanguagesQuery.php b/backend/models/LanguagesQuery.php new file mode 100755 index 0000000000000000000000000000000000000000..da29856c59922e8e78f91e87bfa0d68a64d38bd4 --- /dev/null +++ b/backend/models/LanguagesQuery.php @@ -0,0 +1,34 @@ +andWhere('[[status]]=1'); + }*/ + + /** + * {@inheritdoc} + * @return Languages[]|array + */ + public function all($db = null) + { + return parent::all($db); + } + + /** + * {@inheritdoc} + * @return Languages|array|null + */ + public function one($db = null) + { + return parent::one($db); + } +} diff --git a/backend/models/LanguagesSearch.php b/backend/models/LanguagesSearch.php new file mode 100755 index 0000000000000000000000000000000000000000..22285d32ffb55196ddd8a9afc0211f63c942f166 --- /dev/null +++ b/backend/models/LanguagesSearch.php @@ -0,0 +1,75 @@ + $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + // grid filtering conditions + $query->andFilterWhere([ + 'id' => $this->id, + 'published' => $this->published, + 'ordering' => $this->ordering, + ]); + + $query->andFilterWhere(['like', 'code', $this->code]) + ->andFilterWhere(['like', 'title', $this->title]) + ->andFilterWhere(['like', 'title_native', $this->title_native]) + ->andFilterWhere(['like', 'sef', $this->sef]) + ->andFilterWhere(['like', 'image', $this->image]) + ->andFilterWhere(['like', 'sitename', $this->sitename]); + + return $dataProvider; + } +} diff --git a/backend/models/TestForm.php b/backend/models/TestForm.php new file mode 100755 index 0000000000000000000000000000000000000000..4d6c5e24473fa7e2a0e24ee21b60d93edebde2b3 --- /dev/null +++ b/backend/models/TestForm.php @@ -0,0 +1,29 @@ + 10], + [['author', 'date'], 'safe'] + ]; + } +} diff --git a/backend/models/UploadForm.php b/backend/models/UploadForm.php new file mode 100755 index 0000000000000000000000000000000000000000..3baf8704bd6e65f2b0f9992df174151e38211ac6 --- /dev/null +++ b/backend/models/UploadForm.php @@ -0,0 +1,56 @@ + false, 'extensions' => $this->exts, 'maxSize' => $this->maxSize] + ]; + } + + /** + * 上传文件 + * @param string $path 上传路径 + * @param bool $cover 是否允许覆盖 + * @return bool 上传成功返回 true;否则返回 false + */ + public function upload($path = '', $cover = false) + { + if ($this->validate()) { + $this->path = Yii::getAlias(rtrim($path ?: $this->path, '/') . '/'); + + if (!is_dir($this->path)) { + $this->addError('path', Yii::t('common', 'PATH_INVALID', $this->path)); + return false; + } + $filePath = $this->path . $this->file->baseName . '.' . $this->file->extension; + if (is_file($filePath) && !$cover) { + $this->addError('file', Yii::t('common', 'FILE_ALREADY_EXISTS')); + return false; + } else { + $this->file->saveAs($filePath); + return true; + } + } else { + return false; + } + } + +} diff --git a/backend/models/searchs/Extensions.php b/backend/models/searchs/Extensions.php new file mode 100755 index 0000000000000000000000000000000000000000..6e4dd278ff5e2b22ab3f187b76fa67937b509a0d --- /dev/null +++ b/backend/models/searchs/Extensions.php @@ -0,0 +1,84 @@ +select(['*','version' => 'JSON_EXTRACT(manifest_cache, "$.version")']); + + if (!empty($condition)) { + $query->where($condition); + } + + // add conditions that should always apply here + + $dataProvider = new ActiveDataProvider([ + 'query' => $query, + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + // grid filtering conditions + $query->andFilterWhere([ + 'id' => $this->id, + 'package_id' => $this->package_id, + 'client_id' => $this->client_id, + 'enabled' => $this->enabled, + 'protected' => $this->protected, + 'ordering' => $this->ordering, + 'status' => $this->status, + ]); + + $query->andFilterWhere(['like', 'name', $this->name]) + ->andFilterWhere(['like', 'type', $this->type]) + ->andFilterWhere(['like', 'element', $this->element]) + ->andFilterWhere(['like', 'folder', $this->folder]) + ->andFilterWhere(['like', 'manifest_cache', $this->manifest_cache]) + ->andFilterWhere(['like', 'params', $this->params]); + + return $dataProvider; + } +} diff --git a/backend/modules/actionlogs/Module.php b/backend/modules/actionlogs/Module.php new file mode 100755 index 0000000000000000000000000000000000000000..31ec5d4601c8c6d07ae889954eb12c9dfdd1beb0 --- /dev/null +++ b/backend/modules/actionlogs/Module.php @@ -0,0 +1,20 @@ +setViewPath('@app'.Yii::$app->view->theme->baseUrl.'/mod_' . $this->id); + } +} diff --git a/backend/modules/actionlogs/actionlogs.xml b/backend/modules/actionlogs/actionlogs.xml new file mode 100755 index 0000000000000000000000000000000000000000..f0ac55b493ae0a15fdda5b837187a4241465cec2 --- /dev/null +++ b/backend/modules/actionlogs/actionlogs.xml @@ -0,0 +1,39 @@ + + + ACTIONS_LOGS + actionlogs + 1.0.0 + ACTIONS_LOGS_XML_DESCRIPTION + FireLoong + fireloong@foxmail.com + www.fireloong.com + 2019 - 08 + 版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com. + GNU General Public License version 2 or later; see LICENSE.txt + + + actionlogs + views + actionlogs.xml + + + mod_actionlogs.php + + + backend\modules\actionlogs\Module + + + + + + + + + + + + +
+
+
+
diff --git a/backend/modules/actionlogs/controllers/DefaultController.php b/backend/modules/actionlogs/controllers/DefaultController.php new file mode 100755 index 0000000000000000000000000000000000000000..b2757b6fffc1d81ccf49e115db844a3272115eb8 --- /dev/null +++ b/backend/modules/actionlogs/controllers/DefaultController.php @@ -0,0 +1,116 @@ +request; + if ($request->isPost) { + $session = Yii::$app->session; + if ($request->post('purge')) { + ActionLogs::deleteAll(); + $this->trigger(self::EVENT_AFTER_LOG_PURGE); + } elseif ($request->post('exportSelectedLogs')) { + $actionLogs = ActionLogs::findAll($request->post('selection')); + try { + $this->exportLogs($actionLogs); + } catch (\yii\base\InvalidConfigException $e) { + $session->addFlash('error', $e->getMessage()); + } + } elseif ($request->post('exportAllLogs')) { + $actionLogs = ActionLogs::find()->all(); + try { + $this->exportLogs($actionLogs); + } catch (\yii\base\InvalidConfigException $e) { + $session->addFlash('error', $e->getMessage()); + } + } else { + $actionLogs = ActionLogs::findAll($request->post('selection')); + $result = false; + foreach ($actionLogs as $actionLog) { + if ($actionLog->delete()) { + $result = true; + } else { + $session->addFlash('error', implode('
', $actionLog->getErrors())); + } + } + if ($result) { + $this->trigger(self::EVENT_AFTER_LOG_PURGE); + } + } + } + $searchModel = new ActionLogsSearch(); + $dataProvider = $searchModel->search(Yii::$app->request->getQueryParams()); + return $this->render('index', [ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider + ]); + } + + /** + * 导出会员操作日志 + * @param array $actionLogs 操作日志数据 + * @throws \yii\base\InvalidConfigException + */ + private function exportLogs($actionLogs) + { + $rows[] = ['Id', 'Message', 'Date', 'Ip']; + $formatter = Yii::$app->formatter; + foreach ($actionLogs as $actionLog) { + $message = json_decode($actionLog->message, true); + $msg = Yii::t('plg_actionlog', $actionLog->info, $message); + $rows[] = [ + 'id' => $actionLog->id, + 'message' => strip_tags($msg), + 'Date' => $formatter->asDatetime($actionLog->log_date, 'php:Y-m-d H:i:s T'), + 'ip' => $actionLog->ip_address + ]; + } + + $fileName = 'logs_' . $formatter->asDatetime(time(), 'php:Y_m_d_His_T') . '.csv'; + $csvHeaders = Yii::$app->response->setDownloadHeaders($fileName); + + $out = fopen('php://output', 'w'); + foreach ($rows as $row) { + fputcsv($out, $row); + } + $csv = stream_get_contents($out); + fclose($out); + + $this->trigger(self::EVENT_AFTER_LOG_EXPORT); + + return $csvHeaders->send(); + } +} diff --git a/backend/modules/actionlogs/models/ActionLogs.php b/backend/modules/actionlogs/models/ActionLogs.php new file mode 100755 index 0000000000000000000000000000000000000000..6127ea86da8fad279561e847cdf560802431ed32 --- /dev/null +++ b/backend/modules/actionlogs/models/ActionLogs.php @@ -0,0 +1,79 @@ + 255], + [['ip_address'], 'string', 'max' => 40], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'id' => Yii::t('mod_actionlogs', 'ID'), + 'info' => Yii::t('mod_actionlogs', 'ACTION'), + 'message' => Yii::t('mod_actionlogs', 'MESSAGE'), + 'log_date' => Yii::t('mod_actionlogs', 'DATE'), + 'uid' => Yii::t('mod_actionlogs', 'UID'), + 'item_id' => Yii::t('mod_actionlogs', 'ITEM_ID'), + 'ip_address' => Yii::t('mod_actionlogs', 'IP_ADDRESS'), + ]; + } + + /** + * 添加操作日志 + * @param string $info 操作记录 + * @param array $message 操作信息数组 + * @param int $userId 会员ID + */ + public function addLog($info, $message, $userId = null) + { + $this->setAttributes([ + 'info' => $info, + 'message' => json_encode($message), + 'uid' => $userId ?? Yii::$app->user->identity->id, + 'log_date' => time(), + 'item_id' => isset($message['id']) ? (int)$message['id'] : 0, + 'ip_address' => Yii::$app->request->getUserIP() + ]); + $this->save(); + } +} diff --git a/backend/modules/actionlogs/models/searchs/ActionLogs.php b/backend/modules/actionlogs/models/searchs/ActionLogs.php new file mode 100755 index 0000000000000000000000000000000000000000..7b99b7f93cb152cc98900a9d7fb4486356a10bf6 --- /dev/null +++ b/backend/modules/actionlogs/models/searchs/ActionLogs.php @@ -0,0 +1,68 @@ + $query, + 'sort' => [ + 'defaultOrder' => [ + 'log_date' => SORT_DESC + ] + ] + ]); + + $this->load($params); + + if (!$this->validate()) { + return $dataProvider; + } + + $query->andFilterWhere([ + 'id' => $this->id, + 'uid' => $this->uid, + 'ip_address' => $this->ip_address + ]); + + return $dataProvider; + } +} diff --git a/backend/modules/actionlogs/views/default/index.php b/backend/modules/actionlogs/views/default/index.php new file mode 100755 index 0000000000000000000000000000000000000000..0ed489c8ab6c718db7dc9530840997218f8b35d6 --- /dev/null +++ b/backend/modules/actionlogs/views/default/index.php @@ -0,0 +1,113 @@ +title = Yii::t('mod_actionlogs', 'USER_ACTIONS_LOGS'); + +$this->params['breadcrumbs'][] = $this->title; + +$selEmpty = Yii::t('mod_actionlogs', 'SELECTION_FROM_LIST'); +$confirmMsg = Yii::t('mod_actionlogs', 'DELETE_ITEMS_CONFIRM_LOGS'); +$js = <<').submit(); + }else{ + alert('$selEmpty'); + } +}); +JS; + +$this->registerJs($js); + +$delBtnText = Icon::i('fa-remove') . ' ' . Yii::t('mod_actionlogs', 'DELETE'); +$purBtnText = Icon::i('fa-remove') . ' ' . Yii::t('mod_actionlogs', 'PURGE'); +$expSelBtnText = Icon::i('fa-download') . ' ' . Yii::t('mod_actionlogs', 'EXPORT_SELECTED_AS_CSV'); +$expAllBtnText = Icon::i('fa-download') . ' ' . Yii::t('mod_actionlogs', 'EXPORT_ALL_AS_CSV'); +?> +
+

+ 'actionlogs_del', 'class' => 'btn btn-default btn-sm']) ?> + 'btn btn-default btn-sm', + 'data' => [ + 'confirm' => Yii::t('mod_actionlogs', 'DELETE_ITEMS_CONFIRM_ALL_LOGS'), + 'method' => 'post', + 'params' => [ + 'purge' => true + ] + ]]) ?> + 'actionlogs_sel', 'class' => 'btn btn-default btn-sm']) ?> + 'btn btn-default btn-sm', + 'data' => [ + 'method' => 'post', + 'params' => [ + 'exportAllLogs' => true + ] + ] + ]) ?> +

+ + + 'actionlogs_form']) . + GridView::widget([ + 'id' => 'actionlogs_list', + 'layout' => '{items}{pager}{summary}', + 'tableOptions' => ['class' => 'table table-striped table-hover'], + 'dataProvider' => $dataProvider, + 'columns' => [ + [ + 'class' => \yii\grid\CheckboxColumn::class, + 'headerOptions' => ['width' => '2%'], + ], + [ + 'attribute' => 'info', + 'format' => 'raw', + 'value' => function ($model) { + $message = json_decode($model->message, true); + return Yii::t('plg_actionlog', $model->info, $message); + } + ], + [ + 'attribute' => 'log_date', + 'headerOptions' => ['width' => '11%'], + 'format' => 'raw', + 'value' => function ($model) { + $formatter = Yii::$app->formatter; + $relativeTime = $formatter->asRelativeTime($model->log_date); + $datetime = $formatter->asDatetime($model->log_date); + return Html::tag('span', $relativeTime, ['data-toggle' => 'tooltip', 'title' => $datetime]); + } + ], + [ + 'attribute' => 'ip_address', + 'headerOptions' => ['width' => '9%'] + ], + [ + 'attribute' => 'id', + 'headerOptions' => ['width' => '4%'] + ] + ] + ]) . Html::endForm() ?> + +
\ No newline at end of file diff --git a/backend/modules/admin/.travis.yml b/backend/modules/admin/.travis.yml new file mode 100755 index 0000000000000000000000000000000000000000..f5af640c42a2a13734de7af8e58f606a6f34daee --- /dev/null +++ b/backend/modules/admin/.travis.yml @@ -0,0 +1,42 @@ +language: php + +php: + - 5.4 + - 5.5 + - 5.6 + - 7.0 +# - hhvm + +# faster builds on new travis setup not using sudo +sudo: false + +# cache vendor dirs +cache: + directories: + - $HOME/.composer/cache + +install: + - travis_retry composer self-update && composer --version + - travis_retry composer global require "fxp/composer-asset-plugin:~1.1.1" + - export PATH="$HOME/.composer/vendor/bin:$PATH" + - travis_retry composer install --dev --prefer-dist --no-interaction +# codeception + - travis_retry composer global require "codeception/codeception=2.0.*" "codeception/specify=*" "codeception/verify=*" +# setup application: + - | + cd tests + codecept build + cd .. + +before_script: + - mysql --version + + # initialize databases + - mysql -e 'CREATE DATABASE mdm_admin_test;'; + +script: + - | + cd tests/web + php -S localhost:8080 > /dev/null 2>&1 & + cd .. + codecept run \ No newline at end of file diff --git a/backend/modules/admin/AnimateAsset.php b/backend/modules/admin/AnimateAsset.php new file mode 100755 index 0000000000000000000000000000000000000000..d8e66dff7683cd070404acacb74c39486e69a07f --- /dev/null +++ b/backend/modules/admin/AnimateAsset.php @@ -0,0 +1,26 @@ + + * @since 2.5 + */ +class AnimateAsset extends AssetBundle +{ + /** + * @inheritdoc + */ + public $sourcePath = '@backend/modules/admin/assets'; + /** + * @inheritdoc + */ + public $css = [ + 'animate.css', + ]; + +} diff --git a/backend/modules/admin/AutocompleteAsset.php b/backend/modules/admin/AutocompleteAsset.php new file mode 100755 index 0000000000000000000000000000000000000000..c359adf44340d190ad3380e28e52ecd1b5c73903 --- /dev/null +++ b/backend/modules/admin/AutocompleteAsset.php @@ -0,0 +1,38 @@ + + * @since 1.0 + */ +class AutocompleteAsset extends AssetBundle +{ + /** + * @inheritdoc + */ + public $sourcePath = '@backend/modules/admin/assets'; + /** + * @inheritdoc + */ + public $css = [ + 'jquery-ui.css', + ]; + /** + * @inheritdoc + */ + public $js = [ + 'jquery-ui.js', + ]; + /** + * @inheritdoc + */ + public $depends = [ + 'yii\web\JqueryAsset', + ]; + +} diff --git a/backend/modules/admin/BaseObject.php b/backend/modules/admin/BaseObject.php new file mode 100755 index 0000000000000000000000000000000000000000..f25736e2f055e0259aee35fcad5c06ef31515a77 --- /dev/null +++ b/backend/modules/admin/BaseObject.php @@ -0,0 +1,18 @@ + + * @since 2.9 + */ +class BaseObject extends \yii\base\BaseObject +{ + //put your code here +} diff --git a/backend/modules/admin/LICENSE b/backend/modules/admin/LICENSE new file mode 100755 index 0000000000000000000000000000000000000000..6b156fe1db9c5cd21ca1c68b7025bae40d0c5764 --- /dev/null +++ b/backend/modules/admin/LICENSE @@ -0,0 +1,675 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. 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 +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. 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. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/backend/modules/admin/Module.php b/backend/modules/admin/Module.php new file mode 100755 index 0000000000000000000000000000000000000000..264a0260ed4146e92af11850cc87e80d64f70e54 --- /dev/null +++ b/backend/modules/admin/Module.php @@ -0,0 +1,247 @@ + 'left-menu', // default to null mean use application layout. + * 'controllerMap' => [ + * 'assignment' => [ + * 'class' => 'backend\modules\admin\controllers\AssignmentController', + * 'userClassName' => 'app\models\User', + * 'idField' => 'id' + * ] + * ], + * 'menus' => [ + * 'assignment' => [ + * 'label' => 'Grand Access' // change label + * ], + * 'route' => null, // disable menu + * ], + * ``` + * + * @property string $mainLayout Main layout using for module. Default to layout of parent module. + * Its used when `layout` set to 'left-menu', 'right-menu' or 'top-menu'. + * @property array $menus List available menu of module. + * It generated by module items . + * + * @author Misbahul D Munir + * @since 1.0 + */ +class Module extends \yii\base\Module +{ + + /** + * @inheritdoc + */ + public $defaultRoute = 'assignment'; + + /** + * @var array Nav bar items. + */ + public $navbar; + + /** + * @var string Main layout using for module. Default to layout of parent module. + * Its used when `layout` set to 'left-menu', 'right-menu' or 'top-menu'. + */ + //public $mainLayout = '@backend/modules/admin/views/layouts/main.php'; + + /** + * @var array + * @see [[menus]] + */ + private $_menus = []; + + /** + * @var array + * @see [[menus]] + */ + private $_coreItems = [ + 'user' => 'USERS', + 'assignment' => 'ASSIGNMENTS', + 'role' => 'ROLES', + 'permission' => 'PERMISSIONS', + 'route' => 'ROUTES', + 'rule' => 'RULES', + 'menu-types' => 'MENUS', + 'menu' => 'MENU_ITEMS', + 'default' => 'Read Me' + ]; + + /** + * @var array + * @see [[items]] + */ +// private $_normalizeMenus; + + /** + * @var string Default url for breadcrumb + */ + public $defaultUrl; + + /** + * @var string Default url label for breadcrumb + */ + public $defaultUrlLabel; + + private $_normalizeMenus; + + /** + * @inheritdoc + */ + public function init() + { + parent::init(); + $this->setViewPath('@app' . Yii::$app->view->theme->baseUrl . '/mod_' . $this->id); + +// if (!isset(Yii::$app->i18n->translations['rbac-admin'])) { +// Yii::$app->i18n->translations['rbac-admin'] = [ +// 'class' => 'yii\i18n\PhpMessageSource', +// 'sourceLanguage' => 'en', +// 'basePath' => '@backend/modules/admin/messages', +// ]; +// } + + //user did not define the Navbar? + if ($this->navbar === null && Yii::$app instanceof \yii\web\Application) { + $this->navbar = [ + ['label' => Yii::t('rbac-admin', 'HELP'), 'url' => ['default/index']], + ['label' => Yii::t('rbac-admin', 'APPLICATION'), 'url' => Yii::$app->homeUrl], + ]; + } + if (class_exists('yii\jui\JuiAsset')) { + Yii::$container->set('backend\modules\admin\AutocompleteAsset', 'yii\jui\JuiAsset'); + } + } + + /** + * Get available menu. + * @return array + */ + public function getMenus() + { + if ($this->_normalizeMenus === null) { + $mid = '/' . $this->getUniqueId() . '/'; + // resolve core menus + $this->_normalizeMenus = []; + $config = components\Configs::instance(); + $conditions = [ + 'user' => $config->db && $config->db->schema->getTableSchema($config->userTable), + 'assignment' => ($userClass = Yii::$app->getUser()->identityClass) && is_subclass_of($userClass, 'yii\db\BaseActiveRecord'), + 'menu' => $config->db && $config->db->schema->getTableSchema($config->menuTable), + ]; + foreach ($this->_coreItems as $id => $lable) { + if (!isset($conditions[$id]) || $conditions[$id]) { + $this->_normalizeMenus[$id] = ['label' => Yii::t('rbac-admin', $lable), 'url' => [$mid . $id]]; + } + } + foreach (array_keys($this->controllerMap) as $id) { + $this->_normalizeMenus[$id] = ['label' => Yii::t('rbac-admin', Inflector::humanize($id)), 'url' => [$mid . $id]]; + } + // user configure menus + foreach ($this->_menus as $id => $value) { + if (empty($value)) { + unset($this->_normalizeMenus[$id]); + continue; + } + if (is_string($value)) { + $value = ['label' => $value]; + } + $this->_normalizeMenus[$id] = isset($this->_normalizeMenus[$id]) ? array_merge($this->_normalizeMenus[$id], $value) + : $value; + if (!isset($this->_normalizeMenus[$id]['url'])) { + $this->_normalizeMenus[$id]['url'] = [$mid . $id]; + } + } + } + return $this->_normalizeMenus; + } + + /** + * add available submenu. + * @return array + */ + public function addSubmenus() + { + if (empty(Helper::getEntries())) { + $mid = '/' . $this->getUniqueId() . '/'; + + $config = components\Configs::instance(); + $conditions = [ + 'user' => $config->db && $config->db->schema->getTableSchema($config->userTable), + 'assignment' => ($userClass = Yii::$app->getUser()->identityClass) && is_subclass_of($userClass, 'yii\db\BaseActiveRecord'), + 'menu' => $config->db && $config->db->schema->getTableSchema($config->menuTable), + ]; + foreach ($this->_coreItems as $id => $lable) { + if (!isset($conditions[$id]) || $conditions[$id]) { + Helper::addEntry(Yii::t('rbac-admin', $lable), [$mid . $id], $id); + } + } + foreach (array_keys($this->controllerMap) as $id) { + Helper::addEntry(Yii::t('rbac-admin', strtoupper(Inflector::humanize($id))), [$mid . $id], $id); + } + + // user configure menus + foreach ($this->_menus as $id => $value) { + if (empty($value)) { + Helper::unEntries($id); + continue; + } + if (is_string($value)) { + $value = ['label' => $value]; + } + + $entries = Helper::getEntries($id); + + $newEntries = isset($entries) ? array_merge($entries, $value) : $value; + Helper::addEntry($newEntries['label'], $newEntries['url'] ?? null, $id); + if (!isset(Helper::getEntries($id)['url'])) { + Helper::getEntries($id)['url'] = [$mid . $id]; + } + } + } + return Helper::getEntries(); + } + + /** + * Set or add available menu. + * @param array $menus + */ + public function setMenus($menus) + { + $this->_menus = array_merge($this->_menus, $menus); + foreach ($this->_menus as $key => $value) { + Helper::addEntry($value['label'], $value['url'], $key); + } + Helper::unEntries(); + } + + /** + * @inheritdoc + */ + public function beforeAction($action) + { + if (parent::beforeAction($action)) { + /* @var $action \yii\base\Action */ + $view = $action->controller->getView(); + + $view->params['breadcrumbs'][] = [ + 'label' => ($this->defaultUrlLabel ?: Yii::t('rbac-admin', 'MODULE_ADMIN')), + 'url' => ['/' . ($this->defaultUrl ?: $this->uniqueId)], + ]; + $this->addSubmenus(); + return true; + } + return false; + } +} diff --git a/backend/modules/admin/README.md b/backend/modules/admin/README.md new file mode 100755 index 0000000000000000000000000000000000000000..d8745e62c4496dede869e4f34f58627bbd5444e0 --- /dev/null +++ b/backend/modules/admin/README.md @@ -0,0 +1,75 @@ +RBAC Manager for Yii 2 +====================== +GUI manager for RABC (Role Base Access Control) Yii2. Easy to manage authorization of user :smile:. + +[![Latest Unstable Version](https://poser.pugx.org/mdmsoft/yii2-admin/v/unstable)](https://packagist.org/packages/mdmsoft/yii2-admin) +[![Total Downloads](https://poser.pugx.org/mdmsoft/yii2-admin/downloads.png)](https://packagist.org/packages/mdmsoft/yii2-admin) +[![Daily Downloads](https://poser.pugx.org/mdmsoft/yii2-admin/d/daily)](https://packagist.org/packages/mdmsoft/yii2-admin) +[![License](https://poser.pugx.org/mdmsoft/yii2-admin/license)](https://packagist.org/packages/mdmsoft/yii2-admin) +[![Reference Status](https://www.versioneye.com/php/mdmsoft:yii2-admin/reference_badge.svg)](https://www.versioneye.com/php/mdmsoft:yii2-admin/references) +[![Build Status](https://img.shields.io/travis/mdmsoft/yii2-admin.svg)](http://travis-ci.org/mdmsoft/yii2-admin) +[![Dependency Status](https://www.versioneye.com/php/mdmsoft:yii2-admin/dev-master/badge.png)](https://www.versioneye.com/php/mdmsoft:yii2-admin/dev-master) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/mdmsoft/yii2-admin/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/mdmsoft/yii2-admin/?branch=master) +[![Code Climate](https://img.shields.io/codeclimate/github/mdmsoft/yii2-admin.svg)](https://codeclimate.com/github/mdmsoft/yii2-admin) + +Documentation +------------- +> **Important: If you install version 3.x, please see [this readme](https://github.com/mdmsoft/yii2-admin/blob/3.master/README.md#upgrade-from-2x).** + + +- [Change Log](CHANGELOG.md). +- [Authorization Guide](http://www.yiiframework.com/doc-2.0/guide-security-authorization.html). Important, read this first before you continue. +- [Basic Configuration](docs/guide/configuration.md) +- [Basic Usage](docs/guide/basic-usage.md). +- [User Management](docs/guide/user-management.md). +- [Using Menu](docs/guide/using-menu.md). +- [Api](https://mdmsoft.github.io/yii2-admin/index.html). + +Installation +------------ + +### Install With Composer + +The preferred way to install this extension is through [composer](http://getcomposer.org/download/). + +Either run + +``` +php composer.phar require mdmsoft/yii2-admin "~1.0" +or +php composer.phar require mdmsoft/yii2-admin "~2.0" +``` + +or for the dev-master + +``` +php composer.phar require mdmsoft/yii2-admin "2.x-dev" +``` + +Or, you may add + +``` +"mdmsoft/yii2-admin": "~2.0" +``` + +to the require section of your `composer.json` file and execute `php composer.phar update`. + +### Install From the Archive + +Download the latest release from here [releases](https://github.com/mdmsoft/yii2-admin/releases), then extract it to your project. +In your application config, add the path alias for this extension. + +```php +return [ + ... + 'aliases' => [ + '@mdm/admin' => 'path/to/your/extracted', + // for example: '@mdm/admin' => '@app/extensions/mdm/yii2-admin-2.0.0', + ... + ] +]; +``` + +[**More...**](https://github.com/mdmsoft/yii2-admin/blob/master/docs/guide/configuration.md) + +[screenshots](https://goo.gl/r8RizT) diff --git a/backend/modules/admin/admin.xml b/backend/modules/admin/admin.xml new file mode 100755 index 0000000000000000000000000000000000000000..e6b9d54e9c4abb8bb91994fa862f316f595499a3 --- /dev/null +++ b/backend/modules/admin/admin.xml @@ -0,0 +1,66 @@ + + + Admin + admin + 1.0.0 + RBAC Manager for Yii 2 + FireLoong + fireloong@foxmail.com + www.fireloong.com + 2019 - 09 + 版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com. + GNU General Public License v3.0; see LICENSE.txt + + + admin + views + admin.xml + + + rbac-admin.php + + + backend\modules\admin\Module + + + + + backend\modules\admin\models\User + + admin/user/login + + true + + _identity-backend + true + + + + + backend\modules\admin\components\AccessControl + + site/* + debug/* + + + + + + + + @common/config/main.php + @common/config/main-local.php + @frontend/config/main.php + @frontend/config/main-local.php + + + @common/config/main.php + @common/config/main-local.php + @backend/config/main.php + @backend/config/main-local.php + + + + + + \ No newline at end of file diff --git a/backend/modules/admin/assets/animate.css b/backend/modules/admin/assets/animate.css new file mode 100755 index 0000000000000000000000000000000000000000..8c327b4d906b0f7e68f39f6f9557a6dce80525c1 --- /dev/null +++ b/backend/modules/admin/assets/animate.css @@ -0,0 +1,21 @@ +.glyphicon-refresh-animate { + -animation: spin .7s infinite linear; + -ms-animation: spin .7s infinite linear; + -webkit-animation: spinw .7s infinite linear; + -moz-animation: spinm .7s infinite linear; +} + +@keyframes spin { + from { transform: scale(1) rotate(0deg);} + to { transform: scale(1) rotate(360deg);} +} + +@-webkit-keyframes spinw { + from { -webkit-transform: rotate(0deg);} + to { -webkit-transform: rotate(360deg);} +} + +@-moz-keyframes spinm { + from { -moz-transform: rotate(0deg);} + to { -moz-transform: rotate(360deg);} +} \ No newline at end of file diff --git a/backend/modules/admin/assets/jquery-ui.css b/backend/modules/admin/assets/jquery-ui.css new file mode 100755 index 0000000000000000000000000000000000000000..61079c8c3f9b8096a02a93e5fbe4a7bd7512b396 --- /dev/null +++ b/backend/modules/admin/assets/jquery-ui.css @@ -0,0 +1,544 @@ +/*! jQuery UI - v1.11.4 - 2015-06-03 +* http://jqueryui.com +* Includes: core.css, autocomplete.css, menu.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/ +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: none; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + position: relative; + margin: 0; + padding: 3px 1em 3px .4em; + cursor: pointer; + min-height: 0; /* support: IE7 */ + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Verdana,Arial,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #aaaaaa; + background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; + color: #222222; +} +.ui-widget-content a { + color: #222222; +} +.ui-widget-header { + border: 1px solid #aaaaaa; + background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; + color: #222222; + font-weight: bold; +} +.ui-widget-header a { + color: #222222; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #d3d3d3; + background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #555555; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #555555; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #999999; + background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited { + color: #212121; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #aaaaaa; + background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; + font-weight: normal; + color: #212121; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #212121; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fcefa1; + background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x; + color: #363636; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x; + color: #cd0a0a; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #cd0a0a; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #cd0a0a; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.ui-state-default .ui-icon { + background-image: url("images/ui-icons_888888_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} +.ui-state-active .ui-icon { + background-image: url("images/ui-icons_454545_256x240.png"); +} +.ui-state-highlight .ui-icon { + background-image: url("images/ui-icons_2e83ff_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_cd0a0a_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + margin: -8px 0 0 -8px; + padding: 8px; + background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ + border-radius: 8px; +} diff --git a/backend/modules/admin/assets/jquery-ui.js b/backend/modules/admin/assets/jquery-ui.js new file mode 100755 index 0000000000000000000000000000000000000000..15985212fd6f70e4aede14fc5df33d922a67064b --- /dev/null +++ b/backend/modules/admin/assets/jquery-ui.js @@ -0,0 +1,2610 @@ +/*! jQuery UI - v1.11.4 - 2015-05-31 +* http://jqueryui.com +* Includes: core.js, widget.js, position.js, autocomplete.js, menu.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Core 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/ui-core/ + */ + + +// $.ui might exist from components with no dependencies, e.g., $.ui.position +$.ui = $.ui || {}; + +$.extend( $.ui, { + version: "1.11.4", + + keyCode: { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 + } +}); + +// plugins +$.fn.extend({ + scrollParent: function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); + }).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; + }, + + uniqueId: (function() { + var uuid = 0; + + return function() { + return this.each(function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + }); + }; + })(), + + removeUniqueId: function() { + return this.each(function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + }); + } +}); + +// selectors +function focusable( element, isTabIndexNotNaN ) { + var map, mapName, img, + nodeName = element.nodeName.toLowerCase(); + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; + return !!img && visible( img ); + } + return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? + !element.disabled : + "a" === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN) && + // the element and all of its ancestors must be visible + visible( element ); +} + +function visible( element ) { + return $.expr.filters.visible( element ) && + !$( element ).parents().addBack().filter(function() { + return $.css( this, "visibility" ) === "hidden"; + }).length; +} + +$.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo(function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + }) : + // support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + isTabIndexNaN = isNaN( tabIndex ); + return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); + } +}); + +// support: jQuery <1.8 +if ( !$( "" ).outerWidth( 1 ).jquery ) { + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; + }); +} + +// support: jQuery <1.8 +if ( !$.fn.addBack ) { + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) +if ( $( "" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { + $.fn.removeData = (function( removeData ) { + return function( key ) { + if ( arguments.length ) { + return removeData.call( this, $.camelCase( key ) ); + } else { + return removeData.call( this ); + } + }; + })( $.fn.removeData ); +} + +// deprecated +$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +$.fn.extend({ + focus: (function( orig ) { + return function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + orig.apply( this, arguments ); + }; + })( $.fn.focus ), + + disableSelection: (function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.bind( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }; + })(), + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
+ value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + } +}); + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +$.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + +/*! + * jQuery UI Position 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +(function() { + +$.ui = $.ui || {}; + +var cachedScrollbarWidth, supportsOffsetFractions, + max = Math.max, + abs = Math.abs, + round = Math.round, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function getDimensions( elem ) { + var raw = elem[0]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( $.isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" ), + innerDiv = div.children()[0]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[0].clientWidth; + } + + div.remove(); + + return (cachedScrollbarWidth = w1 - w2); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[0] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: withinElement.offset() || { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + + // support: jQuery 1.6.x + // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows + width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), + height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[0].preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + // clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each(function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + // if the browser doesn't support fractions, then round for consistent results + if ( !supportsOffsetFractions ) { + position.left = round( position.left ); + position.top = round( position.top ); + } + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + }); + } + }); + + if ( options.using ) { + // adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // element is wider than within + if ( data.collisionWidth > outerWidth ) { + // element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; + position.left += overLeft - newOverRight; + // element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + // element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + // too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + // too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + // adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // element is taller than within + if ( data.collisionHeight > outerHeight ) { + // element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; + position.top += overTop - newOverBottom; + // element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + // element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + // too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + // too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + // adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +// fraction support test +(function() { + var testElement, testElementParent, testElementStyle, offsetLeft, i, + body = document.getElementsByTagName( "body" )[ 0 ], + div = document.createElement( "div" ); + + //Create a "fake body" for testing based on method used in jQuery.support + testElement = document.createElement( body ? "div" : "body" ); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if ( body ) { + $.extend( testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for ( i in testElementStyle ) { + testElement.style[ i ] = testElementStyle[ i ]; + } + testElement.appendChild( div ); + testElementParent = body || document.documentElement; + testElementParent.insertBefore( testElement, testElementParent.firstChild ); + + div.style.cssText = "position: absolute; left: 10.7432222px;"; + + offsetLeft = $( div ).offset().left; + supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; + + testElement.innerHTML = ""; + testElementParent.removeChild( testElement ); +})(); + +})(); + +var position = $.ui.position; + + +/*! + * jQuery UI Menu 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/menu/ + */ + + +var menu = $.widget( "ui.menu", { + version: "1.11.4", + defaultElement: "
+ + + + + +
+ + +
+ + +
+ Copyright © name) ?> + All rights reserved. +
+ Html::a(Yii::t('yii', 'Yii Framework'), 'http://www.yiiframework.com/') + ]) ?> + +
+
+ + +endBody() ?> + + +endPage() ?> + diff --git a/backend/themes/adminlte/media/build/config/postcss.config.js b/backend/themes/adminlte/media/build/config/postcss.config.js new file mode 100755 index 0000000000000000000000000000000000000000..157291ffd2e2a77e2ff31f64b547cb5d83b2c95c --- /dev/null +++ b/backend/themes/adminlte/media/build/config/postcss.config.js @@ -0,0 +1,14 @@ +'use strict' + +module.exports = (ctx) => ({ + map: ctx.file.dirname.includes('examples') ? false : { + inline: false, + annotation: true, + sourcesContent: true + }, + plugins: { + autoprefixer: { + cascade: false + } + } +}) diff --git a/backend/themes/adminlte/media/build/config/rollup.config.js b/backend/themes/adminlte/media/build/config/rollup.config.js new file mode 100755 index 0000000000000000000000000000000000000000..1f08394bcb3598c66174de16bff720773f83c219 --- /dev/null +++ b/backend/themes/adminlte/media/build/config/rollup.config.js @@ -0,0 +1,29 @@ +import babel from 'rollup-plugin-babel' + +const pkg = require('../../package') +const year = new Date().getFullYear() + +const globals = { + jquery: 'jQuery' +} + +export default { + input : 'build/js/AdminLTE.js', + output : { + banner: `/*! + * AdminLTE v${pkg.version} (${pkg.homepage}) + * Copyright 2014-${year} ${pkg.author} + * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) + */`, + file : 'dist/js/adminlte.js', + format: 'umd', + globals, + name : 'adminlte' + }, + plugins: [ + babel({ + exclude: 'node_modules/**', + externalHelpers: true + }) + ] +} diff --git a/backend/themes/adminlte/media/build/js/.jscsrc b/backend/themes/adminlte/media/build/js/.jscsrc new file mode 100755 index 0000000000000000000000000000000000000000..a2ec95bb7003179006e5b5a4848b922e8d5653a6 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/.jscsrc @@ -0,0 +1,44 @@ +{ + "esnext": true, + "verbose": true, + "disallowEmptyBlocks": true, + "disallowKeywords": ["with"], + "disallowMixedSpacesAndTabs": true, + "disallowMultipleLineStrings": true, + "disallowMultipleVarDecl": true, + "disallowQuotedKeysInObjects": "allButReserved", + "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], + "disallowSpaceBeforeBinaryOperators": [","], + "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], + "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, + "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, + "disallowSpacesInsideArrayBrackets": true, + "disallowSpacesInsideParentheses": true, + "disallowTrailingComma": true, + "disallowTrailingWhitespace": true, + "requireCamelCaseOrUpperCaseIdentifiers": true, + "requireCapitalizedConstructors": true, + "requireCommaBeforeLineBreak": true, + "requireDollarBeforejQueryAssignment": true, + "requireDotNotation": true, + "requireLineFeedAtFileEnd": true, + "requirePaddingNewLinesAfterUseStrict": true, + "requirePaddingNewLinesBeforeExport": true, + "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], + "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], + "requireSpaceAfterLineComment": true, + "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", "<", ">=", "<="], + "requireSpaceBetweenArguments": true, + "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningCurlyBrace": true, "beforeOpeningRoundBrace": true, "allExcept": ["shorthand"] }, + "requireSpacesInConditionalExpression": true, + "requireSpacesInForStatement": true, + "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInFunctionExpression": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, + "requireSpacesInsideObjectBrackets": "allButNested", + "validateAlignedFunctionParameters": true, + "validateIndentation": 2, + "validateLineBreaks": "LF", + "validateNewlineAfterArrayElements": true, + "validateQuoteMarks": "'" +} diff --git a/backend/themes/adminlte/media/build/js/AdminLTE.js b/backend/themes/adminlte/media/build/js/AdminLTE.js new file mode 100755 index 0000000000000000000000000000000000000000..3658c13519a5c7ea9a1e91ac0a9c128f350a7cff --- /dev/null +++ b/backend/themes/adminlte/media/build/js/AdminLTE.js @@ -0,0 +1,23 @@ +import ControlSidebar from './ControlSidebar' +import Layout from './Layout' +import PushMenu from './PushMenu' +import Treeview from './Treeview' +import DirectChat from './DirectChat' +import TodoList from './TodoList' +import CardWidget from './CardWidget' +import CardRefresh from './CardRefresh' +import Dropdown from './Dropdown' +import Toasts from './Toasts' + +export { + ControlSidebar, + Layout, + PushMenu, + Treeview, + DirectChat, + TodoList, + CardWidget, + CardRefresh, + Dropdown, + Toasts +} diff --git a/backend/themes/adminlte/media/build/js/CardRefresh.js b/backend/themes/adminlte/media/build/js/CardRefresh.js new file mode 100755 index 0000000000000000000000000000000000000000..fb272235561a7b4623f4e822e81712694e336726 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/CardRefresh.js @@ -0,0 +1,164 @@ +/** + * -------------------------------------------- + * AdminLTE CardRefresh.js + * License MIT + * -------------------------------------------- + */ + +const CardRefresh = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'CardRefresh' + const DATA_KEY = 'lte.cardrefresh' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + LOADED: `loaded${EVENT_KEY}`, + OVERLAY_ADDED: `overlay.added${EVENT_KEY}`, + OVERLAY_REMOVED: `overlay.removed${EVENT_KEY}`, + } + + const ClassName = { + CARD: 'card', + } + + const Selector = { + CARD: `.${ClassName.CARD}`, + DATA_REFRESH: '[data-card-widget="card-refresh"]', + } + + const Default = { + source: '', + sourceSelector: '', + params: {}, + trigger: Selector.DATA_REFRESH, + content: '.card-body', + loadInContent: true, + loadOnInit: true, + responseType: '', + overlayTemplate: '
', + onLoadStart: function () { + }, + onLoadDone: function (response) { + return response; + } + } + + class CardRefresh { + constructor(element, settings) { + this._element = element + this._parent = element.parents(Selector.CARD).first() + this._settings = $.extend({}, Default, settings) + this._overlay = $(this._settings.overlayTemplate) + + if (element.hasClass(ClassName.CARD)) { + this._parent = element + } + + if (this._settings.source === '') { + throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.'); + } + + this._init(); + + if (this._settings.loadOnInit) { + this.load(); + } + } + + load() { + this._addOverlay() + this._settings.onLoadStart.call($(this)) + + $.get(this._settings.source, this._settings.params, function (response) { + if (this._settings.loadInContent) { + if (this._settings.sourceSelector != '') { + response = $(response).find(this._settings.sourceSelector).html() + } + + this._parent.find(this._settings.content).html(response) + } + + this._settings.onLoadDone.call($(this), response) + this._removeOverlay(); + }.bind(this), this._settings.responseType !== '' && this._settings.responseType) + + const loadedEvent = $.Event(Event.LOADED) + $(this._element).trigger(loadedEvent) + } + + _addOverlay() { + this._parent.append(this._overlay) + + const overlayAddedEvent = $.Event(Event.OVERLAY_ADDED) + $(this._element).trigger(overlayAddedEvent) + }; + + _removeOverlay() { + this._parent.find(this._overlay).remove() + + const overlayRemovedEvent = $.Event(Event.OVERLAY_REMOVED) + $(this._element).trigger(overlayRemovedEvent) + }; + + + // Private + + _init(card) { + $(this).find(this._settings.trigger).on('click', () => { + this.load() + }) + } + + // Static + + static _jQueryInterface(config) { + let data = $(this).data(DATA_KEY) + const _options = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new CardRefresh($(this), _options) + $(this).data(DATA_KEY, typeof config === 'string' ? data: config) + } + + if (typeof config === 'string' && config.match(/load/)) { + data[config]() + } else if (typeof config === 'object') { + data._init($(this)) + } + } + } + + /** + * Data API + * ==================================================== + */ + + $(document).on('click', Selector.DATA_REFRESH, function (event) { + if (event) { + event.preventDefault() + } + + CardRefresh._jQueryInterface.call($(this), 'load') + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = CardRefresh._jQueryInterface + $.fn[NAME].Constructor = CardRefresh + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return CardRefresh._jQueryInterface + } + + return CardRefresh +})(jQuery) + +export default CardRefresh diff --git a/backend/themes/adminlte/media/build/js/CardWidget.js b/backend/themes/adminlte/media/build/js/CardWidget.js new file mode 100755 index 0000000000000000000000000000000000000000..f24a4246d9a1523be67cf466c065643d7ceda96e --- /dev/null +++ b/backend/themes/adminlte/media/build/js/CardWidget.js @@ -0,0 +1,250 @@ +/** + * -------------------------------------------- + * AdminLTE CardWidget.js + * License MIT + * -------------------------------------------- + */ + +const CardWidget = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'CardWidget' + const DATA_KEY = 'lte.cardwidget' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + EXPANDED: `expanded${EVENT_KEY}`, + COLLAPSED: `collapsed${EVENT_KEY}`, + MAXIMIZED: `maximized${EVENT_KEY}`, + MINIMIZED: `minimized${EVENT_KEY}`, + REMOVED: `removed${EVENT_KEY}` + } + + const ClassName = { + CARD: 'card', + COLLAPSED: 'collapsed-card', + WAS_COLLAPSED: 'was-collapsed', + MAXIMIZED: 'maximized-card', + } + + const Selector = { + DATA_REMOVE: '[data-card-widget="remove"]', + DATA_COLLAPSE: '[data-card-widget="collapse"]', + DATA_MAXIMIZE: '[data-card-widget="maximize"]', + CARD: `.${ClassName.CARD}`, + CARD_HEADER: '.card-header', + CARD_BODY: '.card-body', + CARD_FOOTER: '.card-footer', + COLLAPSED: `.${ClassName.COLLAPSED}`, + } + + const Default = { + animationSpeed: 'normal', + collapseTrigger: Selector.DATA_COLLAPSE, + removeTrigger: Selector.DATA_REMOVE, + maximizeTrigger: Selector.DATA_MAXIMIZE, + collapseIcon: 'fa-minus', + expandIcon: 'fa-plus', + maximizeIcon: 'fa-expand', + minimizeIcon: 'fa-compress', + } + + class CardWidget { + constructor(element, settings) { + this._element = element + this._parent = element.parents(Selector.CARD).first() + + if (element.hasClass(ClassName.CARD)) { + this._parent = element + } + + this._settings = $.extend({}, Default, settings) + } + + collapse() { + this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`) + .slideUp(this._settings.animationSpeed, () => { + this._parent.addClass(ClassName.COLLAPSED) + }) + this._parent.find(this._settings.collapseTrigger + ' .' + this._settings.collapseIcon) + .addClass(this._settings.expandIcon) + .removeClass(this._settings.collapseIcon) + + const collapsed = $.Event(Event.COLLAPSED) + + this._element.trigger(collapsed, this._parent) + } + + expand() { + this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`) + .slideDown(this._settings.animationSpeed, () => { + this._parent.removeClass(ClassName.COLLAPSED) + }) + + this._parent.find(this._settings.collapseTrigger + ' .' + this._settings.expandIcon) + .addClass(this._settings.collapseIcon) + .removeClass(this._settings.expandIcon) + + const expanded = $.Event(Event.EXPANDED) + + this._element.trigger(expanded, this._parent) + } + + remove() { + this._parent.slideUp() + + const removed = $.Event(Event.REMOVED) + + this._element.trigger(removed, this._parent) + } + + toggle() { + if (this._parent.hasClass(ClassName.COLLAPSED)) { + this.expand() + return + } + + this.collapse() + } + + maximize() { + this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.maximizeIcon) + .addClass(this._settings.minimizeIcon) + .removeClass(this._settings.maximizeIcon) + this._parent.css({ + 'height': this._parent.height(), + 'width': this._parent.width(), + 'transition': 'all .15s' + }).delay(150).queue(function(){ + $(this).addClass(ClassName.MAXIMIZED) + $('html').addClass(ClassName.MAXIMIZED) + if ($(this).hasClass(ClassName.COLLAPSED)) { + $(this).addClass(ClassName.WAS_COLLAPSED) + } + $(this).dequeue() + }) + + const maximized = $.Event(Event.MAXIMIZED) + + this._element.trigger(maximized, this._parent) + } + + minimize() { + this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.minimizeIcon) + .addClass(this._settings.maximizeIcon) + .removeClass(this._settings.minimizeIcon) + this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' + + 'width:' + this._parent[0].style.width + ' !important; transition: all .15s;' + ).delay(10).queue(function(){ + $(this).removeClass(ClassName.MAXIMIZED) + $('html').removeClass(ClassName.MAXIMIZED) + $(this).css({ + 'height': 'inherit', + 'width': 'inherit' + }) + if ($(this).hasClass(ClassName.WAS_COLLAPSED)) { + $(this).removeClass(ClassName.WAS_COLLAPSED) + } + $(this).dequeue() + }) + + const MINIMIZED = $.Event(Event.MINIMIZED) + + this._element.trigger(MINIMIZED, this._parent) + } + + toggleMaximize() { + if (this._parent.hasClass(ClassName.MAXIMIZED)) { + this.minimize() + return + } + + this.maximize() + } + + // Private + + _init(card) { + this._parent = card + + $(this).find(this._settings.collapseTrigger).click(() => { + this.toggle() + }) + + $(this).find(this._settings.maximizeTrigger).click(() => { + this.toggleMaximize() + }) + + $(this).find(this._settings.removeTrigger).click(() => { + this.remove() + }) + } + + // Static + + static _jQueryInterface(config) { + let data = $(this).data(DATA_KEY) + const _options = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new CardWidget($(this), _options) + $(this).data(DATA_KEY, typeof config === 'string' ? data: config) + } + + if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)) { + data[config]() + } else if (typeof config === 'object') { + data._init($(this)) + } + } + } + + /** + * Data API + * ==================================================== + */ + + $(document).on('click', Selector.DATA_COLLAPSE, function (event) { + if (event) { + event.preventDefault() + } + + CardWidget._jQueryInterface.call($(this), 'toggle') + }) + + $(document).on('click', Selector.DATA_REMOVE, function (event) { + if (event) { + event.preventDefault() + } + + CardWidget._jQueryInterface.call($(this), 'remove') + }) + + $(document).on('click', Selector.DATA_MAXIMIZE, function (event) { + if (event) { + event.preventDefault() + } + + CardWidget._jQueryInterface.call($(this), 'toggleMaximize') + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = CardWidget._jQueryInterface + $.fn[NAME].Constructor = CardWidget + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return CardWidget._jQueryInterface + } + + return CardWidget +})(jQuery) + +export default CardWidget diff --git a/backend/themes/adminlte/media/build/js/ControlSidebar.js b/backend/themes/adminlte/media/build/js/ControlSidebar.js new file mode 100755 index 0000000000000000000000000000000000000000..bd1abec2f8967e772049c23b6b21863dc52a727f --- /dev/null +++ b/backend/themes/adminlte/media/build/js/ControlSidebar.js @@ -0,0 +1,291 @@ +/** + * -------------------------------------------- + * AdminLTE ControlSidebar.js + * License MIT + * -------------------------------------------- + */ + +const ControlSidebar = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'ControlSidebar' + const DATA_KEY = 'lte.controlsidebar' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + const DATA_API_KEY = '.data-api' + + const Event = { + COLLAPSED: `collapsed${EVENT_KEY}`, + EXPANDED: `expanded${EVENT_KEY}`, + } + + const Selector = { + CONTROL_SIDEBAR: '.control-sidebar', + CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content', + DATA_TOGGLE: '[data-widget="control-sidebar"]', + CONTENT: '.content-wrapper', + HEADER: '.main-header', + FOOTER: '.main-footer', + } + + const ClassName = { + CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate', + CONTROL_SIDEBAR_OPEN: 'control-sidebar-open', + CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open', + LAYOUT_FIXED: 'layout-fixed', + NAVBAR_FIXED: 'layout-navbar-fixed', + NAVBAR_SM_FIXED: 'layout-sm-navbar-fixed', + NAVBAR_MD_FIXED: 'layout-md-navbar-fixed', + NAVBAR_LG_FIXED: 'layout-lg-navbar-fixed', + NAVBAR_XL_FIXED: 'layout-xl-navbar-fixed', + FOOTER_FIXED: 'layout-footer-fixed', + FOOTER_SM_FIXED: 'layout-sm-footer-fixed', + FOOTER_MD_FIXED: 'layout-md-footer-fixed', + FOOTER_LG_FIXED: 'layout-lg-footer-fixed', + FOOTER_XL_FIXED: 'layout-xl-footer-fixed', + } + + const Default = { + controlsidebarSlide: true, + scrollbarTheme : 'os-theme-light', + scrollbarAutoHide: 'l', + } + + /** + * Class Definition + * ==================================================== + */ + + class ControlSidebar { + constructor(element, config) { + this._element = element + this._config = config + + this._init() + } + + // Public + + show() { + // Show the control sidebar + if (this._config.controlsidebarSlide) { + $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE) + $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){ + $(Selector.CONTROL_SIDEBAR).hide() + $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE) + $(this).dequeue() + }) + } else { + $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN) + } + + const expandedEvent = $.Event(Event.EXPANDED) + $(this._element).trigger(expandedEvent) + } + + collapse() { + // Collapse the control sidebar + if (this._config.controlsidebarSlide) { + $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE) + $(Selector.CONTROL_SIDEBAR).show().delay(10).queue(function(){ + $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){ + $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE) + $(this).dequeue() + }) + $(this).dequeue() + }) + } else { + $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN) + } + + const collapsedEvent = $.Event(Event.COLLAPSED) + $(this._element).trigger(collapsedEvent) + } + + toggle() { + const shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body') + .hasClass(ClassName.CONTROL_SIDEBAR_SLIDE) + if (shouldOpen) { + // Open the control sidebar + this.show() + } else { + // Close the control sidebar + this.collapse() + } + } + + // Private + + _init() { + this._fixHeight() + this._fixScrollHeight() + + $(window).resize(() => { + this._fixHeight() + this._fixScrollHeight() + }) + + $(window).scroll(() => { + if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) { + this._fixScrollHeight() + } + }) + } + + _fixScrollHeight() { + const heights = { + scroll: $(document).height(), + window: $(window).height(), + header: $(Selector.HEADER).outerHeight(), + footer: $(Selector.FOOTER).outerHeight(), + } + const positions = { + bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll), + top: $(window).scrollTop(), + } + + let navbarFixed = false; + let footerFixed = false; + + if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { + if ( + $('body').hasClass(ClassName.NAVBAR_FIXED) + || $('body').hasClass(ClassName.NAVBAR_SM_FIXED) + || $('body').hasClass(ClassName.NAVBAR_MD_FIXED) + || $('body').hasClass(ClassName.NAVBAR_LG_FIXED) + || $('body').hasClass(ClassName.NAVBAR_XL_FIXED) + ) { + if ($(Selector.HEADER).css("position") === "fixed") { + navbarFixed = true; + } + } + if ( + $('body').hasClass(ClassName.FOOTER_FIXED) + || $('body').hasClass(ClassName.FOOTER_SM_FIXED) + || $('body').hasClass(ClassName.FOOTER_MD_FIXED) + || $('body').hasClass(ClassName.FOOTER_LG_FIXED) + || $('body').hasClass(ClassName.FOOTER_XL_FIXED) + ) { + if ($(Selector.FOOTER).css("position") === "fixed") { + footerFixed = true; + } + } + + if (positions.top === 0 && positions.bottom === 0) { + $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer); + $(Selector.CONTROL_SIDEBAR).css('top', heights.header); + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer)) + } else if (positions.bottom <= heights.footer) { + if (footerFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom); + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom)) + } else { + $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer); + } + } else if (positions.top <= heights.header) { + if (navbarFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top); + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top)) + } else { + $(Selector.CONTROL_SIDEBAR).css('top', heights.header); + } + } else { + if (navbarFixed === false) { + $(Selector.CONTROL_SIDEBAR).css('top', 0); + $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window) + } else { + $(Selector.CONTROL_SIDEBAR).css('top', heights.header); + } + } + } + } + + _fixHeight() { + const heights = { + window: $(window).height(), + header: $(Selector.HEADER).outerHeight(), + footer: $(Selector.FOOTER).outerHeight(), + } + + if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { + let sidebarHeight = heights.window - heights.header; + + if ( + $('body').hasClass(ClassName.FOOTER_FIXED) + || $('body').hasClass(ClassName.FOOTER_SM_FIXED) + || $('body').hasClass(ClassName.FOOTER_MD_FIXED) + || $('body').hasClass(ClassName.FOOTER_LG_FIXED) + || $('body').hasClass(ClassName.FOOTER_XL_FIXED) + ) { + if ($(Selector.FOOTER).css("position") === "fixed") { + sidebarHeight = heights.window - heights.header - heights.footer; + } + } + + $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight) + + if (typeof $.fn.overlayScrollbars !== 'undefined') { + $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({ + className : this._config.scrollbarTheme, + sizeAutoCapable : true, + scrollbars : { + autoHide: this._config.scrollbarAutoHide, + clickScrolling : true + } + }) + } + } + } + + + // Static + + static _jQueryInterface(operation) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + const _options = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new ControlSidebar(this, _options) + $(this).data(DATA_KEY, data) + } + + if (data[operation] === 'undefined') { + throw new Error(`${operation} is not a function`) + } + + data[operation]() + }) + } + } + + /** + * + * Data Api implementation + * ==================================================== + */ + $(document).on('click', Selector.DATA_TOGGLE, function (event) { + event.preventDefault() + + ControlSidebar._jQueryInterface.call($(this), 'toggle') + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = ControlSidebar._jQueryInterface + $.fn[NAME].Constructor = ControlSidebar + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return ControlSidebar._jQueryInterface + } + + return ControlSidebar +})(jQuery) + +export default ControlSidebar diff --git a/backend/themes/adminlte/media/build/js/DirectChat.js b/backend/themes/adminlte/media/build/js/DirectChat.js new file mode 100755 index 0000000000000000000000000000000000000000..c211bc710140f9c5d87b8b17d35e71898259c812 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/DirectChat.js @@ -0,0 +1,92 @@ +/** + * -------------------------------------------- + * AdminLTE DirectChat.js + * License MIT + * -------------------------------------------- + */ + +const DirectChat = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'DirectChat' + const DATA_KEY = 'lte.directchat' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + const DATA_API_KEY = '.data-api' + + const Event = { + TOGGLED: `toggled{EVENT_KEY}` + } + + const Selector = { + DATA_TOGGLE: '[data-widget="chat-pane-toggle"]', + DIRECT_CHAT: '.direct-chat' + }; + + const ClassName = { + DIRECT_CHAT_OPEN: 'direct-chat-contacts-open' + }; + + /** + * Class Definition + * ==================================================== + */ + + class DirectChat { + constructor(element, config) { + this._element = element + } + + toggle() { + $(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN); + + const toggledEvent = $.Event(Event.TOGGLED) + $(this._element).trigger(toggledEvent) + } + + // Static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + + if (!data) { + data = new DirectChat($(this)) + $(this).data(DATA_KEY, data) + } + + data[config]() + }) + } + } + + /** + * + * Data Api implementation + * ==================================================== + */ + + $(document).on('click', Selector.DATA_TOGGLE, function (event) { + if (event) event.preventDefault(); + DirectChat._jQueryInterface.call($(this), 'toggle'); + }); + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = DirectChat._jQueryInterface + $.fn[NAME].Constructor = DirectChat + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return DirectChat._jQueryInterface + } + + return DirectChat +})(jQuery) + +export default DirectChat diff --git a/backend/themes/adminlte/media/build/js/Dropdown.js b/backend/themes/adminlte/media/build/js/Dropdown.js new file mode 100755 index 0000000000000000000000000000000000000000..2c58cdfef4e27c1c7b06ab99e6e1b64ed1e0960e --- /dev/null +++ b/backend/themes/adminlte/media/build/js/Dropdown.js @@ -0,0 +1,112 @@ +/** + * -------------------------------------------- + * AdminLTE Dropdown.js + * License MIT + * -------------------------------------------- + */ + +const Dropdown = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'Dropdown' + const DATA_KEY = 'lte.dropdown' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Selector = { + DROPDOWN_MENU: 'ul.dropdown-menu', + DROPDOWN_TOGGLE: '[data-toggle="dropdown"]', + } + + const ClassName = { + DROPDOWN_HOVER: '.dropdown-hover' + } + + const Default = { + } + + + /** + * Class Definition + * ==================================================== + */ + + class Dropdown { + constructor(element, config) { + this._config = config + this._element = element + } + + // Public + + toggleSubmenu() { + this._element.siblings().show().toggleClass("show"); + + if (! this._element.next().hasClass('show')) { + this._element.parents('.dropdown-menu').first().find('.show').removeClass("show").hide(); + } + + this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) { + $('.dropdown-submenu .show').removeClass("show").hide(); + }); + + } + + // Static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + const _config = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new Dropdown($(this), _config) + $(this).data(DATA_KEY, data) + } + + if (config === 'toggleSubmenu') { + data[config]() + } + }) + } + } + + /** + * Data API + * ==================================================== + */ + + $(Selector.DROPDOWN_MENU + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function(event) { + event.preventDefault(); + event.stopPropagation(); + + Dropdown._jQueryInterface.call($(this), 'toggleSubmenu') + }); + + // $(Selector.SIDEBAR + ' a').on('focusin', () => { + // $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED); + // }) + + // $(Selector.SIDEBAR + ' a').on('focusout', () => { + // $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED); + // }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = Dropdown._jQueryInterface + $.fn[NAME].Constructor = Dropdown + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Dropdown._jQueryInterface + } + + return Dropdown +})(jQuery) + +export default Dropdown diff --git a/backend/themes/adminlte/media/build/js/Layout.js b/backend/themes/adminlte/media/build/js/Layout.js new file mode 100755 index 0000000000000000000000000000000000000000..fa855a409d393146ed58680b2cf816aae93b38b7 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/Layout.js @@ -0,0 +1,197 @@ +/** + * -------------------------------------------- + * AdminLTE Layout.js + * License MIT + * -------------------------------------------- + */ + +const Layout = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'Layout' + const DATA_KEY = 'lte.layout' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + SIDEBAR: 'sidebar' + } + + const Selector = { + HEADER : '.main-header', + MAIN_SIDEBAR : '.main-sidebar', + SIDEBAR : '.main-sidebar .sidebar', + CONTENT : '.content-wrapper', + BRAND : '.brand-link', + CONTENT_HEADER : '.content-header', + WRAPPER : '.wrapper', + CONTROL_SIDEBAR: '.control-sidebar', + LAYOUT_FIXED : '.layout-fixed', + FOOTER : '.main-footer', + PUSHMENU_BTN : '[data-widget="pushmenu"]', + LOGIN_BOX : '.login-box', + REGISTER_BOX : '.register-box' + } + + const ClassName = { + HOLD : 'hold-transition', + SIDEBAR : 'main-sidebar', + CONTENT_FIXED : 'content-fixed', + SIDEBAR_FOCUSED: 'sidebar-focused', + LAYOUT_FIXED : 'layout-fixed', + NAVBAR_FIXED : 'layout-navbar-fixed', + FOOTER_FIXED : 'layout-footer-fixed', + LOGIN_PAGE : 'login-page', + REGISTER_PAGE : 'register-page', + } + + const Default = { + scrollbarTheme : 'os-theme-light', + scrollbarAutoHide: 'l' + } + + /** + * Class Definition + * ==================================================== + */ + + class Layout { + constructor(element, config) { + this._config = config + this._element = element + + this._init() + } + + // Public + + fixLayoutHeight() { + const heights = { + window: $(window).height(), + header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0, + footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0, + sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0, + } + + const max = this._max(heights) + + if (max == heights.window) { + $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer) + } else { + $(Selector.CONTENT).css('min-height', max - heights.header) + } + + if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { + $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer) + + if (typeof $.fn.overlayScrollbars !== 'undefined') { + $(Selector.SIDEBAR).overlayScrollbars({ + className : this._config.scrollbarTheme, + sizeAutoCapable : true, + scrollbars : { + autoHide: this._config.scrollbarAutoHide, + clickScrolling : true + } + }) + } + } + } + + // Private + + _init() { + // Activate layout height watcher + this.fixLayoutHeight() + $(Selector.SIDEBAR) + .on('collapsed.lte.treeview expanded.lte.treeview', () => { + this.fixLayoutHeight() + }) + + $(Selector.PUSHMENU_BTN) + .on('collapsed.lte.pushmenu shown.lte.pushmenu', () => { + this.fixLayoutHeight() + }) + + $(window).resize(() => { + this.fixLayoutHeight() + }) + + if (!$('body').hasClass(ClassName.LOGIN_PAGE) && !$('body').hasClass(ClassName.REGISTER_PAGE)) { + $('body, html').css('height', 'auto') + } else if ($('body').hasClass(ClassName.LOGIN_PAGE) || $('body').hasClass(ClassName.REGISTER_PAGE)) { + let box_height = $(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).height() + + $('body').css('min-height', box_height); + } + + $('body.hold-transition').removeClass('hold-transition') + } + + _max(numbers) { + // Calculate the maximum number in a list + let max = 0 + + Object.keys(numbers).forEach((key) => { + if (numbers[key] > max) { + max = numbers[key] + } + }) + + return max + } + + // Static + + static _jQueryInterface(config) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + const _options = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new Layout($(this), _options) + $(this).data(DATA_KEY, data) + } + + if (config === 'init') { + data[config]() + } + }) + } + } + + /** + * Data API + * ==================================================== + */ + + $(window).on('load', () => { + Layout._jQueryInterface.call($('body')) + }) + + $(Selector.SIDEBAR + ' a').on('focusin', () => { + $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED); + }) + + $(Selector.SIDEBAR + ' a').on('focusout', () => { + $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED); + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = Layout._jQueryInterface + $.fn[NAME].Constructor = Layout + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return Layout._jQueryInterface + } + + return Layout +})(jQuery) + +export default Layout diff --git a/backend/themes/adminlte/media/build/js/PushMenu.js b/backend/themes/adminlte/media/build/js/PushMenu.js new file mode 100755 index 0000000000000000000000000000000000000000..3b6d343b9532a68dff44f355be9d807b69ea1196 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/PushMenu.js @@ -0,0 +1,223 @@ +/** + * -------------------------------------------- + * AdminLTE PushMenu.js + * License MIT + * -------------------------------------------- + */ + +const PushMenu = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'PushMenu' + const DATA_KEY = 'lte.pushmenu' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + COLLAPSED: `collapsed${EVENT_KEY}`, + SHOWN: `shown${EVENT_KEY}` + } + + const Default = { + autoCollapseSize: 992, + enableRemember: false, + noTransitionAfterReload: true + } + + const Selector = { + TOGGLE_BUTTON: '[data-widget="pushmenu"]', + SIDEBAR_MINI: '.sidebar-mini', + SIDEBAR_COLLAPSED: '.sidebar-collapse', + BODY: 'body', + OVERLAY: '#sidebar-overlay', + WRAPPER: '.wrapper' + } + + const ClassName = { + SIDEBAR_OPEN: 'sidebar-open', + COLLAPSED: 'sidebar-collapse', + OPEN: 'sidebar-open' + } + + /** + * Class Definition + * ==================================================== + */ + + class PushMenu { + constructor(element, options) { + this._element = element + this._options = $.extend({}, Default, options) + + if (!$(Selector.OVERLAY).length) { + this._addOverlay() + } + + this._init() + } + + // Public + + expand() { + if (this._options.autoCollapseSize) { + if ($(window).width() <= this._options.autoCollapseSize) { + $(Selector.BODY).addClass(ClassName.OPEN) + } + } + + $(Selector.BODY).removeClass(ClassName.COLLAPSED) + + if(this._options.enableRemember) { + localStorage.setItem(`remember${EVENT_KEY}`, ClassName.OPEN) + } + + const shownEvent = $.Event(Event.SHOWN) + $(this._element).trigger(shownEvent) + } + + collapse() { + if (this._options.autoCollapseSize) { + if ($(window).width() <= this._options.autoCollapseSize) { + $(Selector.BODY).removeClass(ClassName.OPEN) + } + } + + $(Selector.BODY).addClass(ClassName.COLLAPSED) + + if(this._options.enableRemember) { + localStorage.setItem(`remember${EVENT_KEY}`, ClassName.COLLAPSED) + } + + const collapsedEvent = $.Event(Event.COLLAPSED) + $(this._element).trigger(collapsedEvent) + } + + toggle() { + if (!$(Selector.BODY).hasClass(ClassName.COLLAPSED)) { + this.collapse() + } else { + this.expand() + } + } + + autoCollapse(resize = false) { + if (this._options.autoCollapseSize) { + if ($(window).width() <= this._options.autoCollapseSize) { + if (!$(Selector.BODY).hasClass(ClassName.OPEN)) { + this.collapse() + } + } else if (resize == true) { + if ($(Selector.BODY).hasClass(ClassName.OPEN)) { + $(Selector.BODY).removeClass(ClassName.OPEN) + } + } + } + } + + remember() { + if(this._options.enableRemember) { + let toggleState = localStorage.getItem(`remember${EVENT_KEY}`) + if (toggleState == ClassName.COLLAPSED){ + if (this._options.noTransitionAfterReload) { + $("body").addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function() { + $(this).removeClass('hold-transition') + $(this).dequeue() + }) + } else { + $("body").addClass(ClassName.COLLAPSED) + } + } else { + if (this._options.noTransitionAfterReload) { + $("body").addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function() { + $(this).removeClass('hold-transition') + $(this).dequeue() + }) + } else { + $("body").removeClass(ClassName.COLLAPSED) + } + } + } + } + + // Private + + _init() { + this.remember() + this.autoCollapse() + + $(window).resize(() => { + this.autoCollapse(true) + }) + } + + _addOverlay() { + const overlay = $('
', { + id: 'sidebar-overlay' + }) + + overlay.on('click', () => { + this.collapse() + }) + + $(Selector.WRAPPER).append(overlay) + } + + // Static + + static _jQueryInterface(operation) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + const _options = $.extend({}, Default, $(this).data()) + + if (!data) { + data = new PushMenu(this, _options) + $(this).data(DATA_KEY, data) + } + + if (typeof operation === 'string' && operation.match(/collapse|expand|toggle/)) { + data[operation]() + } + }) + } + } + + /** + * Data API + * ==================================================== + */ + + $(document).on('click', Selector.TOGGLE_BUTTON, (event) => { + event.preventDefault() + + let button = event.currentTarget + + if ($(button).data('widget') !== 'pushmenu') { + button = $(button).closest(Selector.TOGGLE_BUTTON) + } + + PushMenu._jQueryInterface.call($(button), 'toggle') + }) + + $(window).on('load', () => { + PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON)) + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = PushMenu._jQueryInterface + $.fn[NAME].Constructor = PushMenu + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return PushMenu._jQueryInterface + } + + return PushMenu +})(jQuery) + +export default PushMenu diff --git a/backend/themes/adminlte/media/build/js/SiteSearch.js b/backend/themes/adminlte/media/build/js/SiteSearch.js new file mode 100755 index 0000000000000000000000000000000000000000..b3ed9e5ad2de7f3b1f69e21fdf4236ddfb49adc4 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/SiteSearch.js @@ -0,0 +1,127 @@ +/** + * -------------------------------------------- + * AdminLTE SiteSearch.js + * License MIT + * -------------------------------------------- + */ + +const SiteSearch = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'SiteSearch' + const DATA_KEY = 'lte.site-search' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = {} + + const Selector = { + TOGGLE_BUTTON : '[data-widget="site-search"]', + SEARCH_BLOCK : '.site-search-block', + SEARCH_BACKDROP: '.site-search-backdrop', + SEARCH_INPUT : '.site-search-block .form-control' + } + + const ClassName = { + OPEN: 'site-search-open' + } + + const Default = { + transitionSpeed: 300 + } + + /** + * Class Definition + * ==================================================== + */ + + class SiteSearch { + + constructor(_element, _options) { + this.element = _element + this.options = $.extend({}, Default, _options) + } + + // Public + + open() { + $(Selector.SEARCH_BLOCK).slideDown(this.options.transitionSpeed) + $(Selector.SEARCH_BACKDROP).show(0) + $(Selector.SEARCH_INPUT).focus() + $(Selector.SEARCH_BLOCK).addClass(ClassName.OPEN) + } + + close() { + $(Selector.SEARCH_BLOCK).slideUp(this.options.transitionSpeed) + $(Selector.SEARCH_BACKDROP).hide(0) + $(Selector.SEARCH_BLOCK).removeClass(ClassName.OPEN) + } + + toggle() { + if ($(Selector.SEARCH_BLOCK).hasClass(ClassName.OPEN)) { + this.close() + } else { + this.open() + } + } + + // Static + + static _jQueryInterface(options) { + return this.each(function () { + let data = $(this).data(DATA_KEY) + + if (!data) { + data = new SiteSearch(this, options) + $(this).data(DATA_KEY, data) + } + + if (!/toggle|close/.test(options)) { + throw Error(`Undefined method ${options}`) + } + + data[options]() + }) + } + } + + /** + * Data API + * ==================================================== + */ + $(document).on('click', Selector.TOGGLE_BUTTON, (event) => { + event.preventDefault() + + let button = $(event.currentTarget) + + if (button.data('widget') !== 'site-search') { + button = button.closest(Selector.TOGGLE_BUTTON) + } + + SiteSearch._jQueryInterface.call(button, 'toggle') + }) + + $(document).on('click', Selector.SEARCH_BACKDROP, (event) => { + const backdrop = $(event.currentTarget) + SiteSearch._jQueryInterface.call(backdrop, 'close') + }) + + /** + * jQuery API + * ==================================================== + */ + + $.fn[NAME] = SiteSearch._jQueryInterface + $.fn[NAME].Constructor = SiteSearch + $.fn[NAME].noConflict = function () { + $.fn[NAME] = JQUERY_NO_CONFLICT + return SiteSearch._jQueryInterface + } + + return SiteSearch +})(jQuery) + +export default SiteSearch diff --git a/backend/themes/adminlte/media/build/js/Toasts.js b/backend/themes/adminlte/media/build/js/Toasts.js new file mode 100755 index 0000000000000000000000000000000000000000..a4cfc2570c5c37c3f9452e592f0db3c1252b4053 --- /dev/null +++ b/backend/themes/adminlte/media/build/js/Toasts.js @@ -0,0 +1,229 @@ +/** + * -------------------------------------------- + * AdminLTE Toasts.js + * License MIT + * -------------------------------------------- + */ + +const Toasts = (($) => { + /** + * Constants + * ==================================================== + */ + + const NAME = 'Toasts' + const DATA_KEY = 'lte.toasts' + const EVENT_KEY = `.${DATA_KEY}` + const JQUERY_NO_CONFLICT = $.fn[NAME] + + const Event = { + INIT: `init${EVENT_KEY}`, + CREATED: `created${EVENT_KEY}`, + REMOVED: `removed${EVENT_KEY}`, + } + + const Selector = { + BODY: 'toast-body', + CONTAINER_TOP_RIGHT: '#toastsContainerTopRight', + CONTAINER_TOP_LEFT: '#toastsContainerTopLeft', + CONTAINER_BOTTOM_RIGHT: '#toastsContainerBottomRight', + CONTAINER_BOTTOM_LEFT: '#toastsContainerBottomLeft', + } + + const ClassName = { + TOP_RIGHT: 'toasts-top-right', + TOP_LEFT: 'toasts-top-left', + BOTTOM_RIGHT: 'toasts-bottom-right', + BOTTOM_LEFT: 'toasts-bottom-left', + FADE: 'fade', + } + + const Position = { + TOP_RIGHT: 'topRight', + TOP_LEFT: 'topLeft', + BOTTOM_RIGHT: 'bottomRight', + BOTTOM_LEFT: 'bottomLeft', + } + + const Id = { + CONTAINER_TOP_RIGHT: 'toastsContainerTopRight', + CONTAINER_TOP_LEFT: 'toastsContainerTopLeft', + CONTAINER_BOTTOM_RIGHT: 'toastsContainerBottomRight', + CONTAINER_BOTTOM_LEFT: 'toastsContainerBottomLeft', + } + + const Default = { + position: Position.TOP_RIGHT, + fixed: true, + autohide: false, + autoremove: true, + delay: 1000, + fade: true, + icon: null, + image: null, + imageAlt: null, + imageHeight: '25px', + title: null, + subtitle: null, + close: true, + body: null, + class: null, + } + + /** + * Class Definition + * ==================================================== + */ + class Toasts { + constructor(element, config) { + this._config = config + + this._prepareContainer(); + + const initEvent = $.Event(Event.INIT) + $('body').trigger(initEvent) + } + + // Public + + create() { + var toast = $(' + +

+ +

+

+ +

+
+ + +endBody() ?> + + +endPage() ?> + diff --git a/backend/themes/adminlte/mod_themes/styles/index.php b/backend/themes/adminlte/mod_themes/styles/index.php new file mode 100755 index 0000000000000000000000000000000000000000..bfd3223fcae7637388eb91d33801dd99a6ea4030 --- /dev/null +++ b/backend/themes/adminlte/mod_themes/styles/index.php @@ -0,0 +1,104 @@ +css, 1, 0, [ + 'plugins/icheck-bootstrap/icheck-bootstrap.css' +]); + +$this->title = Yii::t('mod_themes', 'SUBMENU_STYLES'); +$this->params['breadcrumbs'][] = $this->title; +$this->params['active'] = 'styles'; + +$this->registerCss('.card-body .table>thead>tr>td, .card-body .table>thead>tr>th{border-top-width: 0;}'); +$js = <<'; + $(this).replaceWith('
' + outerHTML + labelHTML + '
'); +}); +JS; +$this->registerJs($js); + +?> +
+
+
+
+ 'themes_form']) . + GridView::widget([ + 'id' => 'themes_list', + 'layout' => '{items}', + 'tableOptions' => [ + 'id' => 'theme_style_table', + 'class' => 'table table-condensed table-striped table-hover' + ], + 'dataProvider' => $dataProvider, + 'columns' => [ + [ + 'class' => \yii\grid\CheckboxColumn::class, + 'headerOptions' => ['width' => '2%'], + 'checkboxOptions' => function($model){ + return ['id' => 'cb' . $model->id]; + } + ], + [ + 'attribute' => 'title', + 'format' => 'raw', + 'value' => function ($model) { + $title = Yii::t('mod_themes', $model->title); + if ($model->title === $title) { + $title = ucfirst($model->template) . ' - Default'; + } + return Html::a($title, ['edit', 'id' => $model->id]); + } + ], + [ + 'attribute' => 'home', + 'format' => 'raw', + 'value' => function($model){ + $icons = Html::tag('i', '', ['class' => 'fas fa-star text-warning']); + $iconr = Html::tag('i', '', ['class' => 'far fa-star']); + $link = Html::a($model->home ? $icons : $iconr, null, [ + 'class' => 'btn btn-default btn-xs'. ($model->home ? ' disabled' : ''), + 'data' => [ + 'method' => 'post', + 'params' => [ + 'id' => $model->id, + 'client_id' => $model->client_id + ] + ] + ]); + return Html::tag('span', $link, [ + 'title' => Yii::t('mod_themes', $model->home ? 'DEFAULT' : 'SET_DEFAULT'), + 'data-toggle' => 'tooltip' + ]); + } + ], + [ + 'attribute' => 'template', + 'format' => 'raw', + 'value' => function ($model) { + return Html::a(ucfirst($model->template), ['template/edit', 'id' => $model->id]); + } + ] + ] + ]). Html::endForm() + ?> +
+ +
+
diff --git a/backend/themes/adminlte/site/error.php b/backend/themes/adminlte/site/error.php new file mode 100755 index 0000000000000000000000000000000000000000..8ff5be59605553973b7c2c5071124ed8bb114ade --- /dev/null +++ b/backend/themes/adminlte/site/error.php @@ -0,0 +1,33 @@ +title = Yii::t('yii', 'ERROR'); +$this->params['breadcrumbs'][] = $this->title; + +$this->params['navShow'] = !Yii::$app->user->isGuest; +?> +
+ +

statusCode ?>

+ +
+

getName() ?>

+

+
+ The above error occurred while the Web server was processing your request.
+ Please contact us if you think this is a server error. Thank you. +

+
+ +

user->returnUrl, [ + 'class' => 'btn btn-primary btn-block' + ]) ?>

+ +
diff --git a/backend/themes/adminlte/site/index.php b/backend/themes/adminlte/site/index.php new file mode 100755 index 0000000000000000000000000000000000000000..f32e599850d05624e270cb4c186504118bbdc5bc --- /dev/null +++ b/backend/themes/adminlte/site/index.php @@ -0,0 +1,62 @@ +title = Yii::t('site','CONTROL_PANEL'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ + + +
+
+ +
+

Heading

+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur.

+ +

Yii Forum »

+
+
+

Heading

+ +

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et + dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip + ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur.

+ +

Yii Extensions »

+
+
+
+
'haha']) ?>
+
+
+
+ +













+
+
+ +
+
diff --git a/backend/themes/adminlte/template_preview.png b/backend/themes/adminlte/template_preview.png new file mode 100755 index 0000000000000000000000000000000000000000..a6f5d4fc040192e19c454546114b4dc15d1af369 Binary files /dev/null and b/backend/themes/adminlte/template_preview.png differ diff --git a/backend/themes/adminlte/template_thumbnail.png b/backend/themes/adminlte/template_thumbnail.png new file mode 100755 index 0000000000000000000000000000000000000000..b3aa9cb2e4e94107534648c4ed5f874d1029e2f3 Binary files /dev/null and b/backend/themes/adminlte/template_thumbnail.png differ diff --git a/backend/themes/adminlte/themeDetails.xml b/backend/themes/adminlte/themeDetails.xml new file mode 100755 index 0000000000000000000000000000000000000000..334f94190eef5ede702f6d9bd44bf2d13caba4f8 --- /dev/null +++ b/backend/themes/adminlte/themeDetails.xml @@ -0,0 +1,49 @@ + + + THEME_ADMINLTE + adminlte + 2019/10/10 + FireLoong + fireloong@foxmail.com + https://adminlte.io/ + Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved. + The MIT License (MIT); see LICENSE + 1.0.0 + THEME_XML_DESCRIPTION + + LICENSE + README.md + themeDetails.xml + template_preview.png + template_thumbnail.png + assets + layouts + media + messages + mod_admin + site + widgets + + + theme_adminlte.php + + + content-header + cpanel + footer + + + +
+ + +
+
+
+
\ No newline at end of file diff --git a/backend/themes/adminlte/widgets/alert/Widget.php b/backend/themes/adminlte/widgets/alert/Widget.php new file mode 100755 index 0000000000000000000000000000000000000000..ee633ac8f14c0b3cc8a17f4f36af308cd12fe5b2 --- /dev/null +++ b/backend/themes/adminlte/widgets/alert/Widget.php @@ -0,0 +1,63 @@ + $value, where: + * - key: the name of the session flash variable + * - value: the bootstrap alert type (i.e. danger, success, info, warning) + */ + public $alertTypes = [ + 'error' => 'alert-danger', + 'danger' => 'alert-danger', + 'success' => 'alert-success', + 'info' => 'alert-info', + 'warning' => 'alert-warning', + ]; + + /** + * @var array the options for rendering the close button tag. + * Array will be passed to [[\yii\bootstrap\Alert::closeButton]]. + */ + public $closeButton = []; + + /** + * {@inheritdoc} + */ + public function run() + { + $session = Yii::$app->session; + $flashes = $session->getAllFlashes(); + $appendClass = isset($this->options['class']) ? ' ' . $this->options['class'] : ''; + + foreach ($flashes as $type => $flash) { + if (!isset($this->alertTypes[$type])) { + continue; + } + + foreach ((array) $flash as $i => $message) { + echo \yii\bootstrap4\Alert::widget([ + 'body' => $message, + 'closeButton' => $this->closeButton, + 'options' => array_merge($this->options, [ + 'id' => $this->getId() . '-' . $type . '-' . $i, + 'class' => $this->alertTypes[$type] . $appendClass, + ]), + ]); + } + $session->removeFlash($type); + } + } +} diff --git a/backend/themes/basic/assets/AppAsset.php b/backend/themes/basic/assets/AppAsset.php new file mode 100755 index 0000000000000000000000000000000000000000..94a7b6aadf7b9110909f756223113b1783da6366 --- /dev/null +++ b/backend/themes/basic/assets/AppAsset.php @@ -0,0 +1,92 @@ +sourcePath)) { + $url = Yii::$app->assetManager->getPublishedUrl($this->sourcePath); + if (!is_dir($this->basePath . str_replace($this->baseUrl, '', $url))) { + Yii::$app->assetManager->publish($this->sourcePath); + } + } + + $cssFiles = []; + foreach ($cssFile as $item) { + $dir = '/' . trim($dir, '/ ') . '/'; + $cssFiles[] = Url::isRelative($item) ? FileHelper::normalizePath($url . $dir . $item) : $item; + } + + $bundle = Yii::$app->getAssetManager()->bundles[self::class]; + + $bundle->css = $isAfter ? array_merge($bundle->css, $cssFiles) : array_merge($cssFiles, $bundle->css); + } + + /** + * 视图文件中添加JS文件 + * @param string|array $jsFile 要添加的JS文件名 + * @param boolean $isAfter 是否放在 $js 后面 + * @param string $dir + * @return boolean + * @throws \yii\base\InvalidConfigException + */ + public function addJs($jsFile, $isAfter = true, $dir = 'js') + { + if (is_string($jsFile)) { + $jsFile = array($jsFile); + } + if (!is_array($jsFile)) { + return FALSE; + } + if (!is_null($this->sourcePath)) { + $url = Yii::$app->assetManager->getPublishedUrl($this->sourcePath); + if (!is_dir($this->basePath . str_replace($this->baseUrl, '', $url))) { + Yii::$app->assetManager->publish($this->sourcePath); + } + } + + $jsFiles = []; + foreach ($jsFile as $item) { + $dir = '/' . trim($dir, '/ ') . '/'; + $jsFiles[] = Url::isRelative($item) ? FileHelper::normalizePath($url . $dir . $item) : $item; + } + + $bundle = Yii::$app->getAssetManager()->bundles[self::class]; + + $bundle->js = $isAfter ? array_merge($bundle->js, $jsFiles) : array_merge($jsFiles, $bundle->js); + } + +} diff --git a/backend/themes/basic/assets/bundles.php b/backend/themes/basic/assets/bundles.php new file mode 100755 index 0000000000000000000000000000000000000000..fc0b20c05e5de2f5c8d72551b67133d0664304b0 --- /dev/null +++ b/backend/themes/basic/assets/bundles.php @@ -0,0 +1,8 @@ + [ + 'sourcePath' => null, + 'js' => ['https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js'] + ] +]; diff --git a/backend/themes/basic/cache/index.php b/backend/themes/basic/cache/index.php new file mode 100755 index 0000000000000000000000000000000000000000..fe27b52dff3eacbb30040faf44c6509149b46c41 --- /dev/null +++ b/backend/themes/basic/cache/index.php @@ -0,0 +1,27 @@ +title = Yii::t('cache', 'CLEAR_CACHE'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+

+ 'btn btn-success', + 'data' => [ + 'method' => 'post', + 'params' => [ + 'path' => Yii::getAlias('@' . $clent . DIRECTORY_SEPARATOR . 'runtime') + ] + ] + ]); + } + ?> +

+
diff --git a/backend/themes/basic/clients/_form.php b/backend/themes/basic/clients/_form.php new file mode 100755 index 0000000000000000000000000000000000000000..ea2ce320d35351965e5f160c913449d89a7c2c68 --- /dev/null +++ b/backend/themes/basic/clients/_form.php @@ -0,0 +1,46 @@ + + +
+ + 'client_form', + 'layout' => 'horizontal', + 'fieldConfig' => [ + 'horizontalCssClasses' => [ + 'label' => 'col-sm-2', + 'hint' => 'col-sm-4' + ] + ] + ]); + ?> + + field($model, 'name')->textInput(['maxlength' => true]) ?> + + field($model, 'url')->textInput(['maxlength' => true]) ?> + + field($model, 'path')->textInput(['maxlength' => true]) ?> + + field($model, 'description')->textarea(['maxlength' => true, 'rows' => '3']) ?> + + field($model, 'ordering')->input('number') ?> + + field($model, 'status')->input('number') ?> + +
+
+ 'btn btn-success']) ?> +
+
+ + + +
diff --git a/backend/themes/basic/clients/index.php b/backend/themes/basic/clients/index.php new file mode 100755 index 0000000000000000000000000000000000000000..3baca86df0b7183467cb5386a644144f077d03cc --- /dev/null +++ b/backend/themes/basic/clients/index.php @@ -0,0 +1,33 @@ +title = Yii::t('clients', 'CLIENTS'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ $dataProvider, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + //'id', + 'name', + 'url:url', + 'path', + 'description', + //'ordering', + //'status', + + [ + 'class' => 'yii\grid\ActionColumn', + 'template' => '{view} {update}' + ], + ], + ]); ?> + + +
diff --git a/backend/themes/basic/clients/update.php b/backend/themes/basic/clients/update.php new file mode 100755 index 0000000000000000000000000000000000000000..c9378ebd34525ee4c768592aa546803d362313de --- /dev/null +++ b/backend/themes/basic/clients/update.php @@ -0,0 +1,19 @@ +title = Yii::t('clients', 'Update Clients: {name}', [ + 'name' => $model->name, +]); +$this->params['breadcrumbs'][] = ['label' => Yii::t('clients', 'CLIENTS'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('common', 'UPDATE'); +?> +
+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/themes/basic/clients/view.php b/backend/themes/basic/clients/view.php new file mode 100755 index 0000000000000000000000000000000000000000..e12825def28fb294bc85b67a58b89314688002ac --- /dev/null +++ b/backend/themes/basic/clients/view.php @@ -0,0 +1,32 @@ +title = $model->name; +$this->params['breadcrumbs'][] = ['label' => Yii::t('clients', 'CLIENTS'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +\yii\web\YiiAsset::register($this); +?> +
+

+ $model->id], ['class' => 'btn btn-primary']) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'name', + 'url:url', + 'path', + 'description', + 'ordering', + 'status', + ], + ]) ?> + +
diff --git a/backend/themes/basic/extensions/_form.php b/backend/themes/basic/extensions/_form.php new file mode 100755 index 0000000000000000000000000000000000000000..56536b7f2a32f0618bdcb29fff949a1ca28897fd --- /dev/null +++ b/backend/themes/basic/extensions/_form.php @@ -0,0 +1,41 @@ + + +
+ + + + field($model, 'package_id')->textInput() ?> + + field($model, 'name')->textInput(['maxlength' => true]) ?> + + field($model, 'type')->textInput(['maxlength' => true]) ?> + + field($model, 'client_id')->textInput() ?> + + field($model, 'enabled')->textInput() ?> + + field($model, 'protected')->textInput() ?> + + field($model, 'manifest_cache')->textarea(['rows' => 6]) ?> + + field($model, 'params')->textarea(['rows' => 6]) ?> + + field($model, 'ordering')->textInput() ?> + + field($model, 'status')->textInput() ?> + +
+ 'btn btn-success']) ?> +
+ + + +
diff --git a/backend/themes/basic/extensions/_script.js b/backend/themes/basic/extensions/_script.js new file mode 100755 index 0000000000000000000000000000000000000000..98822f1a9b1612e2a894016bca925cf3a47c52a6 --- /dev/null +++ b/backend/themes/basic/extensions/_script.js @@ -0,0 +1,110 @@ +$('#select-file-button').on('click', function (e) { + $('#uploadform-file').click(); +}); +$('#uploadform-file').on('change', function (e) { + setTimeout(function () { + var txt = $('#uploadform-file + .help-block').text(); + if (txt !== '') { + $('#ps').remove(); + $('.upload-actions').append('

' + txt + '

'); + } + }, 600); + $('#installbutton_package').click(); +}); +/** + * 拖放上传功能,待完善 + */ +var dragZone = $('#dragarea'); +dragZone.on('dragenter', function (e) { + e.preventDefault(); + e.stopPropagation(); + dragZone.addClass('hover'); + return false; +}); +// Notify user when file is over the drop area +dragZone.on('dragover', function (e) { + e.preventDefault(); + e.stopPropagation(); + + dragZone.addClass('hover'); + + return false; +}); +dragZone.on('dragleave', function (e) { + e.preventDefault(); + e.stopPropagation(); + dragZone.removeClass('hover'); + + return false; +}); +var uploading = false; +dragZone.on('drop', function (e) { + e.preventDefault(); + e.stopPropagation(); + + dragZone.removeClass('hover'); + + if (uploading) { + return; + }; + + var files = e.originalEvent.target.files || e.originalEvent.dataTransfer.files; + + if (!files.length) { + return; + }; + + var file = files[0]; + + var data = new FormData(); + data.append('file', file); + //console.log(file.name); + alert(''); +}); + +/** + * 标签点击停留状态 + */ +$('.extensions-installer .nav-tabs a').on('click', function () { + sessionStorage.setItem(window.location.pathname, $(this).attr('href')); +}); + +var active = sessionStorage.getItem(window.location.pathname); +if (active !== null) { + $('.extensions-installer .nav-tabs li a[href="' + active + '"]').tab('show'); +} else { + $('.extensions-installer .nav-tabs li a[href="#web"]').tab('show'); +}; + +$('.select-on-check-all').attr({'data-toggle':'tooltip', 'title':''}); + +$('[data-toggle="tooltip"]').tooltip({trigger: 'hover', html: true}); + +$('#extensions_enable').click(function(e){ + var keys = $('#extensions_list').yiiGridView('getSelectedRows'); + if (keys.length){ + $('#extensions_form').append('').submit(); + } else{ + alert(''); + } +}); + +$('#extensions_disable').click(function(e){ + var keys = $('#extensions_list').yiiGridView('getSelectedRows'); + if (keys.length){ + $('#extensions_form').append('').submit(); + } else{ + alert(''); + } +}); + +$('#extensions_uninstall').click(function(e){ + var keys = $('#extensions_list').yiiGridView('getSelectedRows'); + if (keys.length){ + yii.confirm('', function(){ + $('#extensions_form').append('').submit(); + }); + } else{ + alert(''); + } +}); diff --git a/backend/themes/basic/extensions/installer.php b/backend/themes/basic/extensions/installer.php new file mode 100755 index 0000000000000000000000000000000000000000..fbc03bc01779f18b7d243d34527c0b6405005caa --- /dev/null +++ b/backend/themes/basic/extensions/installer.php @@ -0,0 +1,121 @@ +title = Yii::t('extensions', 'EXTENSIONS_INSTALL'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('extensions', 'EXTENSIONS'), 'url' => ['installer']]; +$this->params['breadcrumbs'][] = $this->title; +$this->params['active'] = 'installer'; + +$this->registerJs($this->render('_script.js')); +$maxSize = Yii::$app->formatter->asShortSize($model->maxSize); +?> +
+ + + + +
+
+ +
+
+ 'installer-form']) ?> +
+ +
+
+
+

+ +

+
+

+

+ +

+

+
+
+
+
+ +
+ +
+
+
+ +
+ 'control-label' + ]) ?> +
+ +
+
+
+ 'installbutton_directory', + 'class' => 'btn btn-primary' + ]) ?> +
+
+
+
+
+ +
+ 'control-label' + ]) ?> +
+ +
+
+
+ 'installbutton_url', + 'class' => 'btn btn-primary' + ]) ?> +
+
+
+
+
diff --git a/backend/themes/basic/extensions/manage.php b/backend/themes/basic/extensions/manage.php new file mode 100755 index 0000000000000000000000000000000000000000..b4dbeeb7fabc9d3142dd37df8a92a7aa65206de2 --- /dev/null +++ b/backend/themes/basic/extensions/manage.php @@ -0,0 +1,181 @@ +title = Yii::t('extensions', 'EXTENSIONS'); +$this->params['breadcrumbs'][] = $this->title; +$this->params['active'] = 'manage'; + +$css = <<registerCss($css); + +$this->registerJs($this->render('_script.js')); + +$iconHtml = [ + 'ok' => Html::icon('ok', ['class' => 'text-success']), + 'circle' => Html::icon('remove-circle', ['class' => 'text-danger']), + 'lock' => Html::icon('lock'), + 'repeat' => Html::icon('repeat'), + 'remove' => Html::icon('remove') +]; +?> +
+ +

+ 'extensions_enable', + 'class' => 'btn btn-default btn-sm' + ]) ?> + 'extensions_disable', + 'class' => 'btn btn-default btn-sm' + ]) ?> + 'extensions_refresh', + 'class' => 'btn btn-default btn-sm' + ]) ?> + 'extensions_uninstall', + 'class' => 'btn btn-default btn-sm' + ]) ?> +

+ + 'extensions_form']) . + GridView::widget([ + 'id' => 'extensions_list', + 'layout' => '{items}{pager}{summary}', + 'tableOptions' => ['class' => 'table table-striped'], + 'dataProvider' => $dataProvider, +// 'filterModel' => $searchModel, + 'columns' => [ + //['class' => 'yii\grid\SerialColumn'], + [ + 'class' => \yii\grid\CheckboxColumn::class, + 'headerOptions' => ['width' => '1%'], + 'checkboxOptions' => function ($model) { + return ['id' => 'cb' . $model->id]; + }, + ], + [ + 'attribute' => 'status', + 'format' => 'raw', + 'headerOptions' => ['width' => '2%', 'class' => 'text-nowrap'], + 'value' => function ($model) use ($iconHtml) { + $status = [ + 'enabled' => Html::a($iconHtml['ok'], '', [ + 'class' => 'btn btn-default btn-xs', + 'title' => Yii::t('extensions', 'DISABLE_EXTENSION'), + 'data' => [ + 'toggle' => 'tooltip', + 'method' => 'post', + 'params' => [ + 'id' => $model->id, + ], + ], + ]), + 'disabled' => Html::a($iconHtml['circle'], '', [ + 'class' => 'btn btn-default btn-xs', + 'title' => Yii::t('extensions', 'ENABLE_EXTENSION'), + 'data' => [ + 'toggle' => 'tooltip', + 'method' => 'post', + 'params' => [ + 'id' => $model->id, + ], + ], + ]), + 'protected' => Html::a($iconHtml['lock'], null, [ + 'class' => 'btn btn-default btn-xs disabled', + 'role' => 'button', + 'data-toggle' => 'tooltip', + 'title' => Yii::t('extensions', 'PROTECTED_EXTENSION'), + ]), + ]; + + return $model->protected === 0 ? ($model->status === 0 ? $status['disabled'] : $status['enabled']) : $status['protected']; + }, + ], + [ + 'attribute' => 'name', + 'format' => 'raw', + 'value' => function ($model) { + $desc = $model->manifest_cache['description']; + $langCat = $model->manifest_cache['langCat'] ?? null; + if ($model->type === 'theme') { + $client = \backend\models\Clients::findOne($model->client_id); + Yii::$app->i18n->translations[$langCat ?? '*'] = [ + 'class' => 'yii\i18n\PhpMessageSource', + 'basePath' => '@' . $client->name . '/themes/' . $model->element . '/messages' + ]; + } + $name = $langCat ? Yii::t($langCat, $model->name) : $model->name; + $description = $langCat ? Yii::t($langCat, $desc) : $desc; + + return Html::label(Html::tag('span', $name, [ + 'data-toggle' => 'tooltip', + 'title' => '' . $name . '
' . $description, + ]), 'cb' . $model->id); + }, + ], + [ + 'attribute' => 'type', + 'value' => function ($model) { + return Yii::t('extensions', strtoupper($model->type)); + }, + ], + [ + 'label' => Yii::t('extensions', 'VERSION'), + 'value' => function ($model) { + return $model->manifest_cache['version']; + }, + ], + [ + 'label' => Yii::t('extensions', 'DATE'), + 'headerOptions' => ['width' => '10%'], + 'value' => function ($model) { + return $model->manifest_cache['creationDate']; + }, + ], + [ + 'label' => Yii::t('extensions', 'AUTHOR'), + 'format' => 'raw', + 'headerOptions' => ['width' => '15%'], + 'value' => function ($model) { + return Html::tag('span', $model->manifest_cache['author'], [ + 'data-toggle' => 'tooltip', + 'title' => '' . Yii::t('extensions', 'AUTHOR_INFORMATION') . '
' . + $model->manifest_cache['authorEmail'] . '
' . $model->manifest_cache['authorUrl'], + ]); + }, + ], + [ + 'attribute' => 'client_id', + 'value' => function ($model) { + return $model->clients === null ? null : $model->clients->name; + }, + ], + [ + 'attribute' => 'package_id', + 'value' => function ($model) { + return $model->package_id === 0 ? '' : $model->package_id; + }, + ], + 'id', + ], + ]) . Html::endForm() + ?> + + +
diff --git a/backend/themes/basic/extensions/update.php b/backend/themes/basic/extensions/update.php new file mode 100755 index 0000000000000000000000000000000000000000..e0b45eaab3381ef8b4464cc383743a377fb1a659 --- /dev/null +++ b/backend/themes/basic/extensions/update.php @@ -0,0 +1,24 @@ +title = Yii::t('extensions', 'Update Extensions: {name}', [ + 'name' => $model->name, +]); +$this->params['breadcrumbs'][] = ['label' => Yii::t('extensions', 'Extensions'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('extensions', 'Update'); +$this->params['active'] = 'update'; +?> +
+ +

title) ?>

+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/themes/basic/languages/_form.php b/backend/themes/basic/languages/_form.php new file mode 100755 index 0000000000000000000000000000000000000000..98fb2b702ea5cdbeede562d5604216d7a82ce29b --- /dev/null +++ b/backend/themes/basic/languages/_form.php @@ -0,0 +1,37 @@ + + +
+ + + + field($model, 'code')->textInput(['maxlength' => true]) ?> + + field($model, 'title')->textInput(['maxlength' => true]) ?> + + field($model, 'title_native')->textInput(['maxlength' => true]) ?> + + field($model, 'sef')->textInput(['maxlength' => true]) ?> + + field($model, 'image')->textInput(['maxlength' => true]) ?> + + field($model, 'sitename')->textInput(['maxlength' => true]) ?> + + field($model, 'published')->textInput() ?> + + field($model, 'ordering')->textInput() ?> + +
+ 'btn btn-success']) ?> +
+ + + +
diff --git a/backend/themes/basic/languages/_search.php b/backend/themes/basic/languages/_search.php new file mode 100755 index 0000000000000000000000000000000000000000..ed743985cb62838e902e5e113767225999ceb66f --- /dev/null +++ b/backend/themes/basic/languages/_search.php @@ -0,0 +1,43 @@ + + + diff --git a/backend/themes/basic/languages/create.php b/backend/themes/basic/languages/create.php new file mode 100755 index 0000000000000000000000000000000000000000..8c485507bbe2141518f001a04b1157b74c7ba266 --- /dev/null +++ b/backend/themes/basic/languages/create.php @@ -0,0 +1,16 @@ +title = Yii::t('languages', 'Create Languages'); +$this->params['breadcrumbs'][] = ['label' => Yii::t('languages', 'Languages'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +?> +
+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/themes/basic/languages/index.php b/backend/themes/basic/languages/index.php new file mode 100755 index 0000000000000000000000000000000000000000..1d3e9defd42986cac61c004f2cff6a755b65a95e --- /dev/null +++ b/backend/themes/basic/languages/index.php @@ -0,0 +1,42 @@ +title = Yii::t('languages', 'Languages'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+ +

+ 'btn btn-success']) ?> +

+ + render('_search', ['model' => $searchModel]); ?> + + $dataProvider, + 'filterModel' => $searchModel, + 'columns' => [ + ['class' => 'yii\grid\SerialColumn'], + + 'id', + 'code', + 'title', + 'title_native', + //'sef', + //'image', + //'sitename', + //'published', + //'ordering', + + ['class' => 'yii\grid\ActionColumn'], + ], + ]); ?> + + +
diff --git a/backend/themes/basic/languages/update.php b/backend/themes/basic/languages/update.php new file mode 100755 index 0000000000000000000000000000000000000000..41e3ccfd6639bb7c01da53d71196d34494e9b817 --- /dev/null +++ b/backend/themes/basic/languages/update.php @@ -0,0 +1,21 @@ +title = Yii::t('languages', 'Update Languages: {name}', [ + 'name' => $model->title, +]); +$this->params['breadcrumbs'][] = ['label' => Yii::t('languages', 'Languages'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]]; +$this->params['breadcrumbs'][] = Yii::t('languages', 'Update'); +?> +
+ + render('_form', [ + 'model' => $model, + ]) ?> + +
diff --git a/backend/themes/basic/languages/view.php b/backend/themes/basic/languages/view.php new file mode 100755 index 0000000000000000000000000000000000000000..fda94f40650d2e0f0d319fbb96da2a76823579d0 --- /dev/null +++ b/backend/themes/basic/languages/view.php @@ -0,0 +1,42 @@ +title = $model->title; +$this->params['breadcrumbs'][] = ['label' => Yii::t('languages', 'Languages'), 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +\yii\web\YiiAsset::register($this); +?> +
+ +

+ $model->id], ['class' => 'btn btn-primary']) ?> + $model->id], [ + 'class' => 'btn btn-danger', + 'data' => [ + 'confirm' => Yii::t('languages', 'Are you sure you want to delete this item?'), + 'method' => 'post', + ], + ]) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'code', + 'title', + 'title_native', + 'sef', + 'image', + 'sitename', + 'published', + 'ordering', + ], + ]) ?> + +
diff --git a/backend/themes/basic/layouts/main.php b/backend/themes/basic/layouts/main.php new file mode 100755 index 0000000000000000000000000000000000000000..bb13186807f7a837628f0c2f01704e083a5d68bf --- /dev/null +++ b/backend/themes/basic/layouts/main.php @@ -0,0 +1,122 @@ +css[] = '/css/icomoon.css'; +$asset->css[] = 'css/common.css'; + +$items = Helper::getAssignedMenu('main', null, 2); +$submenusShow = $this->params['submenusShow'] ?? true; +$submenus = $submenusShow ? (Helper::addSubmenus($this->params['active'] ?? null) ?? []) : []; +$appName = Yii::t('common', 'APP_NAME'); +$client = Yii::t('common', strtoupper(Helper::getClient())); +$this->beginPage(); +?> + + + + + + +<?= Html::encode($this->title) ?> - <?= $appName ?> - <?= $client ?> +registerCsrfMetaTags(); +$this->head(); +?> + + + +beginBody() ?> +params['navShow'] ?? true) { + NavBar::begin([ + 'options' => ['class' => 'navbar-inverse navbar-fixed-top'], + 'brandLabel' => Icon::i('gl-fire', ['style' => 'color:#d9534f']), + 'innerContainerOptions' => ['class' => 'container-fluid'], + 'containerOptions' => ['id' => 'navbar'] + ]); + + echo Nav::widget([ + 'items' => $items, + 'activateItems' => false, + 'options' => ['class' => 'nav navbar-nav navbar-left'] + ]); + + $identity = Yii::$app->user->identity; + $userHear = Icon::i('gl-user', ['aria-hidden' => 'true']) + . Html::tag('strong', $identity->admin->name ?: $identity->username, ['class' => 'zmh-ml-7']); + + echo Nav::widget([ + 'items' => [ + ['label' => 'Icon', 'url' => ['/site/icon'], 'linkOptions' => ['target' => '_blank']], + ['label' => 'Gii', 'url' => ['/gii'], 'linkOptions' => ['target' => '_blank']], + [ + 'label' => 'siteHome', + 'url' => Yii::$app->urlManagerFrontend->hostInfo, + 'linkOptions' => ['target' => '_blank'] + ], + [ + 'label' => Icon::i('gl-user', ['aria-hidden' => 'true']), + 'url' => null, + 'items' => [ + Html::tag('li', $userHear, ['class' => 'dropdown-header']), + Html::tag('li', '', ['class' => 'divider']), + ['label' => Yii::t('site', 'EDIT_PROFILE'), 'url' => ['/admin/user/profile']], + Html::tag('li', '', ['class' => 'divider']), + [ + 'label' => Yii::t('site', 'LOGOUT'), + 'url' => ['/site/logout'], + 'linkOptions' => ['data-method' => 'post'] + ] + ], + 'linkOptions' => [ + 'role' => 'button', + 'aria-haspopup' => 'true' + ] + ] + ], + 'options' => ['class' => 'nav navbar-nav navbar-right'], + 'encodeLabels' => false, + 'activateItems' => false + ]); + NavBar::end(); +} +?> +
+
+ + + +
+ $this->params['breadcrumbs'] ?? []]) ?> + + +
+
+
+ +params['footerShow'] ?? true): ?> +
+
+

© name) ?>

+

+
+
+ +endBody() ?> + + + +endPage() ?> diff --git a/backend/themes/basic/media/css/common.css b/backend/themes/basic/media/css/common.css new file mode 100755 index 0000000000000000000000000000000000000000..cc44521b851b28717aefe767820aeb0dfb57ed1c --- /dev/null +++ b/backend/themes/basic/media/css/common.css @@ -0,0 +1,277 @@ +body { + padding-top: 50px; +} + +a:focus, .btn:focus:active, .btn:focus { + outline: none; +} + +/* + * Top navigation + * Hide default border to remove 1px line. + */ +.navbar-fixed-top { + border: 0; +} + +/* align the logout "link" (button in form) of the navbar */ +.nav li > form > button.logout { + border: none; + color: #333; + padding: 3px 20px; + width: 100%; + text-align: left; +} + +@media (max-width: 767px) { + .nav li > form > button.logout { + display: block; + text-align: left; + width: 100%; + padding: 10px 0; + } +} + +.nav li > form > button.logout:focus, +.nav li > form > button.logout:hover { + text-decoration: none; + color: #262626; + background-color: #f5f5f5; +} + +.nav li > form > button.logout:focus { + outline: none; +} + +#navbar .navbar-right .dropdown .dropdown-menu .dropdown-header { + color: #333; + font-size: 13px; +} + + +/* Hide for mobile, show later */ +.sidebar { + display: none; +} + +@media (min-width: 768px) { + .sidebar { + position: fixed; + top: 51px; + bottom: 0; + left: 0; + z-index: 1000; + display: block; + padding: 20px; + overflow-x: hidden; + overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ + background-color: #f5f5f5; + border-right: 1px solid #eee; + } +} + +/* Sidebar navigation */ +.nav-sidebar { + margin-right: -21px; /* 20px padding + 1px border */ + /* margin-bottom: 20px;*/ + margin-left: -20px; +} + +.nav-sidebar > li > a { + padding: 7px 20px; +} + +.nav-sidebar > .active > a, +.nav-sidebar > .active > a:hover, +.nav-sidebar > .active > a:focus { + color: #fff; + background-color: #428bca; +} + +.nav-sidebar > li > a > i { + margin-right: 5px; +} + +.nav-sidebar > li.nav-header { + font-weight: bold; + color: #999; + line-height: 18px; + margin-top: 10px; + padding: 0 20px; + display: block; +} + +.nav-sidebar > li.nav-header:first-child { + margin-top: 0; +} + +.navbar-inverse .navbar-nav > li > a, +.navbar-inverse .btn-link { + color: #d9d9d9; +} + +.dropdown-menu .divider { + margin: 5px 0; +} + +/* + * Main content + */ +.main { + padding: 20px; +} + +@media (min-width: 768px) { + .main { + padding-right: 40px; + padding-left: 40px; + } +} + +.main .page-header { + margin-top: 0; +} + +.zmh-main { + padding-bottom: 60px; +} + +.zmh-ml-7 { + margin-left: 7px; +} + +.footer { + width: 100%; + height: 60px; + position: fixed; + bottom: 0; + z-index: 1001; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + padding-top: 20px; +} + +/* + × extensions/installer +*/ +.extensions-installer .nav-tabs { + margin-bottom: 18px; +} + +#dragarea { + background-color: #fafbfc; + border: 1px dashed #999; + box-sizing: border-box; + padding: 5% 0; + transition: all 0.2s ease 0s; + width: 100%; +} + +#dragarea p.lead { + color: #999; +} + +#dragarea.hover { + border-color: #666; + background-color: #eee; +} + +#dragarea.hover #upload-icon, #dragarea p.lead { + color: #666; +} + +#upload-icon { + font-size: 48px; + width: auto; + height: auto; + margin: 0; + line-height: 175%; + color: #999; + transition: all .2s; +} + +.extensions-installer .control-label { + float: left; + font-weight: normal; + width: 160px; + padding-top: 5px; + padding-right: 5px; +} + +.extensions-installer .controls { + margin-left: 180px; +} + +.extensions-installer .controls input { + border: 1px solid #ccc; + padding: 4px 6px; + color: #555; + border-radius: 3px; + width: 40%; +} + +.extensions-installer .controls input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; +} + +.form-actions { + padding: 17px 20px 18px 180px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f0f0f0; + border-top: 1px solid #e5e5e5; +} + +.btn-toolbar > .btn { + margin-right: 5px; +} + +.icon-default { + color: #c67605; +} +.table a.desc::after{ + font-family: 'Glyphicons Halflings'; + content: '\e252'; + font-weight: 400; + line-height: 1; + font-style: normal; + display: inline-block; + font-size: 50%; + position: relative; + top: 1px; + padding-left: 2px; + padding-right: 2px; +} +.table a.asc::after{ + font-family: 'Glyphicons Halflings'; + content: '\e253'; + font-weight: 400; + line-height: 1; + font-style: normal; + display: inline-block; + font-size: 50%; + position: relative; + top: 1px; + padding-left: 2px; + padding-right: 2px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td{ + border-top: none; + border-bottom: 1px solid #dddddd; +} +.pagination{float: right;margin: 15px 0;} +.summary{display: inline-block;float: left;} +.form-group-default{margin-bottom: 15px;} + +form .form-inline .control-label{padding-right: 10px;} +form .form-inline .form-control{width: 500px;max-width: 100%;} + +.modal-header .close{outline: none;} +.embed-responsive-1by1{padding-bottom: 100%;} \ No newline at end of file diff --git a/backend/themes/basic/media/css/site.css b/backend/themes/basic/media/css/site.css new file mode 100755 index 0000000000000000000000000000000000000000..ada6613939b114ec18a538385e46e07bfcc8e7ed --- /dev/null +++ b/backend/themes/basic/media/css/site.css @@ -0,0 +1,49 @@ +body { + padding-top: 40px; + padding-bottom: 40px; + background-color: #eee; +} +.form-signin { + max-width: 330px; + padding: 15px; + margin: 0 auto; +} +.form-signin .form-signin-heading, +.form-signin .checkbox { + margin-bottom: 10px; +} +.form-signin .checkbox { + font-weight: normal; +} +.form-signin .form-control { + position: relative; + height: auto; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 10px; + font-size: 16px; +} +.form-signin .form-control:focus { + z-index: 2; +} +.form-signin input[type="text"] { + margin-bottom: -1px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.form-signin input[type="password"] { + margin-bottom: 10px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.footer { + width: 100%; + height: 60px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + padding-top: 20px; + position: fixed; + bottom: 0; +} diff --git a/backend/themes/basic/messages/zh-CN/theme_basic.php b/backend/themes/basic/messages/zh-CN/theme_basic.php new file mode 100755 index 0000000000000000000000000000000000000000..8c74a35d839895feb13fea92453509f4ce15c83f --- /dev/null +++ b/backend/themes/basic/messages/zh-CN/theme_basic.php @@ -0,0 +1,9 @@ + '基本(basic)后台管理主题', + 'THEME_XML_DESCRIPTION' => '基本(basic)是一个管理后台的基本主题模板,基于 Bootstrap 3.4.1 编辑的主题', + 'POSITION_CONTENT-HEADER' => '内容头部位置', + 'POSITION_CPANEL' => '控制面板', + 'POSITION_FOOTER' => '页脚位置' +]; diff --git a/backend/themes/basic/site/error.php b/backend/themes/basic/site/error.php new file mode 100755 index 0000000000000000000000000000000000000000..fd20842b29a7407d8baf092a066ebda0a5d235b9 --- /dev/null +++ b/backend/themes/basic/site/error.php @@ -0,0 +1,33 @@ +title = $name; + +if (Yii::$app->user->isGuest){ + $this->params['navShow'] = false; + $this->params['submenusShow'] = false; + $this->params['breadcrumbs'] = false; +} +?> +
+ +

title) ?>

+ +
+ +
+ +

+ The above error occurred while the Web server was processing your request. +

+

+ Please contact us if you think this is a server error. Thank you. +

+ +
diff --git a/backend/themes/basic/site/icon.php b/backend/themes/basic/site/icon.php new file mode 100755 index 0000000000000000000000000000000000000000..fdb4704ae41b2ed7b6b17bb71af8f2864ac09e47 --- /dev/null +++ b/backend/themes/basic/site/icon.php @@ -0,0 +1,78 @@ +title = Yii::t('site', 'FONT_ICON'); +$this->params['breadcrumbs'][] = $this->title; + +$css = <<registerCss($css); + +$js = <<registerJs($js); +?> +
+
+
+ +
+
+
    + $unicode): ?> +
  • +
    +
    +
    Unicode:
    +
  • + +
+
+
+
\ No newline at end of file diff --git a/backend/themes/basic/site/index.php b/backend/themes/basic/site/index.php new file mode 100755 index 0000000000000000000000000000000000000000..91c44f264e8736feb8f8ea84c8c7928e497e3b49 --- /dev/null +++ b/backend/themes/basic/site/index.php @@ -0,0 +1,14 @@ +title = Yii::t('site', 'CONTROL_PANEL'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+
+
+
+
diff --git a/backend/themes/basic/site/login.php b/backend/themes/basic/site/login.php new file mode 100755 index 0000000000000000000000000000000000000000..a82b5b25293f80fd195dae416ac10fc58fd03f6d --- /dev/null +++ b/backend/themes/basic/site/login.php @@ -0,0 +1,63 @@ +addCss('site.css'); + +$this->title = Yii::t('site', 'LOGIN'); + +$lockIcon = Html::tag('span', '', ['class' => 'glyphicon glyphicon-lock']) . ' '; + +$this->beginPage(); +?> + + + + + + + + <?= Html::encode($this->title) ?> + head() ?> + + + + beginBody() ?> + +
+ 'login-form', 'options' => ['class' => 'form-signin']]) ?> + + + field($model, 'username')->textInput(['autofocus' => true]) ?> + + field($model, 'password')->passwordInput() ?> + +
+ field($model, 'rememberMe')->checkbox() ?> +
+ + 'btn btn-lg btn-primary btn-block']) ?> + + + + +
+ endBody() ?> + + +endPage() ?> diff --git a/backend/themes/basic/site/sysinfo.php b/backend/themes/basic/site/sysinfo.php new file mode 100755 index 0000000000000000000000000000000000000000..d4a67d967c8133c2985e008b531330b792224278 --- /dev/null +++ b/backend/themes/basic/site/sysinfo.php @@ -0,0 +1,66 @@ +title = Yii::t('site', 'SYSTEM_INFORMATION'); +$this->params['breadcrumbs'][] = $this->title; + +$css = <<registerCss($css); +?> + +
+ + + + + +
+ $item) { + $options = [ + 'id' => $key, + 'class' => 'tab-pane' . ($key == 'info' ? ' active' : ''), + 'role' => 'tabpanel' + ]; + + $content = Html::tag('h3', $msg[$key], ['class' => 'page-header']); + if ($key === 'phpInfo') { + $content .= $item; + } else { + $settingMsg = Yii::t('site', 'SETTING'); + $valueMsg = Yii::t('site', 'VALUE'); + $thContent = Html::tag('th', $settingMsg, ['width' => '20%']) . Html::tag('th', $valueMsg); + $theadContent = Html::tag('thead', Html::tag('tr', $thContent)); + $itemContent = ''; + foreach ($item as $k => $v) { + $setting = Html::tag('td', $msg[$k]); + $value = Html::tag('td', $v); + $itemContent .= Html::tag('tr', $setting . $value); + } + $tbodyContent = Html::tag('tbody', $itemContent); + $content .= Html::tag('table', $theadContent . $tbodyContent, ['class' => 'table table-striped']); + } + echo Html::tag('div', $content, $options); + } + ?> +
+ +
diff --git a/backend/themes/basic/template_preview.png b/backend/themes/basic/template_preview.png new file mode 100755 index 0000000000000000000000000000000000000000..d6621508b328e0ca323fac1f2eb93750db8547ff Binary files /dev/null and b/backend/themes/basic/template_preview.png differ diff --git a/backend/themes/basic/template_thumbnail.png b/backend/themes/basic/template_thumbnail.png new file mode 100755 index 0000000000000000000000000000000000000000..29956b3f838d13f1264d5b3118b3087bf4d54f2e Binary files /dev/null and b/backend/themes/basic/template_thumbnail.png differ diff --git a/backend/themes/basic/test/form.php b/backend/themes/basic/test/form.php new file mode 100755 index 0000000000000000000000000000000000000000..b61b8f594a379bed41b5829a9c4f60f9f2812043 --- /dev/null +++ b/backend/themes/basic/test/form.php @@ -0,0 +1,24 @@ +title = 'Test Form'; +?> + + 'test_form']); ?> +field($model, 'title', 'RadioList', ['setupParams' => [['a'=>'b','b'=>'c','c'=>'d']]]) ?> + +field($model,'content','Editor') ?> +field($model,'author','text') ?> +field($model,'date','datetime') ?> + +
+ 'btn btn-primary']) ?> +
+ + diff --git a/backend/themes/basic/themeDetails.xml b/backend/themes/basic/themeDetails.xml new file mode 100755 index 0000000000000000000000000000000000000000..b1bfd878975d74adf3f1eb6d759dde832f68a62b --- /dev/null +++ b/backend/themes/basic/themeDetails.xml @@ -0,0 +1,51 @@ + + + THEME_BASIC + basic + 2019/10/10 + FireLoong + fireloong@foxmail.com + Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + 1.0.0 + THEME_XML_DESCRIPTION + + LICENSE + README.md + themeDetails.xml + template_preview.png + template_thumbnail.png + assets + cache + clients + extensions + languages + layouts + media + messages + site + test + + + theme_basic.php + + + content-header + cpanel + footer + + + +
+ + +
+
+
+
\ No newline at end of file diff --git a/backend/themes/basic/widgets/alert/Widget.php b/backend/themes/basic/widgets/alert/Widget.php new file mode 100755 index 0000000000000000000000000000000000000000..c1d3e77715a1a0fda4329f1ce257fcdc6e3acd30 --- /dev/null +++ b/backend/themes/basic/widgets/alert/Widget.php @@ -0,0 +1,95 @@ + $value, where: + * - key: the name of the session flash variable + * - value: the bootstrap alert type (i.e. danger, success, info, warning) + */ + public $alertTypes = [ + 'error' => 'alert-danger', + 'danger' => 'alert-danger', + 'success' => 'alert-success', + 'info' => 'alert-info', + 'warning' => 'alert-warning', + 'panel' => 'panel panel-default', + 'confirm' => 'alert-warning' + ]; + + /** + * @var array the options for rendering the close button tag. + * Array will be passed to [[\yii\bootstrap\Alert::closeButton]]. + */ + public $closeButton = []; + + /** + * {@inheritdoc} + */ + public function run() + { + $session = Yii::$app->session; + $flashes = $session->getAllFlashes(); + $appendClass = isset($this->options['class']) ? ' ' . $this->options['class'] : ''; + + foreach ($flashes as $type => $flash) { + if (!isset($this->alertTypes[$type])) { + continue; + } + + foreach ((array)$flash as $i => $message) { + if ($type == 'panel') { + $content = Html::tag('div', $message, ['class' => 'panel-body']); + echo Html::tag('div', $content, ['class' => $this->alertTypes[$type] . $appendClass]); + } elseif ($type == 'confirm') { + echo \yii\bootstrap\Alert::widget([ + 'body' => Html::tag('p', $message, ['style' => 'margin-bottom: 10px;']) . + Html::tag('div', Html::a(Yii::t('common', 'No'), $flashes['linkNo'], [ + 'class' => 'btn btn-default', + 'role' => 'button' + ]) . Html::a(Yii::t('common', 'Yes'), $flashes['linkYes'], [ + 'class' => 'btn btn-primary', + 'style' => 'margin-left:15px;', + 'data' => [ + 'method' => 'post', + 'params' => [ + 'action' => 'continue' + ] + ] + ]) + ), + 'closeButton' => $this->closeButton, + 'options' => array_merge($this->options, [ + 'id' => $this->getId() . '-' . $type . '-' . $i, + 'class' => $this->alertTypes[$type] . $appendClass + ]) + ]); + } else { + echo \yii\bootstrap\Alert::widget([ + 'body' => $message, + 'closeButton' => $this->closeButton, + 'options' => array_merge($this->options, [ + 'id' => $this->getId() . '-' . $type . '-' . $i, + 'class' => $this->alertTypes[$type] . $appendClass, + ]), + ]); + } + } + + $session->removeFlash($type); + } + } +} diff --git a/backend/themes/basic/widgets/latest_actions/run.php b/backend/themes/basic/widgets/latest_actions/run.php new file mode 100755 index 0000000000000000000000000000000000000000..8b5e049603ed381ce30c88ae69308529cc430403 --- /dev/null +++ b/backend/themes/basic/widgets/latest_actions/run.php @@ -0,0 +1,25 @@ + +
+
+ +
+ +
+ + + + message, true); ?> + + + + + + +
info, $message) ?>formatter->asDatetime($log->log_date) ?>
+
+
diff --git a/backend/web/css/icomoon.css b/backend/web/css/icomoon.css new file mode 100755 index 0000000000000000000000000000000000000000..797de4a6761e53eaec24c50e499888c35f39509c --- /dev/null +++ b/backend/web/css/icomoon.css @@ -0,0 +1,4811 @@ +@font-face { + font-family: 'icomoon'; + src: url('../fonts/icomoon.eot?xuxlu6'); + src: url('../fonts/icomoon.eot?xuxlu6#iefix') format('embedded-opentype'), + url('../fonts/icomoon.ttf?xuxlu6') format('truetype'), + url('../fonts/icomoon.woff?xuxlu6') format('woff'), + url('../fonts/icomoon.svg?xuxlu6#icomoon') format('svg'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +[class^="icon-"], [class*=" icon-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: 'icomoon' !important; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +[class^="icon-gl-"], [class*=" icon-gl-"]{ + position: relative; + top: 1px; +} +.icon-sm{ + font-size: 0.75em; +} +.icon-lg { + font-size: 1.33333333em; +} +.icon-2x { + font-size: 2em; +} +.icon-3x { + font-size: 3em; +} +.icon-4x { + font-size: 4em; +} +.icon-5x { + font-size: 5em; +} +.icon-fw { + width: 1.28571429em; + text-align: center; +} +.icon-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.icon-ul > li { + position: relative; +} +.icon-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.icon-li.icon-lg { + left: -1.85714286em; +} +.icon-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.pull-left[class^="icon-"],.pull-left[class*="icon-"] { + margin-right: .3em; +} +.pull-right[class^="icon-"],.pull-right[class*="icon-"] { + margin-left: .3em; +} +.icon-spin { + -webkit-animation: icon-spin 2s infinite linear; + animation: icon-spin 2s infinite linear; +} +.icon-pulse { + -webkit-animation: icon-spin 1s infinite steps(8); + animation: icon-spin 1s infinite steps(8); +} +@-webkit-keyframes icon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes icon-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.icon-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.icon-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.icon-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.icon-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .icon-rotate-90, +:root .icon-rotate-180, +:root .icon-rotate-270, +:root .icon-flip-horizontal, +:root .icon-flip-vertical { + filter: none; +} +.icon-stack-init { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.icon-stack-1x, +.icon-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.icon-stack-1x { + line-height: inherit; +} +.icon-stack-2x { + font-size: 2em; +} +.icon-inverse { + color: #ffffff; +} + + +.icon-home:before { + content: "\e900"; +} +.icon-home2:before { + content: "\e901"; +} +.icon-home3:before { + content: "\e902"; +} +.icon-office:before { + content: "\e903"; +} +.icon-newspaper:before { + content: "\e904"; +} +.icon-pencil:before { + content: "\e905"; +} +.icon-pencil2:before { + content: "\e906"; +} +.icon-quill:before { + content: "\e907"; +} +.icon-pen:before { + content: "\e908"; +} +.icon-blog:before { + content: "\e909"; +} +.icon-eyedropper:before { + content: "\e90a"; +} +.icon-droplet:before { + content: "\e90b"; +} +.icon-paint-format:before { + content: "\e90c"; +} +.icon-image:before { + content: "\e90d"; +} +.icon-images:before { + content: "\e90e"; +} +.icon-camera:before { + content: "\e90f"; +} +.icon-headphones:before { + content: "\e910"; +} +.icon-music:before { + content: "\e911"; +} +.icon-play:before { + content: "\e912"; +} +.icon-film:before { + content: "\e913"; +} +.icon-video-camera:before { + content: "\e914"; +} +.icon-dice:before { + content: "\e915"; +} +.icon-pacman:before { + content: "\e916"; +} +.icon-spades:before { + content: "\e917"; +} +.icon-clubs:before { + content: "\e918"; +} +.icon-diamonds:before { + content: "\e919"; +} +.icon-bullhorn:before { + content: "\e91a"; +} +.icon-connection:before { + content: "\e91b"; +} +.icon-podcast:before { + content: "\e91c"; +} +.icon-feed:before { + content: "\e91d"; +} +.icon-mic:before { + content: "\e91e"; +} +.icon-book:before { + content: "\e91f"; +} +.icon-books:before { + content: "\e920"; +} +.icon-library:before { + content: "\e921"; +} +.icon-file-text:before { + content: "\e922"; +} +.icon-profile:before { + content: "\e923"; +} +.icon-file-empty:before { + content: "\e924"; +} +.icon-files-empty:before { + content: "\e925"; +} +.icon-file-text2:before { + content: "\e926"; +} +.icon-file-picture:before { + content: "\e927"; +} +.icon-file-music:before { + content: "\e928"; +} +.icon-file-play:before { + content: "\e929"; +} +.icon-file-video:before { + content: "\e92a"; +} +.icon-file-zip:before { + content: "\e92b"; +} +.icon-copy:before { + content: "\e92c"; +} +.icon-paste:before { + content: "\e92d"; +} +.icon-stack:before { + content: "\e92e"; +} +.icon-folder:before { + content: "\e92f"; +} +.icon-folder-open:before { + content: "\e930"; +} +.icon-folder-plus:before { + content: "\e931"; +} +.icon-folder-minus:before { + content: "\e932"; +} +.icon-folder-download:before { + content: "\e933"; +} +.icon-folder-upload:before { + content: "\e934"; +} +.icon-price-tag:before { + content: "\e935"; +} +.icon-price-tags:before { + content: "\e936"; +} +.icon-barcode:before { + content: "\e937"; +} +.icon-qrcode:before { + content: "\e938"; +} +.icon-ticket:before { + content: "\e939"; +} +.icon-cart:before { + content: "\e93a"; +} +.icon-coin-dollar:before { + content: "\e93b"; +} +.icon-coin-euro:before { + content: "\e93c"; +} +.icon-coin-pound:before { + content: "\e93d"; +} +.icon-coin-yen:before { + content: "\e93e"; +} +.icon-credit-card:before { + content: "\e93f"; +} +.icon-calculator:before { + content: "\e940"; +} +.icon-lifebuoy:before { + content: "\e941"; +} +.icon-phone:before { + content: "\e942"; +} +.icon-phone-hang-up:before { + content: "\e943"; +} +.icon-address-book:before { + content: "\e944"; +} +.icon-envelop:before { + content: "\e945"; +} +.icon-pushpin:before { + content: "\e946"; +} +.icon-location:before { + content: "\e947"; +} +.icon-location2:before { + content: "\e948"; +} +.icon-compass:before { + content: "\e949"; +} +.icon-compass2:before { + content: "\e94a"; +} +.icon-map:before { + content: "\e94b"; +} +.icon-map2:before { + content: "\e94c"; +} +.icon-history:before { + content: "\e94d"; +} +.icon-clock:before { + content: "\e94e"; +} +.icon-clock2:before { + content: "\e94f"; +} +.icon-alarm:before { + content: "\e950"; +} +.icon-bell:before { + content: "\e951"; +} +.icon-stopwatch:before { + content: "\e952"; +} +.icon-calendar:before { + content: "\e953"; +} +.icon-printer:before { + content: "\e954"; +} +.icon-keyboard:before { + content: "\e955"; +} +.icon-display:before { + content: "\e956"; +} +.icon-laptop:before { + content: "\e957"; +} +.icon-mobile:before { + content: "\e958"; +} +.icon-mobile2:before { + content: "\e959"; +} +.icon-tablet:before { + content: "\e95a"; +} +.icon-tv:before { + content: "\e95b"; +} +.icon-drawer:before { + content: "\e95c"; +} +.icon-drawer2:before { + content: "\e95d"; +} +.icon-box-add:before { + content: "\e95e"; +} +.icon-box-remove:before { + content: "\e95f"; +} +.icon-download:before { + content: "\e960"; +} +.icon-upload:before { + content: "\e961"; +} +.icon-floppy-disk:before { + content: "\e962"; +} +.icon-drive:before { + content: "\e963"; +} +.icon-database:before { + content: "\e964"; +} +.icon-undo:before { + content: "\e965"; +} +.icon-redo:before { + content: "\e966"; +} +.icon-undo2:before { + content: "\e967"; +} +.icon-redo2:before { + content: "\e968"; +} +.icon-forward:before { + content: "\e969"; +} +.icon-reply:before { + content: "\e96a"; +} +.icon-bubble:before { + content: "\e96b"; +} +.icon-bubbles:before { + content: "\e96c"; +} +.icon-bubbles2:before { + content: "\e96d"; +} +.icon-bubble2:before { + content: "\e96e"; +} +.icon-bubbles3:before { + content: "\e96f"; +} +.icon-bubbles4:before { + content: "\e970"; +} +.icon-user:before { + content: "\e971"; +} +.icon-users:before { + content: "\e972"; +} +.icon-user-plus:before { + content: "\e973"; +} +.icon-user-minus:before { + content: "\e974"; +} +.icon-user-check:before { + content: "\e975"; +} +.icon-user-tie:before { + content: "\e976"; +} +.icon-quotes-left:before { + content: "\e977"; +} +.icon-quotes-right:before { + content: "\e978"; +} +.icon-hour-glass:before { + content: "\e979"; +} +.icon-spinner:before { + content: "\e97a"; +} +.icon-spinner2:before { + content: "\e97b"; +} +.icon-spinner3:before { + content: "\e97c"; +} +.icon-spinner4:before { + content: "\e97d"; +} +.icon-spinner5:before { + content: "\e97e"; +} +.icon-spinner6:before { + content: "\e97f"; +} +.icon-spinner7:before { + content: "\e980"; +} +.icon-spinner8:before { + content: "\e981"; +} +.icon-spinner9:before { + content: "\e982"; +} +.icon-spinner10:before { + content: "\e983"; +} +.icon-spinner11:before { + content: "\e984"; +} +.icon-binoculars:before { + content: "\e985"; +} +.icon-search:before { + content: "\e986"; +} +.icon-zoom-in:before { + content: "\e987"; +} +.icon-zoom-out:before { + content: "\e988"; +} +.icon-enlarge:before { + content: "\e989"; +} +.icon-shrink:before { + content: "\e98a"; +} +.icon-enlarge2:before { + content: "\e98b"; +} +.icon-shrink2:before { + content: "\e98c"; +} +.icon-key:before { + content: "\e98d"; +} +.icon-key2:before { + content: "\e98e"; +} +.icon-lock:before { + content: "\e98f"; +} +.icon-unlocked:before { + content: "\e990"; +} +.icon-wrench:before { + content: "\e991"; +} +.icon-equalizer:before { + content: "\e992"; +} +.icon-equalizer2:before { + content: "\e993"; +} +.icon-cog:before { + content: "\e994"; +} +.icon-cogs:before { + content: "\e995"; +} +.icon-hammer:before { + content: "\e996"; +} +.icon-magic-wand:before { + content: "\e997"; +} +.icon-aid-kit:before { + content: "\e998"; +} +.icon-bug:before { + content: "\e999"; +} +.icon-pie-chart:before { + content: "\e99a"; +} +.icon-stats-dots:before { + content: "\e99b"; +} +.icon-stats-bars:before { + content: "\e99c"; +} +.icon-stats-bars2:before { + content: "\e99d"; +} +.icon-trophy:before { + content: "\e99e"; +} +.icon-gift:before { + content: "\e99f"; +} +.icon-glass:before { + content: "\e9a0"; +} +.icon-glass2:before { + content: "\e9a1"; +} +.icon-mug:before { + content: "\e9a2"; +} +.icon-spoon-knife:before { + content: "\e9a3"; +} +.icon-leaf:before { + content: "\e9a4"; +} +.icon-rocket:before { + content: "\e9a5"; +} +.icon-meter:before { + content: "\e9a6"; +} +.icon-meter2:before { + content: "\e9a7"; +} +.icon-hammer2:before { + content: "\e9a8"; +} +.icon-fire:before { + content: "\e9a9"; +} +.icon-lab:before { + content: "\e9aa"; +} +.icon-magnet:before { + content: "\e9ab"; +} +.icon-bin:before { + content: "\e9ac"; +} +.icon-bin2:before { + content: "\e9ad"; +} +.icon-briefcase:before { + content: "\e9ae"; +} +.icon-airplane:before { + content: "\e9af"; +} +.icon-truck:before { + content: "\e9b0"; +} +.icon-road:before { + content: "\e9b1"; +} +.icon-accessibility:before { + content: "\e9b2"; +} +.icon-target:before { + content: "\e9b3"; +} +.icon-shield:before { + content: "\e9b4"; +} +.icon-power:before { + content: "\e9b5"; +} +.icon-switch:before { + content: "\e9b6"; +} +.icon-power-cord:before { + content: "\e9b7"; +} +.icon-clipboard:before { + content: "\e9b8"; +} +.icon-list-numbered:before { + content: "\e9b9"; +} +.icon-list:before { + content: "\e9ba"; +} +.icon-list2:before { + content: "\e9bb"; +} +.icon-tree:before { + content: "\e9bc"; +} +.icon-menu:before { + content: "\e9bd"; +} +.icon-menu2:before { + content: "\e9be"; +} +.icon-menu3:before { + content: "\e9bf"; +} +.icon-menu4:before { + content: "\e9c0"; +} +.icon-cloud:before { + content: "\e9c1"; +} +.icon-cloud-download:before { + content: "\e9c2"; +} +.icon-cloud-upload:before { + content: "\e9c3"; +} +.icon-cloud-check:before { + content: "\e9c4"; +} +.icon-download2:before { + content: "\e9c5"; +} +.icon-upload2:before { + content: "\e9c6"; +} +.icon-download3:before { + content: "\e9c7"; +} +.icon-upload3:before { + content: "\e9c8"; +} +.icon-sphere:before { + content: "\e9c9"; +} +.icon-earth:before { + content: "\e9ca"; +} +.icon-link:before { + content: "\e9cb"; +} +.icon-flag:before { + content: "\e9cc"; +} +.icon-attachment:before { + content: "\e9cd"; +} +.icon-eye:before { + content: "\e9ce"; +} +.icon-eye-plus:before { + content: "\e9cf"; +} +.icon-eye-minus:before { + content: "\e9d0"; +} +.icon-eye-blocked:before { + content: "\e9d1"; +} +.icon-bookmark:before { + content: "\e9d2"; +} +.icon-bookmarks:before { + content: "\e9d3"; +} +.icon-sun:before { + content: "\e9d4"; +} +.icon-contrast:before { + content: "\e9d5"; +} +.icon-brightness-contrast:before { + content: "\e9d6"; +} +.icon-star-empty:before { + content: "\e9d7"; +} +.icon-star-half:before { + content: "\e9d8"; +} +.icon-star-full:before { + content: "\e9d9"; +} +.icon-heart:before { + content: "\e9da"; +} +.icon-heart-broken:before { + content: "\e9db"; +} +.icon-man:before { + content: "\e9dc"; +} +.icon-woman:before { + content: "\e9dd"; +} +.icon-man-woman:before { + content: "\e9de"; +} +.icon-happy:before { + content: "\e9df"; +} +.icon-happy2:before { + content: "\e9e0"; +} +.icon-smile:before { + content: "\e9e1"; +} +.icon-smile2:before { + content: "\e9e2"; +} +.icon-tongue:before { + content: "\e9e3"; +} +.icon-tongue2:before { + content: "\e9e4"; +} +.icon-sad:before { + content: "\e9e5"; +} +.icon-sad2:before { + content: "\e9e6"; +} +.icon-wink:before { + content: "\e9e7"; +} +.icon-wink2:before { + content: "\e9e8"; +} +.icon-grin:before { + content: "\e9e9"; +} +.icon-grin2:before { + content: "\e9ea"; +} +.icon-cool:before { + content: "\e9eb"; +} +.icon-cool2:before { + content: "\e9ec"; +} +.icon-angry:before { + content: "\e9ed"; +} +.icon-angry2:before { + content: "\e9ee"; +} +.icon-evil:before { + content: "\e9ef"; +} +.icon-evil2:before { + content: "\e9f0"; +} +.icon-shocked:before { + content: "\e9f1"; +} +.icon-shocked2:before { + content: "\e9f2"; +} +.icon-baffled:before { + content: "\e9f3"; +} +.icon-baffled2:before { + content: "\e9f4"; +} +.icon-confused:before { + content: "\e9f5"; +} +.icon-confused2:before { + content: "\e9f6"; +} +.icon-neutral:before { + content: "\e9f7"; +} +.icon-neutral2:before { + content: "\e9f8"; +} +.icon-hipster:before { + content: "\e9f9"; +} +.icon-hipster2:before { + content: "\e9fa"; +} +.icon-wondering:before { + content: "\e9fb"; +} +.icon-wondering2:before { + content: "\e9fc"; +} +.icon-sleepy:before { + content: "\e9fd"; +} +.icon-sleepy2:before { + content: "\e9fe"; +} +.icon-frustrated:before { + content: "\e9ff"; +} +.icon-frustrated2:before { + content: "\ea00"; +} +.icon-crying:before { + content: "\ea01"; +} +.icon-crying2:before { + content: "\ea02"; +} +.icon-point-up:before { + content: "\ea03"; +} +.icon-point-right:before { + content: "\ea04"; +} +.icon-point-down:before { + content: "\ea05"; +} +.icon-point-left:before { + content: "\ea06"; +} +.icon-warning:before { + content: "\ea07"; +} +.icon-notification:before { + content: "\ea08"; +} +.icon-question:before { + content: "\ea09"; +} +.icon-plus:before { + content: "\ea0a"; +} +.icon-minus:before { + content: "\ea0b"; +} +.icon-info:before { + content: "\ea0c"; +} +.icon-cancel-circle:before { + content: "\ea0d"; +} +.icon-blocked:before { + content: "\ea0e"; +} +.icon-cross:before { + content: "\ea0f"; +} +.icon-checkmark:before { + content: "\ea10"; +} +.icon-checkmark2:before { + content: "\ea11"; +} +.icon-spell-check:before { + content: "\ea12"; +} +.icon-enter:before { + content: "\ea13"; +} +.icon-exit:before { + content: "\ea14"; +} +.icon-play2:before { + content: "\ea15"; +} +.icon-pause:before { + content: "\ea16"; +} +.icon-stop:before { + content: "\ea17"; +} +.icon-previous:before { + content: "\ea18"; +} +.icon-next:before { + content: "\ea19"; +} +.icon-backward:before { + content: "\ea1a"; +} +.icon-forward2:before { + content: "\ea1b"; +} +.icon-play3:before { + content: "\ea1c"; +} +.icon-pause2:before { + content: "\ea1d"; +} +.icon-stop2:before { + content: "\ea1e"; +} +.icon-backward2:before { + content: "\ea1f"; +} +.icon-forward3:before { + content: "\ea20"; +} +.icon-first:before { + content: "\ea21"; +} +.icon-last:before { + content: "\ea22"; +} +.icon-previous2:before { + content: "\ea23"; +} +.icon-next2:before { + content: "\ea24"; +} +.icon-eject:before { + content: "\ea25"; +} +.icon-volume-high:before { + content: "\ea26"; +} +.icon-volume-medium:before { + content: "\ea27"; +} +.icon-volume-low:before { + content: "\ea28"; +} +.icon-volume-mute:before { + content: "\ea29"; +} +.icon-volume-mute2:before { + content: "\ea2a"; +} +.icon-volume-increase:before { + content: "\ea2b"; +} +.icon-volume-decrease:before { + content: "\ea2c"; +} +.icon-loop:before { + content: "\ea2d"; +} +.icon-loop2:before { + content: "\ea2e"; +} +.icon-infinite:before { + content: "\ea2f"; +} +.icon-shuffle:before { + content: "\ea30"; +} +.icon-arrow-up-left:before { + content: "\ea31"; +} +.icon-arrow-up:before { + content: "\ea32"; +} +.icon-arrow-up-right:before { + content: "\ea33"; +} +.icon-arrow-right:before { + content: "\ea34"; +} +.icon-arrow-down-right:before { + content: "\ea35"; +} +.icon-arrow-down:before { + content: "\ea36"; +} +.icon-arrow-down-left:before { + content: "\ea37"; +} +.icon-arrow-left:before { + content: "\ea38"; +} +.icon-arrow-up-left2:before { + content: "\ea39"; +} +.icon-arrow-up2:before { + content: "\ea3a"; +} +.icon-arrow-up-right2:before { + content: "\ea3b"; +} +.icon-arrow-right2:before { + content: "\ea3c"; +} +.icon-arrow-down-right2:before { + content: "\ea3d"; +} +.icon-arrow-down2:before { + content: "\ea3e"; +} +.icon-arrow-down-left2:before { + content: "\ea3f"; +} +.icon-arrow-left2:before { + content: "\ea40"; +} +.icon-circle-up:before { + content: "\ea41"; +} +.icon-circle-right:before { + content: "\ea42"; +} +.icon-circle-down:before { + content: "\ea43"; +} +.icon-circle-left:before { + content: "\ea44"; +} +.icon-tab:before { + content: "\ea45"; +} +.icon-move-up:before { + content: "\ea46"; +} +.icon-move-down:before { + content: "\ea47"; +} +.icon-sort-alpha-asc:before { + content: "\ea48"; +} +.icon-sort-alpha-desc:before { + content: "\ea49"; +} +.icon-sort-numeric-asc:before { + content: "\ea4a"; +} +.icon-sort-numberic-desc:before { + content: "\ea4b"; +} +.icon-sort-amount-asc:before { + content: "\ea4c"; +} +.icon-sort-amount-desc:before { + content: "\ea4d"; +} +.icon-command:before { + content: "\ea4e"; +} +.icon-shift:before { + content: "\ea4f"; +} +.icon-ctrl:before { + content: "\ea50"; +} +.icon-opt:before { + content: "\ea51"; +} +.icon-checkbox-checked:before { + content: "\ea52"; +} +.icon-checkbox-unchecked:before { + content: "\ea53"; +} +.icon-radio-checked:before { + content: "\ea54"; +} +.icon-radio-checked2:before { + content: "\ea55"; +} +.icon-radio-unchecked:before { + content: "\ea56"; +} +.icon-crop:before { + content: "\ea57"; +} +.icon-make-group:before { + content: "\ea58"; +} +.icon-ungroup:before { + content: "\ea59"; +} +.icon-scissors:before { + content: "\ea5a"; +} +.icon-filter:before { + content: "\ea5b"; +} +.icon-font:before { + content: "\ea5c"; +} +.icon-ligature:before { + content: "\ea5d"; +} +.icon-ligature2:before { + content: "\ea5e"; +} +.icon-text-height:before { + content: "\ea5f"; +} +.icon-text-width:before { + content: "\ea60"; +} +.icon-font-size:before { + content: "\ea61"; +} +.icon-bold:before { + content: "\ea62"; +} +.icon-underline:before { + content: "\ea63"; +} +.icon-italic:before { + content: "\ea64"; +} +.icon-strikethrough:before { + content: "\ea65"; +} +.icon-omega:before { + content: "\ea66"; +} +.icon-sigma:before { + content: "\ea67"; +} +.icon-page-break:before { + content: "\ea68"; +} +.icon-superscript:before { + content: "\ea69"; +} +.icon-subscript:before { + content: "\ea6a"; +} +.icon-superscript2:before { + content: "\ea6b"; +} +.icon-subscript2:before { + content: "\ea6c"; +} +.icon-text-color:before { + content: "\ea6d"; +} +.icon-pagebreak:before { + content: "\ea6e"; +} +.icon-clear-formatting:before { + content: "\ea6f"; +} +.icon-table:before { + content: "\ea70"; +} +.icon-table2:before { + content: "\ea71"; +} +.icon-insert-template:before { + content: "\ea72"; +} +.icon-pilcrow:before { + content: "\ea73"; +} +.icon-ltr:before { + content: "\ea74"; +} +.icon-rtl:before { + content: "\ea75"; +} +.icon-section:before { + content: "\ea76"; +} +.icon-paragraph-left:before { + content: "\ea77"; +} +.icon-paragraph-center:before { + content: "\ea78"; +} +.icon-paragraph-right:before { + content: "\ea79"; +} +.icon-paragraph-justify:before { + content: "\ea7a"; +} +.icon-indent-increase:before { + content: "\ea7b"; +} +.icon-indent-decrease:before { + content: "\ea7c"; +} +.icon-share:before { + content: "\ea7d"; +} +.icon-new-tab:before { + content: "\ea7e"; +} +.icon-embed:before { + content: "\ea7f"; +} +.icon-embed2:before { + content: "\ea80"; +} +.icon-terminal:before { + content: "\ea81"; +} +.icon-share2:before { + content: "\ea82"; +} +.icon-mail:before { + content: "\ea83"; +} +.icon-mail2:before { + content: "\ea84"; +} +.icon-mail3:before { + content: "\ea85"; +} +.icon-mail4:before { + content: "\ea86"; +} +.icon-amazon:before { + content: "\ea87"; +} +.icon-google:before { + content: "\ea88"; +} +.icon-google2:before { + content: "\ea89"; +} +.icon-google3:before { + content: "\ea8a"; +} +.icon-google-plus:before { + content: "\ea8b"; +} +.icon-google-plus2:before { + content: "\ea8c"; +} +.icon-google-plus3:before { + content: "\ea8d"; +} +.icon-hangouts:before { + content: "\ea8e"; +} +.icon-google-drive:before { + content: "\ea8f"; +} +.icon-facebook:before { + content: "\ea90"; +} +.icon-facebook2:before { + content: "\ea91"; +} +.icon-instagram:before { + content: "\ea92"; +} +.icon-whatsapp:before { + content: "\ea93"; +} +.icon-spotify:before { + content: "\ea94"; +} +.icon-telegram:before { + content: "\ea95"; +} +.icon-twitter:before { + content: "\ea96"; +} +.icon-vine:before { + content: "\ea97"; +} +.icon-vk:before { + content: "\ea98"; +} +.icon-renren:before { + content: "\ea99"; +} +.icon-sina-weibo:before { + content: "\ea9a"; +} +.icon-rss:before { + content: "\ea9b"; +} +.icon-rss2:before { + content: "\ea9c"; +} +.icon-youtube:before { + content: "\ea9d"; +} +.icon-youtube2:before { + content: "\ea9e"; +} +.icon-twitch:before { + content: "\ea9f"; +} +.icon-vimeo:before { + content: "\eaa0"; +} +.icon-vimeo2:before { + content: "\eaa1"; +} +.icon-lanyrd:before { + content: "\eaa2"; +} +.icon-flickr:before { + content: "\eaa3"; +} +.icon-flickr2:before { + content: "\eaa4"; +} +.icon-flickr3:before { + content: "\eaa5"; +} +.icon-flickr4:before { + content: "\eaa6"; +} +.icon-dribbble:before { + content: "\eaa7"; +} +.icon-behance:before { + content: "\eaa8"; +} +.icon-behance2:before { + content: "\eaa9"; +} +.icon-deviantart:before { + content: "\eaaa"; +} +.icon-500px:before { + content: "\eaab"; +} +.icon-steam:before { + content: "\eaac"; +} +.icon-steam2:before { + content: "\eaad"; +} +.icon-dropbox:before { + content: "\eaae"; +} +.icon-onedrive:before { + content: "\eaaf"; +} +.icon-github:before { + content: "\eab0"; +} +.icon-npm:before { + content: "\eab1"; +} +.icon-basecamp:before { + content: "\eab2"; +} +.icon-trello:before { + content: "\eab3"; +} +.icon-wordpress:before { + content: "\eab4"; +} +.icon-joomla:before { + content: "\eab5"; +} +.icon-ello:before { + content: "\eab6"; +} +.icon-blogger:before { + content: "\eab7"; +} +.icon-blogger2:before { + content: "\eab8"; +} +.icon-tumblr:before { + content: "\eab9"; +} +.icon-tumblr2:before { + content: "\eaba"; +} +.icon-yahoo:before { + content: "\eabb"; +} +.icon-yahoo2:before { + content: "\eabc"; +} +.icon-tux:before { + content: "\eabd"; +} +.icon-appleinc:before { + content: "\eabe"; +} +.icon-finder:before { + content: "\eabf"; +} +.icon-android:before { + content: "\eac0"; +} +.icon-windows:before { + content: "\eac1"; +} +.icon-windows8:before { + content: "\eac2"; +} +.icon-soundcloud:before { + content: "\eac3"; +} +.icon-soundcloud2:before { + content: "\eac4"; +} +.icon-skype:before { + content: "\eac5"; +} +.icon-reddit:before { + content: "\eac6"; +} +.icon-hackernews:before { + content: "\eac7"; +} +.icon-wikipedia:before { + content: "\eac8"; +} +.icon-linkedin:before { + content: "\eac9"; +} +.icon-linkedin2:before { + content: "\eaca"; +} +.icon-lastfm:before { + content: "\eacb"; +} +.icon-lastfm2:before { + content: "\eacc"; +} +.icon-delicious:before { + content: "\eacd"; +} +.icon-stumbleupon:before { + content: "\eace"; +} +.icon-stumbleupon2:before { + content: "\eacf"; +} +.icon-stackoverflow:before { + content: "\ead0"; +} +.icon-pinterest:before { + content: "\ead1"; +} +.icon-pinterest2:before { + content: "\ead2"; +} +.icon-xing:before { + content: "\ead3"; +} +.icon-xing2:before { + content: "\ead4"; +} +.icon-flattr:before { + content: "\ead5"; +} +.icon-foursquare:before { + content: "\ead6"; +} +.icon-yelp:before { + content: "\ead7"; +} +.icon-paypal:before { + content: "\ead8"; +} +.icon-chrome:before { + content: "\ead9"; +} +.icon-firefox:before { + content: "\eada"; +} +.icon-IE:before { + content: "\eadb"; +} +.icon-edge:before { + content: "\eadc"; +} +.icon-safari:before { + content: "\eadd"; +} +.icon-opera:before { + content: "\eade"; +} +.icon-file-pdf:before { + content: "\eadf"; +} +.icon-file-openoffice:before { + content: "\eae0"; +} +.icon-file-word:before { + content: "\eae1"; +} +.icon-file-excel:before { + content: "\eae2"; +} +.icon-libreoffice:before { + content: "\eae3"; +} +.icon-html-five:before { + content: "\eae4"; +} +.icon-html-five2:before { + content: "\eae5"; +} +.icon-css3:before { + content: "\eae6"; +} +.icon-git:before { + content: "\eae7"; +} +.icon-codepen:before { + content: "\eae8"; +} +.icon-svg:before { + content: "\eae9"; +} +.icon-IcoMoon:before { + content: "\eaea"; +} + +/* glyphicons */ + +.icon-gl-asterisk:before { + content: "\2a"; +} +.icon-gl-plus:before { + content: "\2b"; +} +.icon-gl-yen:before { + content: "\a5"; +} +.icon-gl-jpy:before { + content: "\a5"; +} +.icon-gl-euro:before { + content: "\20ac"; +} +.icon-gl-eur:before { + content: "\20ac"; +} +.icon-gl-ruble:before { + content: "\20bd"; +} +.icon-gl-rub:before { + content: "\20bd"; +} +.icon-gl-minus:before { + content: "\2212"; +} +.icon-gl-hourglass:before { + content: "\231b"; +} +.icon-gl-cloud:before { + content: "\2601"; +} +.icon-gl-tent:before { + content: "\26fa"; +} +.icon-gl-envelope:before { + content: "\2709"; +} +.icon-gl-pencil:before { + content: "\270f"; +} +.icon-gl-glass:before { + content: "\e001"; +} +.icon-gl-music:before { + content: "\e002"; +} +.icon-gl-search:before { + content: "\e003"; +} +.icon-gl-heart:before { + content: "\e005"; +} +.icon-gl-star:before { + content: "\e006"; +} +.icon-gl-star-empty:before { + content: "\e007"; +} +.icon-gl-user:before { + content: "\e008"; +} +.icon-gl-film:before { + content: "\e009"; +} +.icon-gl-th-large:before { + content: "\e010"; +} +.icon-gl-th:before { + content: "\e011"; +} +.icon-gl-th-list:before { + content: "\e012"; +} +.icon-gl-ok:before { + content: "\e013"; +} +.icon-gl-remove:before { + content: "\e014"; +} +.icon-gl-zoom-in:before { + content: "\e015"; +} +.icon-gl-zoom-out:before { + content: "\e016"; +} +.icon-gl-off:before { + content: "\e017"; +} +.icon-gl-signal:before { + content: "\e018"; +} +.icon-gl-cog:before { + content: "\e019"; +} +.icon-gl-trash:before { + content: "\e020"; +} +.icon-gl-home:before { + content: "\e021"; +} +.icon-gl-file:before { + content: "\e022"; +} +.icon-gl-time:before { + content: "\e023"; +} +.icon-gl-road:before { + content: "\e024"; +} +.icon-gl-download-alt:before { + content: "\e025"; +} +.icon-gl-download:before { + content: "\e026"; +} +.icon-gl-upload:before { + content: "\e027"; +} +.icon-gl-inbox:before { + content: "\e028"; +} +.icon-gl-play-circle:before { + content: "\e029"; +} +.icon-gl-repeat:before { + content: "\e030"; +} +.icon-gl-refresh:before { + content: "\e031"; +} +.icon-gl-list-alt:before { + content: "\e032"; +} +.icon-gl-lock:before { + content: "\e033"; +} +.icon-gl-flag:before { + content: "\e034"; +} +.icon-gl-headphones:before { + content: "\e035"; +} +.icon-gl-volume-off:before { + content: "\e036"; +} +.icon-gl-volume-down:before { + content: "\e037"; +} +.icon-gl-volume-up:before { + content: "\e038"; +} +.icon-gl-qrcode:before { + content: "\e039"; +} +.icon-gl-barcode:before { + content: "\e040"; +} +.icon-gl-tag:before { + content: "\e041"; +} +.icon-gl-tags:before { + content: "\e042"; +} +.icon-gl-book:before { + content: "\e043"; +} +.icon-gl-bookmark:before { + content: "\e044"; +} +.icon-gl-print:before { + content: "\e045"; +} +.icon-gl-camera:before { + content: "\e046"; +} +.icon-gl-font:before { + content: "\e047"; +} +.icon-gl-bold:before { + content: "\e048"; +} +.icon-gl-italic:before { + content: "\e049"; +} +.icon-gl-text-height:before { + content: "\e050"; +} +.icon-gl-text-width:before { + content: "\e051"; +} +.icon-gl-align-left:before { + content: "\e052"; +} +.icon-gl-align-center:before { + content: "\e053"; +} +.icon-gl-align-right:before { + content: "\e054"; +} +.icon-gl-align-justify:before { + content: "\e055"; +} +.icon-gl-list:before { + content: "\e056"; +} +.icon-gl-indent-left:before { + content: "\e057"; +} +.icon-gl-indent-right:before { + content: "\e058"; +} +.icon-gl-facetime-video:before { + content: "\e059"; +} +.icon-gl-picture:before { + content: "\e060"; +} +.icon-gl-map-marker:before { + content: "\e062"; +} +.icon-gl-adjust:before { + content: "\e063"; +} +.icon-gl-tint:before { + content: "\e064"; +} +.icon-gl-edit:before { + content: "\e065"; +} +.icon-gl-share:before { + content: "\e066"; +} +.icon-gl-check:before { + content: "\e067"; +} +.icon-gl-move:before { + content: "\e068"; +} +.icon-gl-step-backward:before { + content: "\e069"; +} +.icon-gl-fast-backward:before { + content: "\e070"; +} +.icon-gl-backward:before { + content: "\e071"; +} +.icon-gl-play:before { + content: "\e072"; +} +.icon-gl-pause:before { + content: "\e073"; +} +.icon-gl-stop:before { + content: "\e074"; +} +.icon-gl-forward:before { + content: "\e075"; +} +.icon-gl-fast-forward:before { + content: "\e076"; +} +.icon-gl-step-forward:before { + content: "\e077"; +} +.icon-gl-eject:before { + content: "\e078"; +} +.icon-gl-chevron-left:before { + content: "\e079"; +} +.icon-gl-chevron-right:before { + content: "\e080"; +} +.icon-gl-plus-sign:before { + content: "\e081"; +} +.icon-gl-minus-sign:before { + content: "\e082"; +} +.icon-gl-remove-sign:before { + content: "\e083"; +} +.icon-gl-ok-sign:before { + content: "\e084"; +} +.icon-gl-question-sign:before { + content: "\e085"; +} +.icon-gl-info-sign:before { + content: "\e086"; +} +.icon-gl-screenshot:before { + content: "\e087"; +} +.icon-gl-remove-circle:before { + content: "\e088"; +} +.icon-gl-ok-circle:before { + content: "\e089"; +} +.icon-gl-ban-circle:before { + content: "\e090"; +} +.icon-gl-arrow-left:before { + content: "\e091"; +} +.icon-gl-arrow-right:before { + content: "\e092"; +} +.icon-gl-arrow-up:before { + content: "\e093"; +} +.icon-gl-arrow-down:before { + content: "\e094"; +} +.icon-gl-share-alt:before { + content: "\e095"; +} +.icon-gl-resize-full:before { + content: "\e096"; +} +.icon-gl-resize-small:before { + content: "\e097"; +} +.icon-gl-exclamation-sign:before { + content: "\e101"; +} +.icon-gl-gift:before { + content: "\e102"; +} +.icon-gl-leaf:before { + content: "\e103"; +} +.icon-gl-fire:before { + content: "\e104"; +} +.icon-gl-eye-open:before { + content: "\e105"; +} +.icon-gl-eye-close:before { + content: "\e106"; +} +.icon-gl-warning-sign:before { + content: "\e107"; +} +.icon-gl-plane:before { + content: "\e108"; +} +.icon-gl-calendar:before { + content: "\e109"; +} +.icon-gl-random:before { + content: "\e110"; +} +.icon-gl-comment:before { + content: "\e111"; +} +.icon-gl-magnet:before { + content: "\e112"; +} +.icon-gl-chevron-up:before { + content: "\e113"; +} +.icon-gl-chevron-down:before { + content: "\e114"; +} +.icon-gl-retweet:before { + content: "\e115"; +} +.icon-gl-shopping-cart:before { + content: "\e116"; +} +.icon-gl-folder-close:before { + content: "\e117"; +} +.icon-gl-folder-open:before { + content: "\e118"; +} +.icon-gl-resize-vertical:before { + content: "\e119"; +} +.icon-gl-resize-horizontal:before { + content: "\e120"; +} +.icon-gl-hdd:before { + content: "\e121"; +} +.icon-gl-bullhorn:before { + content: "\e122"; +} +.icon-gl-bell:before { + content: "\e123"; +} +.icon-gl-certificate:before { + content: "\e124"; +} +.icon-gl-thumbs-up:before { + content: "\e125"; +} +.icon-gl-thumbs-down:before { + content: "\e126"; +} +.icon-gl-hand-right:before { + content: "\e127"; +} +.icon-gl-hand-left:before { + content: "\e128"; +} +.icon-gl-hand-up:before { + content: "\e129"; +} +.icon-gl-hand-down:before { + content: "\e130"; +} +.icon-gl-circle-arrow-right:before { + content: "\e131"; +} +.icon-gl-circle-arrow-left:before { + content: "\e132"; +} +.icon-gl-circle-arrow-up:before { + content: "\e133"; +} +.icon-gl-circle-arrow-down:before { + content: "\e134"; +} +.icon-gl-globe:before { + content: "\e135"; +} +.icon-gl-wrench:before { + content: "\e136"; +} +.icon-gl-tasks:before { + content: "\e137"; +} +.icon-gl-filter:before { + content: "\e138"; +} +.icon-gl-briefcase:before { + content: "\e139"; +} +.icon-gl-fullscreen:before { + content: "\e140"; +} +.icon-gl-dashboard:before { + content: "\e141"; +} +.icon-gl-paperclip:before { + content: "\e142"; +} +.icon-gl-heart-empty:before { + content: "\e143"; +} +.icon-gl-link:before { + content: "\e144"; +} +.icon-gl-phone:before { + content: "\e145"; +} +.icon-gl-pushpin:before { + content: "\e146"; +} +.icon-gl-usd:before { + content: "\e148"; +} +.icon-gl-gbp:before { + content: "\e149"; +} +.icon-gl-sort:before { + content: "\e150"; +} +.icon-gl-sort-by-alphabet:before { + content: "\e151"; +} +.icon-gl-sort-by-alphabet-alt:before { + content: "\e152"; +} +.icon-gl-sort-by-order:before { + content: "\e153"; +} +.icon-gl-sort-by-order-alt:before { + content: "\e154"; +} +.icon-gl-sort-by-attributes:before { + content: "\e155"; +} +.icon-gl-sort-by-attributes-alt:before { + content: "\e156"; +} +.icon-gl-unchecked:before { + content: "\e157"; +} +.icon-gl-expand:before { + content: "\e158"; +} +.icon-gl-collapse-down:before { + content: "\e159"; +} +.icon-gl-collapse-up:before { + content: "\e160"; +} +.icon-gl-log-in:before { + content: "\e161"; +} +.icon-gl-flash:before { + content: "\e162"; +} +.icon-gl-log-out:before { + content: "\e163"; +} +.icon-gl-new-window:before { + content: "\e164"; +} +.icon-gl-record:before { + content: "\e165"; +} +.icon-gl-save:before { + content: "\e166"; +} +.icon-gl-open:before { + content: "\e167"; +} +.icon-gl-saved:before { + content: "\e168"; +} +.icon-gl-import:before { + content: "\e169"; +} +.icon-gl-export:before { + content: "\e170"; +} +.icon-gl-send:before { + content: "\e171"; +} +.icon-gl-floppy-disk:before { + content: "\e172"; +} +.icon-gl-floppy-saved:before { + content: "\e173"; +} +.icon-gl-floppy-remove:before { + content: "\e174"; +} +.icon-gl-floppy-save:before { + content: "\e175"; +} +.icon-gl-floppy-open:before { + content: "\e176"; +} +.icon-gl-credit-card:before { + content: "\e177"; +} +.icon-gl-transfer:before { + content: "\e178"; +} +.icon-gl-cutlery:before { + content: "\e179"; +} +.icon-gl-header:before { + content: "\e180"; +} +.icon-gl-compressed:before { + content: "\e181"; +} +.icon-gl-earphone:before { + content: "\e182"; +} +.icon-gl-phone-alt:before { + content: "\e183"; +} +.icon-gl-tower:before { + content: "\e184"; +} +.icon-gl-stats:before { + content: "\e185"; +} +.icon-gl-sd-video:before { + content: "\e186"; +} +.icon-gl-hd-video:before { + content: "\e187"; +} +.icon-gl-subtitles:before { + content: "\e188"; +} +.icon-gl-sound-stereo:before { + content: "\e189"; +} +.icon-gl-sound-dolby:before { + content: "\e190"; +} +.icon-gl-sound-5-1:before { + content: "\e191"; +} +.icon-gl-sound-6-1:before { + content: "\e192"; +} +.icon-gl-sound-7-1:before { + content: "\e193"; +} +.icon-gl-copyright-mark:before { + content: "\e194"; +} +.icon-gl-registration-mark:before { + content: "\e195"; +} +.icon-gl-cloud-download:before { + content: "\e197"; +} +.icon-gl-cloud-upload:before { + content: "\e198"; +} +.icon-gl-tree-conifer:before { + content: "\e199"; +} +.icon-gl-tree-deciduous:before { + content: "\e200"; +} +.icon-gl-cd:before { + content: "\e201"; +} +.icon-gl-save-file:before { + content: "\e202"; +} +.icon-gl-open-file:before { + content: "\e203"; +} +.icon-gl-level-up:before { + content: "\e204"; +} +.icon-gl-copy:before { + content: "\e205"; +} +.icon-gl-paste:before { + content: "\e206"; +} +.icon-gl-alert:before { + content: "\e209"; +} +.icon-gl-equalizer:before { + content: "\e210"; +} +.icon-gl-king:before { + content: "\e211"; +} +.icon-gl-queen:before { + content: "\e212"; +} +.icon-gl-pawn:before { + content: "\e213"; +} +.icon-gl-bishop:before { + content: "\e214"; +} +.icon-gl-knight:before { + content: "\e215"; +} +.icon-gl-baby-formula:before { + content: "\e216"; +} +.icon-gl-blackboard:before { + content: "\e218"; +} +.icon-gl-bed:before { + content: "\e219"; +} +.icon-gl-erase:before { + content: "\e221"; +} +.icon-gl-lamp:before { + content: "\e223"; +} +.icon-gl-duplicate:before { + content: "\e224"; +} +.icon-gl-piggy-bank:before { + content: "\e225"; +} +.icon-gl-scissors:before { + content: "\e226"; +} +.icon-gl-bitcoin:before { + content: "\e227"; +} +.icon-gl-btc:before { + content: "\e227"; +} +.icon-gl-xbt:before { + content: "\e227"; +} +.icon-gl-scale:before { + content: "\e230"; +} +.icon-gl-ice-lolly:before { + content: "\e231"; +} +.icon-gl-ice-lolly-tasted:before { + content: "\e232"; +} +.icon-gl-education:before { + content: "\e233"; +} +.icon-gl-option-horizontal:before { + content: "\e234"; +} +.icon-gl-option-vertical:before { + content: "\e235"; +} +.icon-gl-menu-hamburger:before { + content: "\e236"; +} +.icon-gl-modal-window:before { + content: "\e237"; +} +.icon-gl-oil:before { + content: "\e238"; +} +.icon-gl-grain:before { + content: "\e239"; +} +.icon-gl-sunglasses:before { + content: "\e240"; +} +.icon-gl-text-size:before { + content: "\e241"; +} +.icon-gl-text-color:before { + content: "\e242"; +} +.icon-gl-text-background:before { + content: "\e243"; +} +.icon-gl-object-align-top:before { + content: "\e244"; +} +.icon-gl-object-align-bottom:before { + content: "\e245"; +} +.icon-gl-object-align-horizontal:before { + content: "\e246"; +} +.icon-gl-object-align-left:before { + content: "\e247"; +} +.icon-gl-object-align-vertical:before { + content: "\e248"; +} +.icon-gl-object-align-right:before { + content: "\e249"; +} +.icon-gl-triangle-right:before { + content: "\e250"; +} +.icon-gl-triangle-left:before { + content: "\e251"; +} +.icon-gl-triangle-bottom:before { + content: "\e252"; +} +.icon-gl-triangle-top:before { + content: "\e253"; +} +.icon-gl-console:before { + content: "\e254"; +} +.icon-gl-superscript:before { + content: "\e255"; +} +.icon-gl-subscript:before { + content: "\e256"; +} +.icon-gl-menu-left:before { + content: "\e257"; +} +.icon-gl-menu-right:before { + content: "\e258"; +} +.icon-gl-menu-down:before { + content: "\e259"; +} +.icon-gl-menu-up:before { + content: "\e260"; +} +.icon-gl-apple:before { + content: "\f8ff"; +} +.icon-gl-key:before { + content: "\1f511"; +} +.icon-gl-door:before { + content: "\1f6aa"; +} + + +/* Font Awesome */ + +.icon-fa-asterisk:before { + content: "\f069"; +} +.icon-fa-plus:before { + content: "\f067"; +} +.icon-fa-question:before { + content: "\f128"; +} +.icon-fa-minus:before { + content: "\f068"; +} +.icon-fa-glass:before { + content: "\f000"; +} +.icon-fa-music:before { + content: "\f001"; +} +.icon-fa-search:before { + content: "\f002"; +} +.icon-fa-envelope-o:before { + content: "\f003"; +} +.icon-fa-heart:before { + content: "\f004"; +} +.icon-fa-star:before { + content: "\f005"; +} +.icon-fa-star-o:before { + content: "\f006"; +} +.icon-fa-user:before { + content: "\f007"; +} +.icon-fa-film:before { + content: "\f008"; +} +.icon-fa-th-large:before { + content: "\f009"; +} +.icon-fa-th:before { + content: "\f00a"; +} +.icon-fa-th-list:before { + content: "\f00b"; +} +.icon-fa-check:before { + content: "\f00c"; +} +.icon-fa-close:before { + content: "\f00d"; +} +.icon-fa-remove:before { + content: "\f00d"; +} +.icon-fa-times:before { + content: "\f00d"; +} +.icon-fa-search-plus:before { + content: "\f00e"; +} +.icon-fa-search-minus:before { + content: "\f010"; +} +.icon-fa-power-off:before { + content: "\f011"; +} +.icon-fa-signal:before { + content: "\f012"; +} +.icon-fa-cog:before { + content: "\f013"; +} +.icon-fa-gear:before { + content: "\f013"; +} +.icon-fa-trash-o:before { + content: "\f014"; +} +.icon-fa-home:before { + content: "\f015"; +} +.icon-fa-file-o:before { + content: "\f016"; +} +.icon-fa-clock-o:before { + content: "\f017"; +} +.icon-fa-road:before { + content: "\f018"; +} +.icon-fa-download:before { + content: "\f019"; +} +.icon-fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.icon-fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.icon-fa-inbox:before { + content: "\f01c"; +} +.icon-fa-play-circle-o:before { + content: "\f01d"; +} +.icon-fa-repeat:before { + content: "\f01e"; +} +.icon-fa-rotate-right:before { + content: "\f01e"; +} +.icon-fa-refresh:before { + content: "\f021"; +} +.icon-fa-list-alt:before { + content: "\f022"; +} +.icon-fa-lock:before { + content: "\f023"; +} +.icon-fa-flag:before { + content: "\f024"; +} +.icon-fa-headphones:before { + content: "\f025"; +} +.icon-fa-volume-off:before { + content: "\f026"; +} +.icon-fa-volume-down:before { + content: "\f027"; +} +.icon-fa-volume-up:before { + content: "\f028"; +} +.icon-fa-qrcode:before { + content: "\f029"; +} +.icon-fa-barcode:before { + content: "\f02a"; +} +.icon-fa-tag:before { + content: "\f02b"; +} +.icon-fa-tags:before { + content: "\f02c"; +} +.icon-fa-book:before { + content: "\f02d"; +} +.icon-fa-bookmark:before { + content: "\f02e"; +} +.icon-fa-print:before { + content: "\f02f"; +} +.icon-fa-camera:before { + content: "\f030"; +} +.icon-fa-font:before { + content: "\f031"; +} +.icon-fa-bold:before { + content: "\f032"; +} +.icon-fa-italic:before { + content: "\f033"; +} +.icon-fa-text-height:before { + content: "\f034"; +} +.icon-fa-text-width:before { + content: "\f035"; +} +.icon-fa-align-left:before { + content: "\f036"; +} +.icon-fa-align-center:before { + content: "\f037"; +} +.icon-fa-align-right:before { + content: "\f038"; +} +.icon-fa-align-justify:before { + content: "\f039"; +} +.icon-fa-list:before { + content: "\f03a"; +} +.icon-fa-dedent:before { + content: "\f03b"; +} +.icon-fa-outdent:before { + content: "\f03b"; +} +.icon-fa-indent:before { + content: "\f03c"; +} +.icon-fa-video-camera:before { + content: "\f03d"; +} +.icon-fa-image:before { + content: "\f03e"; +} +.icon-fa-photo:before { + content: "\f03e"; +} +.icon-fa-picture-o:before { + content: "\f03e"; +} +.icon-fa-pencil:before { + content: "\f040"; +} +.icon-fa-map-marker:before { + content: "\f041"; +} +.icon-fa-adjust:before { + content: "\f042"; +} +.icon-fa-tint:before { + content: "\f043"; +} +.icon-fa-edit:before { + content: "\f044"; +} +.icon-fa-pencil-square-o:before { + content: "\f044"; +} +.icon-fa-share-square-o:before { + content: "\f045"; +} +.icon-fa-check-square-o:before { + content: "\f046"; +} +.icon-fa-arrows:before { + content: "\f047"; +} +.icon-fa-step-backward:before { + content: "\f048"; +} +.icon-fa-fast-backward:before { + content: "\f049"; +} +.icon-fa-backward:before { + content: "\f04a"; +} +.icon-fa-play:before { + content: "\f04b"; +} +.icon-fa-pause:before { + content: "\f04c"; +} +.icon-fa-stop:before { + content: "\f04d"; +} +.icon-fa-forward:before { + content: "\f04e"; +} +.icon-fa-fast-forward:before { + content: "\f050"; +} +.icon-fa-step-forward:before { + content: "\f051"; +} +.icon-fa-eject:before { + content: "\f052"; +} +.icon-fa-chevron-left:before { + content: "\f053"; +} +.icon-fa-chevron-right:before { + content: "\f054"; +} +.icon-fa-plus-circle:before { + content: "\f055"; +} +.icon-fa-minus-circle:before { + content: "\f056"; +} +.icon-fa-times-circle:before { + content: "\f057"; +} +.icon-fa-check-circle:before { + content: "\f058"; +} +.icon-fa-question-circle:before { + content: "\f059"; +} +.icon-fa-info-circle:before { + content: "\f05a"; +} +.icon-fa-crosshairs:before { + content: "\f05b"; +} +.icon-fa-times-circle-o:before { + content: "\f05c"; +} +.icon-fa-check-circle-o:before { + content: "\f05d"; +} +.icon-fa-ban:before { + content: "\f05e"; +} +.icon-fa-arrow-left:before { + content: "\f060"; +} +.icon-fa-arrow-right:before { + content: "\f061"; +} +.icon-fa-arrow-up:before { + content: "\f062"; +} +.icon-fa-arrow-down:before { + content: "\f063"; +} +.icon-fa-mail-forward:before { + content: "\f064"; +} +.icon-fa-share:before { + content: "\f064"; +} +.icon-fa-expand:before { + content: "\f065"; +} +.icon-fa-compress:before { + content: "\f066"; +} +.icon-fa-exclamation-circle:before { + content: "\f06a"; +} +.icon-fa-gift:before { + content: "\f06b"; +} +.icon-fa-leaf:before { + content: "\f06c"; +} +.icon-fa-fire:before { + content: "\f06d"; +} +.icon-fa-eye:before { + content: "\f06e"; +} +.icon-fa-eye-slash:before { + content: "\f070"; +} +.icon-fa-exclamation-triangle:before { + content: "\f071"; +} +.icon-fa-warning:before { + content: "\f071"; +} +.icon-fa-plane:before { + content: "\f072"; +} +.icon-fa-calendar:before { + content: "\f073"; +} +.icon-fa-random:before { + content: "\f074"; +} +.icon-fa-comment:before { + content: "\f075"; +} +.icon-fa-magnet:before { + content: "\f076"; +} +.icon-fa-chevron-up:before { + content: "\f077"; +} +.icon-fa-chevron-down:before { + content: "\f078"; +} +.icon-fa-retweet:before { + content: "\f079"; +} +.icon-fa-shopping-cart:before { + content: "\f07a"; +} +.icon-fa-folder:before { + content: "\f07b"; +} +.icon-fa-folder-open:before { + content: "\f07c"; +} +.icon-fa-arrows-v:before { + content: "\f07d"; +} +.icon-fa-arrows-h:before { + content: "\f07e"; +} +.icon-fa-bar-chart:before { + content: "\f080"; +} +.icon-fa-bar-chart-o:before { + content: "\f080"; +} +.icon-fa-twitter-square:before { + content: "\f081"; +} +.icon-fa-facebook-square:before { + content: "\f082"; +} +.icon-fa-camera-retro:before { + content: "\f083"; +} +.icon-fa-key:before { + content: "\f084"; +} +.icon-fa-cogs:before { + content: "\f085"; +} +.icon-fa-gears:before { + content: "\f085"; +} +.icon-fa-comments:before { + content: "\f086"; +} +.icon-fa-thumbs-o-up:before { + content: "\f087"; +} +.icon-fa-thumbs-o-down:before { + content: "\f088"; +} +.icon-fa-star-half:before { + content: "\f089"; +} +.icon-fa-heart-o:before { + content: "\f08a"; +} +.icon-fa-sign-out:before { + content: "\f08b"; +} +.icon-fa-linkedin-square:before { + content: "\f08c"; +} +.icon-fa-thumb-tack:before { + content: "\f08d"; +} +.icon-fa-external-link:before { + content: "\f08e"; +} +.icon-fa-sign-in:before { + content: "\f090"; +} +.icon-fa-trophy:before { + content: "\f091"; +} +.icon-fa-github-square:before { + content: "\f092"; +} +.icon-fa-upload:before { + content: "\f093"; +} +.icon-fa-lemon-o:before { + content: "\f094"; +} +.icon-fa-phone:before { + content: "\f095"; +} +.icon-fa-square-o:before { + content: "\f096"; +} +.icon-fa-bookmark-o:before { + content: "\f097"; +} +.icon-fa-phone-square:before { + content: "\f098"; +} +.icon-fa-twitter:before { + content: "\f099"; +} +.icon-fa-facebook:before { + content: "\f09a"; +} +.icon-fa-facebook-f:before { + content: "\f09a"; +} +.icon-fa-github:before { + content: "\f09b"; +} +.icon-fa-unlock:before { + content: "\f09c"; +} +.icon-fa-credit-card:before { + content: "\f09d"; +} +.icon-fa-feed:before { + content: "\f09e"; +} +.icon-fa-rss:before { + content: "\f09e"; +} +.icon-fa-hdd-o:before { + content: "\f0a0"; +} +.icon-fa-bullhorn:before { + content: "\f0a1"; +} +.icon-fa-bell-o:before { + content: "\f0a2"; +} +.icon-fa-certificate:before { + content: "\f0a3"; +} +.icon-fa-hand-o-right:before { + content: "\f0a4"; +} +.icon-fa-hand-o-left:before { + content: "\f0a5"; +} +.icon-fa-hand-o-up:before { + content: "\f0a6"; +} +.icon-fa-hand-o-down:before { + content: "\f0a7"; +} +.icon-fa-arrow-circle-left:before { + content: "\f0a8"; +} +.icon-fa-arrow-circle-right:before { + content: "\f0a9"; +} +.icon-fa-arrow-circle-up:before { + content: "\f0aa"; +} +.icon-fa-arrow-circle-down:before { + content: "\f0ab"; +} +.icon-fa-globe:before { + content: "\f0ac"; +} +.icon-fa-wrench:before { + content: "\f0ad"; +} +.icon-fa-tasks:before { + content: "\f0ae"; +} +.icon-fa-filter:before { + content: "\f0b0"; +} +.icon-fa-briefcase:before { + content: "\f0b1"; +} +.icon-fa-arrows-alt:before { + content: "\f0b2"; +} +.icon-fa-group:before { + content: "\f0c0"; +} +.icon-fa-users:before { + content: "\f0c0"; +} +.icon-fa-chain:before { + content: "\f0c1"; +} +.icon-fa-link:before { + content: "\f0c1"; +} +.icon-fa-cloud:before { + content: "\f0c2"; +} +.icon-fa-flask:before { + content: "\f0c3"; +} +.icon-fa-cut:before { + content: "\f0c4"; +} +.icon-fa-scissors:before { + content: "\f0c4"; +} +.icon-fa-copy:before { + content: "\f0c5"; +} +.icon-fa-files-o:before { + content: "\f0c5"; +} +.icon-fa-paperclip:before { + content: "\f0c6"; +} +.icon-fa-floppy-o:before { + content: "\f0c7"; +} +.icon-fa-save:before { + content: "\f0c7"; +} +.icon-fa-square:before { + content: "\f0c8"; +} +.icon-fa-bars:before { + content: "\f0c9"; +} +.icon-fa-navicon:before { + content: "\f0c9"; +} +.icon-fa-reorder:before { + content: "\f0c9"; +} +.icon-fa-list-ul:before { + content: "\f0ca"; +} +.icon-fa-list-ol:before { + content: "\f0cb"; +} +.icon-fa-strikethrough:before { + content: "\f0cc"; +} +.icon-fa-underline:before { + content: "\f0cd"; +} +.icon-fa-table:before { + content: "\f0ce"; +} +.icon-fa-magic:before { + content: "\f0d0"; +} +.icon-fa-truck:before { + content: "\f0d1"; +} +.icon-fa-pinterest:before { + content: "\f0d2"; +} +.icon-fa-pinterest-square:before { + content: "\f0d3"; +} +.icon-fa-google-plus-square:before { + content: "\f0d4"; +} +.icon-fa-google-plus:before { + content: "\f0d5"; +} +.icon-fa-money:before { + content: "\f0d6"; +} +.icon-fa-caret-down:before { + content: "\f0d7"; +} +.icon-fa-caret-up:before { + content: "\f0d8"; +} +.icon-fa-caret-left:before { + content: "\f0d9"; +} +.icon-fa-caret-right:before { + content: "\f0da"; +} +.icon-fa-columns:before { + content: "\f0db"; +} +.icon-fa-sort:before { + content: "\f0dc"; +} +.icon-fa-unsorted:before { + content: "\f0dc"; +} +.icon-fa-sort-desc:before { + content: "\f0dd"; +} +.icon-fa-sort-down:before { + content: "\f0dd"; +} +.icon-fa-sort-asc:before { + content: "\f0de"; +} +.icon-fa-sort-up:before { + content: "\f0de"; +} +.icon-fa-envelope:before { + content: "\f0e0"; +} +.icon-fa-linkedin:before { + content: "\f0e1"; +} +.icon-fa-rotate-left:before { + content: "\f0e2"; +} +.icon-fa-undo:before { + content: "\f0e2"; +} +.icon-fa-gavel:before { + content: "\f0e3"; +} +.icon-fa-legal:before { + content: "\f0e3"; +} +.icon-fa-dashboard:before { + content: "\f0e4"; +} +.icon-fa-tachometer:before { + content: "\f0e4"; +} +.icon-fa-comment-o:before { + content: "\f0e5"; +} +.icon-fa-comments-o:before { + content: "\f0e6"; +} +.icon-fa-bolt:before { + content: "\f0e7"; +} +.icon-fa-flash:before { + content: "\f0e7"; +} +.icon-fa-sitemap:before { + content: "\f0e8"; +} +.icon-fa-umbrella:before { + content: "\f0e9"; +} +.icon-fa-clipboard:before { + content: "\f0ea"; +} +.icon-fa-paste:before { + content: "\f0ea"; +} +.icon-fa-lightbulb-o:before { + content: "\f0eb"; +} +.icon-fa-exchange:before { + content: "\f0ec"; +} +.icon-fa-cloud-download:before { + content: "\f0ed"; +} +.icon-fa-cloud-upload:before { + content: "\f0ee"; +} +.icon-fa-user-md:before { + content: "\f0f0"; +} +.icon-fa-stethoscope:before { + content: "\f0f1"; +} +.icon-fa-suitcase:before { + content: "\f0f2"; +} +.icon-fa-bell:before { + content: "\f0f3"; +} +.icon-fa-coffee:before { + content: "\f0f4"; +} +.icon-fa-cutlery:before { + content: "\f0f5"; +} +.icon-fa-file-text-o:before { + content: "\f0f6"; +} +.icon-fa-building-o:before { + content: "\f0f7"; +} +.icon-fa-hospital-o:before { + content: "\f0f8"; +} +.icon-fa-ambulance:before { + content: "\f0f9"; +} +.icon-fa-medkit:before { + content: "\f0fa"; +} +.icon-fa-fighter-jet:before { + content: "\f0fb"; +} +.icon-fa-beer:before { + content: "\f0fc"; +} +.icon-fa-h-square:before { + content: "\f0fd"; +} +.icon-fa-plus-square:before { + content: "\f0fe"; +} +.icon-fa-angle-double-left:before { + content: "\f100"; +} +.icon-fa-angle-double-right:before { + content: "\f101"; +} +.icon-fa-angle-double-up:before { + content: "\f102"; +} +.icon-fa-angle-double-down:before { + content: "\f103"; +} +.icon-fa-angle-left:before { + content: "\f104"; +} +.icon-fa-angle-right:before { + content: "\f105"; +} +.icon-fa-angle-up:before { + content: "\f106"; +} +.icon-fa-angle-down:before { + content: "\f107"; +} +.icon-fa-desktop:before { + content: "\f108"; +} +.icon-fa-laptop:before { + content: "\f109"; +} +.icon-fa-tablet:before { + content: "\f10a"; +} +.icon-fa-mobile:before { + content: "\f10b"; +} +.icon-fa-mobile-phone:before { + content: "\f10b"; +} +.icon-fa-circle-o:before { + content: "\f10c"; +} +.icon-fa-quote-left:before { + content: "\f10d"; +} +.icon-fa-quote-right:before { + content: "\f10e"; +} +.icon-fa-spinner:before { + content: "\f110"; +} +.icon-fa-circle:before { + content: "\f111"; +} +.icon-fa-mail-reply:before { + content: "\f112"; +} +.icon-fa-reply:before { + content: "\f112"; +} +.icon-fa-github-alt:before { + content: "\f113"; +} +.icon-fa-folder-o:before { + content: "\f114"; +} +.icon-fa-folder-open-o:before { + content: "\f115"; +} +.icon-fa-smile-o:before { + content: "\f118"; +} +.icon-fa-frown-o:before { + content: "\f119"; +} +.icon-fa-meh-o:before { + content: "\f11a"; +} +.icon-fa-gamepad:before { + content: "\f11b"; +} +.icon-fa-keyboard-o:before { + content: "\f11c"; +} +.icon-fa-flag-o:before { + content: "\f11d"; +} +.icon-fa-flag-checkered:before { + content: "\f11e"; +} +.icon-fa-terminal:before { + content: "\f120"; +} +.icon-fa-code:before { + content: "\f121"; +} +.icon-fa-mail-reply-all:before { + content: "\f122"; +} +.icon-fa-reply-all:before { + content: "\f122"; +} +.icon-fa-star-half-empty:before { + content: "\f123"; +} +.icon-fa-star-half-full:before { + content: "\f123"; +} +.icon-fa-star-half-o:before { + content: "\f123"; +} +.icon-fa-location-arrow:before { + content: "\f124"; +} +.icon-fa-crop:before { + content: "\f125"; +} +.icon-fa-code-fork:before { + content: "\f126"; +} +.icon-fa-chain-broken:before { + content: "\f127"; +} +.icon-fa-unlink:before { + content: "\f127"; +} +.icon-fa-info:before { + content: "\f129"; +} +.icon-fa-exclamation:before { + content: "\f12a"; +} +.icon-fa-superscript:before { + content: "\f12b"; +} +.icon-fa-subscript:before { + content: "\f12c"; +} +.icon-fa-eraser:before { + content: "\f12d"; +} +.icon-fa-puzzle-piece:before { + content: "\f12e"; +} +.icon-fa-microphone:before { + content: "\f130"; +} +.icon-fa-microphone-slash:before { + content: "\f131"; +} +.icon-fa-shield:before { + content: "\f132"; +} +.icon-fa-calendar-o:before { + content: "\f133"; +} +.icon-fa-fire-extinguisher:before { + content: "\f134"; +} +.icon-fa-rocket:before { + content: "\f135"; +} +.icon-fa-maxcdn:before { + content: "\f136"; +} +.icon-fa-chevron-circle-left:before { + content: "\f137"; +} +.icon-fa-chevron-circle-right:before { + content: "\f138"; +} +.icon-fa-chevron-circle-up:before { + content: "\f139"; +} +.icon-fa-chevron-circle-down:before { + content: "\f13a"; +} +.icon-fa-html5:before { + content: "\f13b"; +} +.icon-fa-css3:before { + content: "\f13c"; +} +.icon-fa-anchor:before { + content: "\f13d"; +} +.icon-fa-unlock-alt:before { + content: "\f13e"; +} +.icon-fa-bullseye:before { + content: "\f140"; +} +.icon-fa-ellipsis-h:before { + content: "\f141"; +} +.icon-fa-ellipsis-v:before { + content: "\f142"; +} +.icon-fa-rss-square:before { + content: "\f143"; +} +.icon-fa-play-circle:before { + content: "\f144"; +} +.icon-fa-ticket:before { + content: "\f145"; +} +.icon-fa-minus-square:before { + content: "\f146"; +} +.icon-fa-minus-square-o:before { + content: "\f147"; +} +.icon-fa-level-up:before { + content: "\f148"; +} +.icon-fa-level-down:before { + content: "\f149"; +} +.icon-fa-check-square:before { + content: "\f14a"; +} +.icon-fa-pencil-square:before { + content: "\f14b"; +} +.icon-fa-external-link-square:before { + content: "\f14c"; +} +.icon-fa-share-square:before { + content: "\f14d"; +} +.icon-fa-compass:before { + content: "\f14e"; +} +.icon-fa-caret-square-o-down:before { + content: "\f150"; +} +.icon-fa-toggle-down:before { + content: "\f150"; +} +.icon-fa-caret-square-o-up:before { + content: "\f151"; +} +.icon-fa-toggle-up:before { + content: "\f151"; +} +.icon-fa-caret-square-o-right:before { + content: "\f152"; +} +.icon-fa-toggle-right:before { + content: "\f152"; +} +.icon-fa-eur:before { + content: "\f153"; +} +.icon-fa-euro:before { + content: "\f153"; +} +.icon-fa-gbp:before { + content: "\f154"; +} +.icon-fa-dollar:before { + content: "\f155"; +} +.icon-fa-usd:before { + content: "\f155"; +} +.icon-fa-inr:before { + content: "\f156"; +} +.icon-fa-rupee:before { + content: "\f156"; +} +.icon-fa-cny:before { + content: "\f157"; +} +.icon-fa-jpy:before { + content: "\f157"; +} +.icon-fa-rmb:before { + content: "\f157"; +} +.icon-fa-yen:before { + content: "\f157"; +} +.icon-fa-rouble:before { + content: "\f158"; +} +.icon-fa-rub:before { + content: "\f158"; +} +.icon-fa-ruble:before { + content: "\f158"; +} +.icon-fa-krw:before { + content: "\f159"; +} +.icon-fa-won:before { + content: "\f159"; +} +.icon-fa-bitcoin:before { + content: "\f15a"; +} +.icon-fa-btc:before { + content: "\f15a"; +} +.icon-fa-file:before { + content: "\f15b"; +} +.icon-fa-file-text:before { + content: "\f15c"; +} +.icon-fa-sort-alpha-asc:before { + content: "\f15d"; +} +.icon-fa-sort-alpha-desc:before { + content: "\f15e"; +} +.icon-fa-sort-amount-asc:before { + content: "\f160"; +} +.icon-fa-sort-amount-desc:before { + content: "\f161"; +} +.icon-fa-sort-numeric-asc:before { + content: "\f162"; +} +.icon-fa-sort-numeric-desc:before { + content: "\f163"; +} +.icon-fa-thumbs-up:before { + content: "\f164"; +} +.icon-fa-thumbs-down:before { + content: "\f165"; +} +.icon-fa-youtube-square:before { + content: "\f166"; +} +.icon-fa-youtube:before { + content: "\f167"; +} +.icon-fa-xing:before { + content: "\f168"; +} +.icon-fa-xing-square:before { + content: "\f169"; +} +.icon-fa-youtube-play:before { + content: "\f16a"; +} +.icon-fa-dropbox:before { + content: "\f16b"; +} +.icon-fa-stack-overflow:before { + content: "\f16c"; +} +.icon-fa-instagram:before { + content: "\f16d"; +} +.icon-fa-flickr:before { + content: "\f16e"; +} +.icon-fa-adn:before { + content: "\f170"; +} +.icon-fa-bitbucket:before { + content: "\f171"; +} +.icon-fa-bitbucket-square:before { + content: "\f172"; +} +.icon-fa-tumblr:before { + content: "\f173"; +} +.icon-fa-tumblr-square:before { + content: "\f174"; +} +.icon-fa-long-arrow-down:before { + content: "\f175"; +} +.icon-fa-long-arrow-up:before { + content: "\f176"; +} +.icon-fa-long-arrow-left:before { + content: "\f177"; +} +.icon-fa-long-arrow-right:before { + content: "\f178"; +} +.icon-fa-apple:before { + content: "\f179"; +} +.icon-fa-windows:before { + content: "\f17a"; +} +.icon-fa-android:before { + content: "\f17b"; +} +.icon-fa-linux:before { + content: "\f17c"; +} +.icon-fa-dribbble:before { + content: "\f17d"; +} +.icon-fa-skype:before { + content: "\f17e"; +} +.icon-fa-foursquare:before { + content: "\f180"; +} +.icon-fa-trello:before { + content: "\f181"; +} +.icon-fa-female:before { + content: "\f182"; +} +.icon-fa-male:before { + content: "\f183"; +} +.icon-fa-gittip:before { + content: "\f184"; +} +.icon-fa-gratipay:before { + content: "\f184"; +} +.icon-fa-sun-o:before { + content: "\f185"; +} +.icon-fa-moon-o:before { + content: "\f186"; +} +.icon-fa-archive:before { + content: "\f187"; +} +.icon-fa-bug:before { + content: "\f188"; +} +.icon-fa-vk:before { + content: "\f189"; +} +.icon-fa-weibo:before { + content: "\f18a"; +} +.icon-fa-renren:before { + content: "\f18b"; +} +.icon-fa-pagelines:before { + content: "\f18c"; +} +.icon-fa-stack-exchange:before { + content: "\f18d"; +} +.icon-fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.icon-fa-arrow-circle-o-left:before { + content: "\f190"; +} +.icon-fa-caret-square-o-left:before { + content: "\f191"; +} +.icon-fa-toggle-left:before { + content: "\f191"; +} +.icon-fa-dot-circle-o:before { + content: "\f192"; +} +.icon-fa-wheelchair:before { + content: "\f193"; +} +.icon-fa-vimeo-square:before { + content: "\f194"; +} +.icon-fa-try:before { + content: "\f195"; +} +.icon-fa-turkish-lira:before { + content: "\f195"; +} +.icon-fa-plus-square-o:before { + content: "\f196"; +} +.icon-fa-space-shuttle:before { + content: "\f197"; +} +.icon-fa-slack:before { + content: "\f198"; +} +.icon-fa-envelope-square:before { + content: "\f199"; +} +.icon-fa-wordpress:before { + content: "\f19a"; +} +.icon-fa-openid:before { + content: "\f19b"; +} +.icon-fa-bank:before { + content: "\f19c"; +} +.icon-fa-institution:before { + content: "\f19c"; +} +.icon-fa-university:before { + content: "\f19c"; +} +.icon-fa-graduation-cap:before { + content: "\f19d"; +} +.icon-fa-mortar-board:before { + content: "\f19d"; +} +.icon-fa-yahoo:before { + content: "\f19e"; +} +.icon-fa-google:before { + content: "\f1a0"; +} +.icon-fa-reddit:before { + content: "\f1a1"; +} +.icon-fa-reddit-square:before { + content: "\f1a2"; +} +.icon-fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.icon-fa-stumbleupon:before { + content: "\f1a4"; +} +.icon-fa-delicious:before { + content: "\f1a5"; +} +.icon-fa-digg:before { + content: "\f1a6"; +} +.icon-fa-pied-piper-pp:before { + content: "\f1a7"; +} +.icon-fa-pied-piper-alt:before { + content: "\f1a8"; +} +.icon-fa-drupal:before { + content: "\f1a9"; +} +.icon-fa-joomla:before { + content: "\f1aa"; +} +.icon-fa-language:before { + content: "\f1ab"; +} +.icon-fa-fax:before { + content: "\f1ac"; +} +.icon-fa-building:before { + content: "\f1ad"; +} +.icon-fa-child:before { + content: "\f1ae"; +} +.icon-fa-paw:before { + content: "\f1b0"; +} +.icon-fa-spoon:before { + content: "\f1b1"; +} +.icon-fa-cube:before { + content: "\f1b2"; +} +.icon-fa-cubes:before { + content: "\f1b3"; +} +.icon-fa-behance:before { + content: "\f1b4"; +} +.icon-fa-behance-square:before { + content: "\f1b5"; +} +.icon-fa-steam:before { + content: "\f1b6"; +} +.icon-fa-steam-square:before { + content: "\f1b7"; +} +.icon-fa-recycle:before { + content: "\f1b8"; +} +.icon-fa-automobile:before { + content: "\f1b9"; +} +.icon-fa-car:before { + content: "\f1b9"; +} +.icon-fa-cab:before { + content: "\f1ba"; +} +.icon-fa-taxi:before { + content: "\f1ba"; +} +.icon-fa-tree:before { + content: "\f1bb"; +} +.icon-fa-spotify:before { + content: "\f1bc"; +} +.icon-fa-deviantart:before { + content: "\f1bd"; +} +.icon-fa-soundcloud:before { + content: "\f1be"; +} +.icon-fa-database:before { + content: "\f1c0"; +} +.icon-fa-file-pdf-o:before { + content: "\f1c1"; +} +.icon-fa-file-word-o:before { + content: "\f1c2"; +} +.icon-fa-file-excel-o:before { + content: "\f1c3"; +} +.icon-fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.icon-fa-file-image-o:before { + content: "\f1c5"; +} +.icon-fa-file-photo-o:before { + content: "\f1c5"; +} +.icon-fa-file-picture-o:before { + content: "\f1c5"; +} +.icon-fa-file-archive-o:before { + content: "\f1c6"; +} +.icon-fa-file-zip-o:before { + content: "\f1c6"; +} +.icon-fa-file-audio-o:before { + content: "\f1c7"; +} +.icon-fa-file-sound-o:before { + content: "\f1c7"; +} +.icon-fa-file-movie-o:before { + content: "\f1c8"; +} +.icon-fa-file-video-o:before { + content: "\f1c8"; +} +.icon-fa-file-code-o:before { + content: "\f1c9"; +} +.icon-fa-vine:before { + content: "\f1ca"; +} +.icon-fa-codepen:before { + content: "\f1cb"; +} +.icon-fa-jsfiddle:before { + content: "\f1cc"; +} +.icon-fa-life-bouy:before { + content: "\f1cd"; +} +.icon-fa-life-buoy:before { + content: "\f1cd"; +} +.icon-fa-life-ring:before { + content: "\f1cd"; +} +.icon-fa-life-saver:before { + content: "\f1cd"; +} +.icon-fa-support:before { + content: "\f1cd"; +} +.icon-fa-circle-o-notch:before { + content: "\f1ce"; +} +.icon-fa-ra:before { + content: "\f1d0"; +} +.icon-fa-rebel:before { + content: "\f1d0"; +} +.icon-fa-resistance:before { + content: "\f1d0"; +} +.icon-fa-empire:before { + content: "\f1d1"; +} +.icon-fa-ge:before { + content: "\f1d1"; +} +.icon-fa-git-square:before { + content: "\f1d2"; +} +.icon-fa-git:before { + content: "\f1d3"; +} +.icon-fa-hacker-news:before { + content: "\f1d4"; +} +.icon-fa-y-combinator-square:before { + content: "\f1d4"; +} +.icon-fa-yc-square:before { + content: "\f1d4"; +} +.icon-fa-tencent-weibo:before { + content: "\f1d5"; +} +.icon-fa-qq:before { + content: "\f1d6"; +} +.icon-fa-wechat:before { + content: "\f1d7"; +} +.icon-fa-weixin:before { + content: "\f1d7"; +} +.icon-fa-paper-plane:before { + content: "\f1d8"; +} +.icon-fa-send:before { + content: "\f1d8"; +} +.icon-fa-paper-plane-o:before { + content: "\f1d9"; +} +.icon-fa-send-o:before { + content: "\f1d9"; +} +.icon-fa-history:before { + content: "\f1da"; +} +.icon-fa-circle-thin:before { + content: "\f1db"; +} +.icon-fa-header:before { + content: "\f1dc"; +} +.icon-fa-paragraph:before { + content: "\f1dd"; +} +.icon-fa-sliders:before { + content: "\f1de"; +} +.icon-fa-share-alt:before { + content: "\f1e0"; +} +.icon-fa-share-alt-square:before { + content: "\f1e1"; +} +.icon-fa-bomb:before { + content: "\f1e2"; +} +.icon-fa-futbol-o:before { + content: "\f1e3"; +} +.icon-fa-soccer-ball-o:before { + content: "\f1e3"; +} +.icon-fa-tty:before { + content: "\f1e4"; +} +.icon-fa-binoculars:before { + content: "\f1e5"; +} +.icon-fa-plug:before { + content: "\f1e6"; +} +.icon-fa-slideshare:before { + content: "\f1e7"; +} +.icon-fa-twitch:before { + content: "\f1e8"; +} +.icon-fa-yelp:before { + content: "\f1e9"; +} +.icon-fa-newspaper-o:before { + content: "\f1ea"; +} +.icon-fa-wifi:before { + content: "\f1eb"; +} +.icon-fa-calculator:before { + content: "\f1ec"; +} +.icon-fa-paypal:before { + content: "\f1ed"; +} +.icon-fa-google-wallet:before { + content: "\f1ee"; +} +.icon-fa-cc-visa:before { + content: "\f1f0"; +} +.icon-fa-cc-mastercard:before { + content: "\f1f1"; +} +.icon-fa-cc-discover:before { + content: "\f1f2"; +} +.icon-fa-cc-amex:before { + content: "\f1f3"; +} +.icon-fa-cc-paypal:before { + content: "\f1f4"; +} +.icon-fa-cc-stripe:before { + content: "\f1f5"; +} +.icon-fa-bell-slash:before { + content: "\f1f6"; +} +.icon-fa-bell-slash-o:before { + content: "\f1f7"; +} +.icon-fa-trash:before { + content: "\f1f8"; +} +.icon-fa-copyright:before { + content: "\f1f9"; +} +.icon-fa-at:before { + content: "\f1fa"; +} +.icon-fa-eyedropper:before { + content: "\f1fb"; +} +.icon-fa-paint-brush:before { + content: "\f1fc"; +} +.icon-fa-birthday-cake:before { + content: "\f1fd"; +} +.icon-fa-area-chart:before { + content: "\f1fe"; +} +.icon-fa-pie-chart:before { + content: "\f200"; +} +.icon-fa-line-chart:before { + content: "\f201"; +} +.icon-fa-lastfm:before { + content: "\f202"; +} +.icon-fa-lastfm-square:before { + content: "\f203"; +} +.icon-fa-toggle-off:before { + content: "\f204"; +} +.icon-fa-toggle-on:before { + content: "\f205"; +} +.icon-fa-bicycle:before { + content: "\f206"; +} +.icon-fa-bus:before { + content: "\f207"; +} +.icon-fa-ioxhost:before { + content: "\f208"; +} +.icon-fa-angellist:before { + content: "\f209"; +} +.icon-fa-cc:before { + content: "\f20a"; +} +.icon-fa-ils:before { + content: "\f20b"; +} +.icon-fa-shekel:before { + content: "\f20b"; +} +.icon-fa-sheqel:before { + content: "\f20b"; +} +.icon-fa-meanpath:before { + content: "\f20c"; +} +.icon-fa-buysellads:before { + content: "\f20d"; +} +.icon-fa-connectdevelop:before { + content: "\f20e"; +} +.icon-fa-dashcube:before { + content: "\f210"; +} +.icon-fa-forumbee:before { + content: "\f211"; +} +.icon-fa-leanpub:before { + content: "\f212"; +} +.icon-fa-sellsy:before { + content: "\f213"; +} +.icon-fa-shirtsinbulk:before { + content: "\f214"; +} +.icon-fa-simplybuilt:before { + content: "\f215"; +} +.icon-fa-skyatlas:before { + content: "\f216"; +} +.icon-fa-cart-plus:before { + content: "\f217"; +} +.icon-fa-cart-arrow-down:before { + content: "\f218"; +} +.icon-fa-diamond:before { + content: "\f219"; +} +.icon-fa-ship:before { + content: "\f21a"; +} +.icon-fa-user-secret:before { + content: "\f21b"; +} +.icon-fa-motorcycle:before { + content: "\f21c"; +} +.icon-fa-street-view:before { + content: "\f21d"; +} +.icon-fa-heartbeat:before { + content: "\f21e"; +} +.icon-fa-venus:before { + content: "\f221"; +} +.icon-fa-mars:before { + content: "\f222"; +} +.icon-fa-mercury:before { + content: "\f223"; +} +.icon-fa-intersex:before { + content: "\f224"; +} +.icon-fa-transgender:before { + content: "\f224"; +} +.icon-fa-transgender-alt:before { + content: "\f225"; +} +.icon-fa-venus-double:before { + content: "\f226"; +} +.icon-fa-mars-double:before { + content: "\f227"; +} +.icon-fa-venus-mars:before { + content: "\f228"; +} +.icon-fa-mars-stroke:before { + content: "\f229"; +} +.icon-fa-mars-stroke-v:before { + content: "\f22a"; +} +.icon-fa-mars-stroke-h:before { + content: "\f22b"; +} +.icon-fa-neuter:before { + content: "\f22c"; +} +.icon-fa-genderless:before { + content: "\f22d"; +} +.icon-fa-facebook-official:before { + content: "\f230"; +} +.icon-fa-pinterest-p:before { + content: "\f231"; +} +.icon-fa-whatsapp:before { + content: "\f232"; +} +.icon-fa-server:before { + content: "\f233"; +} +.icon-fa-user-plus:before { + content: "\f234"; +} +.icon-fa-user-times:before { + content: "\f235"; +} +.icon-fa-bed:before { + content: "\f236"; +} +.icon-fa-hotel:before { + content: "\f236"; +} +.icon-fa-viacoin:before { + content: "\f237"; +} +.icon-fa-train:before { + content: "\f238"; +} +.icon-fa-subway:before { + content: "\f239"; +} +.icon-fa-medium:before { + content: "\f23a"; +} +.icon-fa-y-combinator:before { + content: "\f23b"; +} +.icon-fa-yc:before { + content: "\f23b"; +} +.icon-fa-optin-monster:before { + content: "\f23c"; +} +.icon-fa-opencart:before { + content: "\f23d"; +} +.icon-fa-expeditedssl:before { + content: "\f23e"; +} +.icon-fa-battery:before { + content: "\f240"; +} +.icon-fa-battery-4:before { + content: "\f240"; +} +.icon-fa-battery-full:before { + content: "\f240"; +} +.icon-fa-battery-3:before { + content: "\f241"; +} +.icon-fa-battery-three-quarters:before { + content: "\f241"; +} +.icon-fa-battery-2:before { + content: "\f242"; +} +.icon-fa-battery-half:before { + content: "\f242"; +} +.icon-fa-battery-1:before { + content: "\f243"; +} +.icon-fa-battery-quarter:before { + content: "\f243"; +} +.icon-fa-battery-0:before { + content: "\f244"; +} +.icon-fa-battery-empty:before { + content: "\f244"; +} +.icon-fa-mouse-pointer:before { + content: "\f245"; +} +.icon-fa-i-cursor:before { + content: "\f246"; +} +.icon-fa-object-group:before { + content: "\f247"; +} +.icon-fa-object-ungroup:before { + content: "\f248"; +} +.icon-fa-sticky-note:before { + content: "\f249"; +} +.icon-fa-sticky-note-o:before { + content: "\f24a"; +} +.icon-fa-cc-jcb:before { + content: "\f24b"; +} +.icon-fa-cc-diners-club:before { + content: "\f24c"; +} +.icon-fa-clone:before { + content: "\f24d"; +} +.icon-fa-balance-scale:before { + content: "\f24e"; +} +.icon-fa-hourglass-o:before { + content: "\f250"; +} +.icon-fa-hourglass-1:before { + content: "\f251"; +} +.icon-fa-hourglass-start:before { + content: "\f251"; +} +.icon-fa-hourglass-2:before { + content: "\f252"; +} +.icon-fa-hourglass-half:before { + content: "\f252"; +} +.icon-fa-hourglass-3:before { + content: "\f253"; +} +.icon-fa-hourglass-end:before { + content: "\f253"; +} +.icon-fa-hourglass:before { + content: "\f254"; +} +.icon-fa-hand-grab-o:before { + content: "\f255"; +} +.icon-fa-hand-rock-o:before { + content: "\f255"; +} +.icon-fa-hand-paper-o:before { + content: "\f256"; +} +.icon-fa-hand-stop-o:before { + content: "\f256"; +} +.icon-fa-hand-scissors-o:before { + content: "\f257"; +} +.icon-fa-hand-lizard-o:before { + content: "\f258"; +} +.icon-fa-hand-spock-o:before { + content: "\f259"; +} +.icon-fa-hand-pointer-o:before { + content: "\f25a"; +} +.icon-fa-hand-peace-o:before { + content: "\f25b"; +} +.icon-fa-trademark:before { + content: "\f25c"; +} +.icon-fa-registered:before { + content: "\f25d"; +} +.icon-fa-creative-commons:before { + content: "\f25e"; +} +.icon-fa-gg:before { + content: "\f260"; +} +.icon-fa-gg-circle:before { + content: "\f261"; +} +.icon-fa-tripadvisor:before { + content: "\f262"; +} +.icon-fa-odnoklassniki:before { + content: "\f263"; +} +.icon-fa-odnoklassniki-square:before { + content: "\f264"; +} +.icon-fa-get-pocket:before { + content: "\f265"; +} +.icon-fa-wikipedia-w:before { + content: "\f266"; +} +.icon-fa-safari:before { + content: "\f267"; +} +.icon-fa-chrome:before { + content: "\f268"; +} +.icon-fa-firefox:before { + content: "\f269"; +} +.icon-fa-opera:before { + content: "\f26a"; +} +.icon-fa-internet-explorer:before { + content: "\f26b"; +} +.icon-fa-television:before { + content: "\f26c"; +} +.icon-fa-tv:before { + content: "\f26c"; +} +.icon-fa-contao:before { + content: "\f26d"; +} +.icon-fa-500px:before { + content: "\f26e"; +} +.icon-fa-amazon:before { + content: "\f270"; +} +.icon-fa-calendar-plus-o:before { + content: "\f271"; +} +.icon-fa-calendar-minus-o:before { + content: "\f272"; +} +.icon-fa-calendar-times-o:before { + content: "\f273"; +} +.icon-fa-calendar-check-o:before { + content: "\f274"; +} +.icon-fa-industry:before { + content: "\f275"; +} +.icon-fa-map-pin:before { + content: "\f276"; +} +.icon-fa-map-signs:before { + content: "\f277"; +} +.icon-fa-map-o:before { + content: "\f278"; +} +.icon-fa-map:before { + content: "\f279"; +} +.icon-fa-commenting:before { + content: "\f27a"; +} +.icon-fa-commenting-o:before { + content: "\f27b"; +} +.icon-fa-houzz:before { + content: "\f27c"; +} +.icon-fa-vimeo:before { + content: "\f27d"; +} +.icon-fa-black-tie:before { + content: "\f27e"; +} +.icon-fa-fonticons:before { + content: "\f280"; +} +.icon-fa-reddit-alien:before { + content: "\f281"; +} +.icon-fa-edge:before { + content: "\f282"; +} +.icon-fa-credit-card-alt:before { + content: "\f283"; +} +.icon-fa-codiepie:before { + content: "\f284"; +} +.icon-fa-modx:before { + content: "\f285"; +} +.icon-fa-fort-awesome:before { + content: "\f286"; +} +.icon-fa-usb:before { + content: "\f287"; +} +.icon-fa-product-hunt:before { + content: "\f288"; +} +.icon-fa-mixcloud:before { + content: "\f289"; +} +.icon-fa-scribd:before { + content: "\f28a"; +} +.icon-fa-pause-circle:before { + content: "\f28b"; +} +.icon-fa-pause-circle-o:before { + content: "\f28c"; +} +.icon-fa-stop-circle:before { + content: "\f28d"; +} +.icon-fa-stop-circle-o:before { + content: "\f28e"; +} +.icon-fa-shopping-bag:before { + content: "\f290"; +} +.icon-fa-shopping-basket:before { + content: "\f291"; +} +.icon-fa-hashtag:before { + content: "\f292"; +} +.icon-fa-bluetooth:before { + content: "\f293"; +} +.icon-fa-bluetooth-b:before { + content: "\f294"; +} +.icon-fa-percent:before { + content: "\f295"; +} +.icon-fa-gitlab:before { + content: "\f296"; +} +.icon-fa-wpbeginner:before { + content: "\f297"; +} +.icon-fa-wpforms:before { + content: "\f298"; +} +.icon-fa-envira:before { + content: "\f299"; +} +.icon-fa-universal-access:before { + content: "\f29a"; +} +.icon-fa-wheelchair-alt:before { + content: "\f29b"; +} +.icon-fa-question-circle-o:before { + content: "\f29c"; +} +.icon-fa-blind:before { + content: "\f29d"; +} +.icon-fa-audio-description:before { + content: "\f29e"; +} +.icon-fa-volume-control-phone:before { + content: "\f2a0"; +} +.icon-fa-braille:before { + content: "\f2a1"; +} +.icon-fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.icon-fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.icon-fa-asl-interpreting:before { + content: "\f2a3"; +} +.icon-fa-deaf:before { + content: "\f2a4"; +} +.icon-fa-deafness:before { + content: "\f2a4"; +} +.icon-fa-hard-of-hearing:before { + content: "\f2a4"; +} +.icon-fa-glide:before { + content: "\f2a5"; +} +.icon-fa-glide-g:before { + content: "\f2a6"; +} +.icon-fa-sign-language:before { + content: "\f2a7"; +} +.icon-fa-signing:before { + content: "\f2a7"; +} +.icon-fa-low-vision:before { + content: "\f2a8"; +} +.icon-fa-viadeo:before { + content: "\f2a9"; +} +.icon-fa-viadeo-square:before { + content: "\f2aa"; +} +.icon-fa-snapchat:before { + content: "\f2ab"; +} +.icon-fa-snapchat-ghost:before { + content: "\f2ac"; +} +.icon-fa-snapchat-square:before { + content: "\f2ad"; +} +.icon-fa-pied-piper:before { + content: "\f2ae"; +} +.icon-fa-first-order:before { + content: "\f2b0"; +} +.icon-fa-yoast:before { + content: "\f2b1"; +} +.icon-fa-themeisle:before { + content: "\f2b2"; +} +.icon-fa-google-plus-circle:before { + content: "\f2b3"; +} +.icon-fa-google-plus-official:before { + content: "\f2b3"; +} +.icon-fa-fa:before { + content: "\f2b4"; +} +.icon-fa-font-awesome:before { + content: "\f2b4"; +} +.icon-fa-handshake-o:before { + content: "\f2b5"; +} +.icon-fa-envelope-open:before { + content: "\f2b6"; +} +.icon-fa-envelope-open-o:before { + content: "\f2b7"; +} +.icon-fa-linode:before { + content: "\f2b8"; +} +.icon-fa-address-book:before { + content: "\f2b9"; +} +.icon-fa-address-book-o:before { + content: "\f2ba"; +} +.icon-fa-address-card:before { + content: "\f2bb"; +} +.icon-fa-vcard:before { + content: "\f2bb"; +} +.icon-fa-address-card-o:before { + content: "\f2bc"; +} +.icon-fa-vcard-o:before { + content: "\f2bc"; +} +.icon-fa-user-circle:before { + content: "\f2bd"; +} +.icon-fa-user-circle-o:before { + content: "\f2be"; +} +.icon-fa-user-o:before { + content: "\f2c0"; +} +.icon-fa-id-badge:before { + content: "\f2c1"; +} +.icon-fa-drivers-license:before { + content: "\f2c2"; +} +.icon-fa-id-card:before { + content: "\f2c2"; +} +.icon-fa-drivers-license-o:before { + content: "\f2c3"; +} +.icon-fa-id-card-o:before { + content: "\f2c3"; +} +.icon-fa-quora:before { + content: "\f2c4"; +} +.icon-fa-free-code-camp:before { + content: "\f2c5"; +} +.icon-fa-telegram:before { + content: "\f2c6"; +} +.icon-fa-thermometer:before { + content: "\f2c7"; +} +.icon-fa-thermometer-4:before { + content: "\f2c7"; +} +.icon-fa-thermometer-full:before { + content: "\f2c7"; +} +.icon-fa-thermometer-3:before { + content: "\f2c8"; +} +.icon-fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.icon-fa-thermometer-2:before { + content: "\f2c9"; +} +.icon-fa-thermometer-half:before { + content: "\f2c9"; +} +.icon-fa-thermometer-1:before { + content: "\f2ca"; +} +.icon-fa-thermometer-quarter:before { + content: "\f2ca"; +} +.icon-fa-thermometer-0:before { + content: "\f2cb"; +} +.icon-fa-thermometer-empty:before { + content: "\f2cb"; +} +.icon-fa-shower:before { + content: "\f2cc"; +} +.icon-fa-bath:before { + content: "\f2cd"; +} +.icon-fa-bathtub:before { + content: "\f2cd"; +} +.icon-fa-s15:before { + content: "\f2cd"; +} +.icon-fa-podcast:before { + content: "\f2ce"; +} +.icon-fa-window-maximize:before { + content: "\f2d0"; +} +.icon-fa-window-minimize:before { + content: "\f2d1"; +} +.icon-fa-window-restore:before { + content: "\f2d2"; +} +.icon-fa-times-rectangle:before { + content: "\f2d3"; +} +.icon-fa-window-close:before { + content: "\f2d3"; +} +.icon-fa-times-rectangle-o:before { + content: "\f2d4"; +} +.icon-fa-window-close-o:before { + content: "\f2d4"; +} +.icon-fa-bandcamp:before { + content: "\f2d5"; +} +.icon-fa-grav:before { + content: "\f2d6"; +} +.icon-fa-etsy:before { + content: "\f2d7"; +} +.icon-fa-imdb:before { + content: "\f2d8"; +} +.icon-fa-ravelry:before { + content: "\f2d9"; +} +.icon-fa-eercast:before { + content: "\f2da"; +} +.icon-fa-microchip:before { + content: "\f2db"; +} +.icon-fa-snowflake-o:before { + content: "\f2dc"; +} +.icon-fa-superpowers:before { + content: "\f2dd"; +} +.icon-fa-wpexplorer:before { + content: "\f2de"; +} +.icon-fa-meetup:before { + content: "\f2e0"; +} diff --git a/backend/web/favicon.ico b/backend/web/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..580ed732e86556ec57f3f3395a210246d679c076 Binary files /dev/null and b/backend/web/favicon.ico differ diff --git a/backend/web/fonts/icomoon.eot b/backend/web/fonts/icomoon.eot new file mode 100755 index 0000000000000000000000000000000000000000..3639cc0fc0f51b9bb7668265c2e7ac0fddbee661 Binary files /dev/null and b/backend/web/fonts/icomoon.eot differ diff --git a/backend/web/fonts/icomoon.svg b/backend/web/fonts/icomoon.svg new file mode 100755 index 0000000000000000000000000000000000000000..5b5d24ca711b7a3fd9d08b13802875b845964761 --- /dev/null +++ b/backend/web/fonts/icomoon.svg @@ -0,0 +1,1436 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/fonts/icomoon.ttf b/backend/web/fonts/icomoon.ttf new file mode 100755 index 0000000000000000000000000000000000000000..d2a4096b903b0fbc16fb1599d536f97eee6d36c1 Binary files /dev/null and b/backend/web/fonts/icomoon.ttf differ diff --git a/backend/web/fonts/icomoon.woff b/backend/web/fonts/icomoon.woff new file mode 100755 index 0000000000000000000000000000000000000000..037c5fb3b1019140963f67ef3a8847a492acae4d Binary files /dev/null and b/backend/web/fonts/icomoon.woff differ diff --git a/backend/web/image/7z.svg b/backend/web/image/7z.svg new file mode 100755 index 0000000000000000000000000000000000000000..95384d0eb0785ad0a2690069cce389ad86bf0bbe --- /dev/null +++ b/backend/web/image/7z.svg @@ -0,0 +1,45 @@ + + + + application-x-7zip + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/ace.svg b/backend/web/image/ace.svg new file mode 100755 index 0000000000000000000000000000000000000000..8571468b26bb013f4ccd975bf438171e196a9833 --- /dev/null +++ b/backend/web/image/ace.svg @@ -0,0 +1,45 @@ + + + + application-x-ace + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/archive.svg b/backend/web/image/archive.svg new file mode 100755 index 0000000000000000000000000000000000000000..60dbe4a8165a52703dd41b14acc9fb2dc06005aa --- /dev/null +++ b/backend/web/image/archive.svg @@ -0,0 +1,43 @@ + + + + application-x-archive + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/audio.svg b/backend/web/image/audio.svg new file mode 100755 index 0000000000000000000000000000000000000000..32e3dcf1ac3f08fdd7564d1fbac3ed524a3822ac --- /dev/null +++ b/backend/web/image/audio.svg @@ -0,0 +1,24 @@ + + + + audio-x-generic + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/avi.svg b/backend/web/image/avi.svg new file mode 100755 index 0000000000000000000000000000000000000000..daaf99bd5bc700e0361d458f28e48831fb197a0e --- /dev/null +++ b/backend/web/image/avi.svg @@ -0,0 +1,31 @@ + + + + video-x-msvideo + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/bittorrent.svg b/backend/web/image/bittorrent.svg new file mode 100755 index 0000000000000000000000000000000000000000..f731f3cd3003c1087b6e23cbf905bdb842720082 --- /dev/null +++ b/backend/web/image/bittorrent.svg @@ -0,0 +1,28 @@ + + + + application-x-bittorrent + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/c++.svg b/backend/web/image/c++.svg new file mode 100755 index 0000000000000000000000000000000000000000..8e2ed180035829cf4e7dec99c8da6c1b7f739ecd --- /dev/null +++ b/backend/web/image/c++.svg @@ -0,0 +1,23 @@ + + + + text-x-c++ + Created with Sketch. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/c.svg b/backend/web/image/c.svg new file mode 100755 index 0000000000000000000000000000000000000000..9e6f1c796ffb5c0c95c17f64cd8ccd0c9ae8d7f0 --- /dev/null +++ b/backend/web/image/c.svg @@ -0,0 +1,24 @@ + + + + text-x-c + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/class.svg b/backend/web/image/class.svg new file mode 120000 index 0000000000000000000000000000000000000000..239fbf09814c1c98c27c74de3fb0004c6058eae2 --- /dev/null +++ b/backend/web/image/class.svg @@ -0,0 +1 @@ +/data/wwwroot/yii/backend/web/image/java.svg \ No newline at end of file diff --git a/backend/web/image/css.svg b/backend/web/image/css.svg new file mode 100755 index 0000000000000000000000000000000000000000..4624ee56cb2beec77344f34fbde5d893947d7aac --- /dev/null +++ b/backend/web/image/css.svg @@ -0,0 +1,26 @@ + + + + text-css + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/doc.svg b/backend/web/image/doc.svg new file mode 100755 index 0000000000000000000000000000000000000000..e0cf591631e1fe00c414636547aa6a6d9dd0488f --- /dev/null +++ b/backend/web/image/doc.svg @@ -0,0 +1,18 @@ + + + + application-msword + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/empty.svg b/backend/web/image/empty.svg new file mode 100755 index 0000000000000000000000000000000000000000..60effdb562c41d2aee16a12c591735e2189c6c8b --- /dev/null +++ b/backend/web/image/empty.svg @@ -0,0 +1,26 @@ + + + + empty + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/eps.svg b/backend/web/image/eps.svg new file mode 100755 index 0000000000000000000000000000000000000000..3493945b785fb41bcd46cb9577ee8c330b306456 --- /dev/null +++ b/backend/web/image/eps.svg @@ -0,0 +1,27 @@ + + + + image-x-eps + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/exe.svg b/backend/web/image/exe.svg new file mode 100755 index 0000000000000000000000000000000000000000..1eb9d58554d5cfa92da8eac398db10daceff8535 --- /dev/null +++ b/backend/web/image/exe.svg @@ -0,0 +1,24 @@ + + + + application-x-ms-dos-executable + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/extension.svg b/backend/web/image/extension.svg new file mode 100755 index 0000000000000000000000000000000000000000..7b57b95a298850e95200145d9be09d08b99d3e7d --- /dev/null +++ b/backend/web/image/extension.svg @@ -0,0 +1,24 @@ + + + + extension + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/flash.svg b/backend/web/image/flash.svg new file mode 100755 index 0000000000000000000000000000000000000000..80fc73b7cdcd8b07fe9fd1eec65417ff2db642d4 --- /dev/null +++ b/backend/web/image/flash.svg @@ -0,0 +1,24 @@ + + + + application-x-flash-video + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/folder-open.svg b/backend/web/image/folder-open.svg new file mode 100755 index 0000000000000000000000000000000000000000..5e0d951a1728d5e73966bdbda10677a7498c6516 --- /dev/null +++ b/backend/web/image/folder-open.svg @@ -0,0 +1,28 @@ + + + + folder-open-256px + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/folder.svg b/backend/web/image/folder.svg new file mode 100755 index 0000000000000000000000000000000000000000..d44819531a749235e7740d7bd7ed356c8d9bcacc --- /dev/null +++ b/backend/web/image/folder.svg @@ -0,0 +1,28 @@ + + + + folder-256px + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/gzip.svg b/backend/web/image/gzip.svg new file mode 100755 index 0000000000000000000000000000000000000000..c64c997f0e0693b3bff5e08575df48e200d031cc --- /dev/null +++ b/backend/web/image/gzip.svg @@ -0,0 +1,45 @@ + + + + application-x-gzip + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/h++.svg b/backend/web/image/h++.svg new file mode 100755 index 0000000000000000000000000000000000000000..3c233ef520228b643cfdec5c313edc4bdce61e8a --- /dev/null +++ b/backend/web/image/h++.svg @@ -0,0 +1,26 @@ + + + + text-x-c++hdr + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/html.svg b/backend/web/image/html.svg new file mode 100755 index 0000000000000000000000000000000000000000..02d3b4a5e65b49074f84e4a975764e4096579118 --- /dev/null +++ b/backend/web/image/html.svg @@ -0,0 +1,27 @@ + + + + text-html + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/jar.svg b/backend/web/image/jar.svg new file mode 100755 index 0000000000000000000000000000000000000000..cbfebb9698217d43a9fa5cf923c39aa3c6896500 --- /dev/null +++ b/backend/web/image/jar.svg @@ -0,0 +1,45 @@ + + + + application-x-jar + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/java.svg b/backend/web/image/java.svg new file mode 100755 index 0000000000000000000000000000000000000000..cfe6f3d56994937bc0e45ececc39b243e1fde1c1 --- /dev/null +++ b/backend/web/image/java.svg @@ -0,0 +1,24 @@ + + + + text-x-java + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/js.svg b/backend/web/image/js.svg new file mode 100755 index 0000000000000000000000000000000000000000..c1f68273764a6153ffead57205f1ddd151a4cbc9 --- /dev/null +++ b/backend/web/image/js.svg @@ -0,0 +1,25 @@ + + + + text-x-javascript + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/json.svg b/backend/web/image/json.svg new file mode 120000 index 0000000000000000000000000000000000000000..ca492e24b8ffa47459d37b9dfcfec55c74569c6e --- /dev/null +++ b/backend/web/image/json.svg @@ -0,0 +1 @@ +/data/wwwroot/yii/backend/web/image/txt.svg \ No newline at end of file diff --git a/backend/web/image/md.svg b/backend/web/image/md.svg new file mode 100755 index 0000000000000000000000000000000000000000..fd085a0a3f2f0761bf63edd43df974c77a70a023 --- /dev/null +++ b/backend/web/image/md.svg @@ -0,0 +1,27 @@ + + + + text-x-markdown + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/message.svg b/backend/web/image/message.svg new file mode 100755 index 0000000000000000000000000000000000000000..77b846b47878addc58a78315d4db444c0205439f --- /dev/null +++ b/backend/web/image/message.svg @@ -0,0 +1,28 @@ + + + + message + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/mkv.svg b/backend/web/image/mkv.svg new file mode 100755 index 0000000000000000000000000000000000000000..02c9bec411119fb77161b19aa0c9dbda039e18b7 --- /dev/null +++ b/backend/web/image/mkv.svg @@ -0,0 +1,30 @@ + + + + video-x-mkv + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/mov.svg b/backend/web/image/mov.svg new file mode 100755 index 0000000000000000000000000000000000000000..2e8d422b882c8f73e8d9cadbc9d347967a2830eb --- /dev/null +++ b/backend/web/image/mov.svg @@ -0,0 +1,34 @@ + + + + video-x-mov + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/mp3-playlist.svg b/backend/web/image/mp3-playlist.svg new file mode 100755 index 0000000000000000000000000000000000000000..9ee5d69a03919ad7306f7a9e8c4facd8fecbf922 --- /dev/null +++ b/backend/web/image/mp3-playlist.svg @@ -0,0 +1,24 @@ + + + + audio-x-mp3-playlist + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/mp3.svg b/backend/web/image/mp3.svg new file mode 100755 index 0000000000000000000000000000000000000000..2e5b92a27f9603c960fcd80d598c9fba51645031 --- /dev/null +++ b/backend/web/image/mp3.svg @@ -0,0 +1,32 @@ + + + + audio-x-mpeg + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/mp4.svg b/backend/web/image/mp4.svg new file mode 100755 index 0000000000000000000000000000000000000000..b6baba0eec4d0332ce60819ccc01fba3a63059a2 --- /dev/null +++ b/backend/web/image/mp4.svg @@ -0,0 +1,31 @@ + + + + video-x-mp4 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/ogg.svg b/backend/web/image/ogg.svg new file mode 100755 index 0000000000000000000000000000000000000000..fdb8dd24a6fe437ffd74be2768625c1bfc9c4c4d --- /dev/null +++ b/backend/web/image/ogg.svg @@ -0,0 +1,34 @@ + + + + audio-x-vorbis+ogg + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/pdf.svg b/backend/web/image/pdf.svg new file mode 100755 index 0000000000000000000000000000000000000000..8312d217552b327800ccf818acc0e90934dfedc6 --- /dev/null +++ b/backend/web/image/pdf.svg @@ -0,0 +1,21 @@ + + + + application-pdf + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/perl.svg b/backend/web/image/perl.svg new file mode 100755 index 0000000000000000000000000000000000000000..e6a94e1e307a36d61e19fcfe74172d43efdbe460 --- /dev/null +++ b/backend/web/image/perl.svg @@ -0,0 +1,24 @@ + + + + application-x-perl + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/php.svg b/backend/web/image/php.svg new file mode 100755 index 0000000000000000000000000000000000000000..160395f4b1f10e6f9bec8e9ab5e809f81edd3aea --- /dev/null +++ b/backend/web/image/php.svg @@ -0,0 +1,26 @@ + + + + application-x-php + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/ppt.svg b/backend/web/image/ppt.svg new file mode 100755 index 0000000000000000000000000000000000000000..0d359ba58b476a22e421929067c1347bb6302cb4 --- /dev/null +++ b/backend/web/image/ppt.svg @@ -0,0 +1,21 @@ + + + + application-vnd.ms-powerpoint + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/psd.svg b/backend/web/image/psd.svg new file mode 100755 index 0000000000000000000000000000000000000000..cd3ec61b10c6d6cf1ce5e3b41682caea869d684e --- /dev/null +++ b/backend/web/image/psd.svg @@ -0,0 +1,27 @@ + + + + image-x-psd + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/py.svg b/backend/web/image/py.svg new file mode 100755 index 0000000000000000000000000000000000000000..e86a3320f4679be95d6f53ded802c3c66cfeb47f --- /dev/null +++ b/backend/web/image/py.svg @@ -0,0 +1,27 @@ + + + + text-x-python + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/rar.svg b/backend/web/image/rar.svg new file mode 100755 index 0000000000000000000000000000000000000000..510330ad521f7371d1773257b7a0edc8e3109231 --- /dev/null +++ b/backend/web/image/rar.svg @@ -0,0 +1,45 @@ + + + + application-x-rar + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/rmvb.svg b/backend/web/image/rmvb.svg new file mode 100755 index 0000000000000000000000000000000000000000..38d515ff9d7331a51a62335227483b6c5cbc0070 --- /dev/null +++ b/backend/web/image/rmvb.svg @@ -0,0 +1,38 @@ + + + + video-x-rmvb + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/rpm.svg b/backend/web/image/rpm.svg new file mode 100755 index 0000000000000000000000000000000000000000..2cd13ca8ef380677f8f7c9885c6078a11fe65766 --- /dev/null +++ b/backend/web/image/rpm.svg @@ -0,0 +1,29 @@ + + + + rpm + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/ruby.svg b/backend/web/image/ruby.svg new file mode 100755 index 0000000000000000000000000000000000000000..c2b9e4e09a2c01bfc6955ad161703043da7f4ebd --- /dev/null +++ b/backend/web/image/ruby.svg @@ -0,0 +1,29 @@ + + + + application-x-ruby + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/script.svg b/backend/web/image/script.svg new file mode 100755 index 0000000000000000000000000000000000000000..9fff5b26e2ab7227bd9f0237450dd327f8f64a60 --- /dev/null +++ b/backend/web/image/script.svg @@ -0,0 +1,25 @@ + + + + text-x-script + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/sql.svg b/backend/web/image/sql.svg new file mode 100755 index 0000000000000000000000000000000000000000..7f7ec5d0d67d9371102c4d6c52e2b9121bd8f397 --- /dev/null +++ b/backend/web/image/sql.svg @@ -0,0 +1,29 @@ + + + + text-x-sql + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/txt.svg b/backend/web/image/txt.svg new file mode 100755 index 0000000000000000000000000000000000000000..e5d0e49bf587afeb893c559bcc6ea8887d77d053 --- /dev/null +++ b/backend/web/image/txt.svg @@ -0,0 +1,28 @@ + + + + text-plain + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/unknown.svg b/backend/web/image/unknown.svg new file mode 100755 index 0000000000000000000000000000000000000000..6e9a81f9bd9bc97e10446fca81f319a537767a38 --- /dev/null +++ b/backend/web/image/unknown.svg @@ -0,0 +1,26 @@ + + + + unknown + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/video.svg b/backend/web/image/video.svg new file mode 100755 index 0000000000000000000000000000000000000000..ba48b1e158ba1dcdc02ec37284962f016fd3c761 --- /dev/null +++ b/backend/web/image/video.svg @@ -0,0 +1,24 @@ + + + + video-x-generic + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/wav.svg b/backend/web/image/wav.svg new file mode 100755 index 0000000000000000000000000000000000000000..79fb9e84c1584f37ad1475a455b3e813c83188a8 --- /dev/null +++ b/backend/web/image/wav.svg @@ -0,0 +1,29 @@ + + + + audio-x-wav + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/wma.svg b/backend/web/image/wma.svg new file mode 100755 index 0000000000000000000000000000000000000000..bcba69acb30acd575b74a214b5e70086ec036a5f --- /dev/null +++ b/backend/web/image/wma.svg @@ -0,0 +1,29 @@ + + + + audio-x-ms-wma + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/xls.svg b/backend/web/image/xls.svg new file mode 100755 index 0000000000000000000000000000000000000000..61e143cd83cc0c8001ec69b50a25638ac3a8549d --- /dev/null +++ b/backend/web/image/xls.svg @@ -0,0 +1,18 @@ + + + + application-vnd.ms-excel + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/xml.svg b/backend/web/image/xml.svg new file mode 100755 index 0000000000000000000000000000000000000000..badd62efcdd4d3afbeeeafaed2a6951139d496b6 --- /dev/null +++ b/backend/web/image/xml.svg @@ -0,0 +1,24 @@ + + + + text-xml + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/image/zip.svg b/backend/web/image/zip.svg new file mode 100755 index 0000000000000000000000000000000000000000..6c8dbd0dd8a5350cac2f2fa1d299fab3949037eb --- /dev/null +++ b/backend/web/image/zip.svg @@ -0,0 +1,45 @@ + + + + application-x-zip + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/backend/web/index-test.php b/backend/web/index-test.php new file mode 100755 index 0000000000000000000000000000000000000000..400a495475a253ade4f4b3d780d7724bbe339639 --- /dev/null +++ b/backend/web/index-test.php @@ -0,0 +1,29 @@ +run(); diff --git a/backend/web/index.php b/backend/web/index.php new file mode 100755 index 0000000000000000000000000000000000000000..9c2b7d85be1735a03c4da8991deef2402d4fd7ff --- /dev/null +++ b/backend/web/index.php @@ -0,0 +1,44 @@ +run(); diff --git a/backend/web/robots.txt b/backend/web/robots.txt new file mode 100755 index 0000000000000000000000000000000000000000..77470cb39f05f70a5b709b68304d0756bab75a0d --- /dev/null +++ b/backend/web/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/backend/widgets/alert/widget.xml b/backend/widgets/alert/widget.xml new file mode 100755 index 0000000000000000000000000000000000000000..7f43fd20ba7bfc4a4bd9419672ef2bc3f0f2cdea --- /dev/null +++ b/backend/widgets/alert/widget.xml @@ -0,0 +1,21 @@ + + + WIDGET_ALERT + alert + 1.0.0 + FireLoong + fireloong@foxmail.com + www.fireloong.com + 2019/12/07 + WIDGET_ALERT_XML_DESCRIPTION + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + + widget.xml + adminlte/Widget.php + basic/Widget.php + + + wid_alert.php + + \ No newline at end of file diff --git a/backend/widgets/latest_actions/Widget.php b/backend/widgets/latest_actions/Widget.php new file mode 100755 index 0000000000000000000000000000000000000000..ebda3b8ab60e70153fad5803045323a73f438a53 --- /dev/null +++ b/backend/widgets/latest_actions/Widget.php @@ -0,0 +1,30 @@ +orderBy('log_date DESC') + ->limit($this->count) + ->all(); + return $this->render('run', [ + 'logs' => $logs, + 'bootstrap_size' => $this->bootstrap_size + ]); + } +} diff --git a/backend/widgets/latest_actions/widget.xml b/backend/widgets/latest_actions/widget.xml new file mode 100755 index 0000000000000000000000000000000000000000..0c90b6ed5d5b415a7a0283a7d89aab95770d1b96 --- /dev/null +++ b/backend/widgets/latest_actions/widget.xml @@ -0,0 +1,58 @@ + + + WIDGET_LATEST_ACTIONS + latest_actions + 1.0.0 + FireLoong + fireloong@foxmail.com + www.fireloong.com + 2019/12/07 + WIDGET_LATEST_ACTIONS_XML_DESCRIPTION + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + + widget.xml + Widget.php + basic/run.php + + + wid_latest_actions.php + + + +
+ +
+
+ + + + + + + + + + + + + + +
+
+
+
\ No newline at end of file diff --git a/codeception.yml b/codeception.yml new file mode 100755 index 0000000000000000000000000000000000000000..af201045af04ec54b2985a565c67acf0cffe5af7 --- /dev/null +++ b/codeception.yml @@ -0,0 +1,9 @@ +# global codeception file to run tests from all apps +include: + - common + - frontend + - backend +paths: + log: console/runtime/logs +settings: + colors: true \ No newline at end of file diff --git a/common/assets/AppAsset.php b/common/assets/AppAsset.php new file mode 100755 index 0000000000000000000000000000000000000000..1976b3f911c7c8413882aef880c2f1325dd52a9e --- /dev/null +++ b/common/assets/AppAsset.php @@ -0,0 +1,101 @@ +depends = $this->getDepends(); + } + + /** + * 视图文件中添加CSS文件 + * @param string|array $cssFile 要添加的CSS文件名 + * @param boolean $isAfter 是否放在 $css 后面 + * @return boolean + * @throws \yii\base\InvalidConfigException + */ + public function addCss($cssFile, $isAfter = true) + { + if (is_string($cssFile)) { + $cssFile = array($cssFile); + } + if (!is_array($cssFile)) { + return FALSE; + } + + if (!is_null($this->sourcePath)) { + $url = Yii::$app->assetManager->getPublishedUrl($this->sourcePath); + if (!is_dir($this->basePath . str_replace($this->baseUrl, '', $url))) { + Yii::$app->assetManager->publish($this->sourcePath); + } + } + + $cssFiles = []; + foreach ($cssFile as $item) { + $cssFiles[] = Url::isRelative($item) ? FileHelper::normalizePath($url . '/' . ltrim($item, '/')) : $item; + } + + $bundle = Yii::$app->getAssetManager()->bundles[self::class]; + + $bundle->css = $isAfter ? array_merge($bundle->css, $cssFiles) : array_merge($cssFiles, $bundle->css); + } + + /** + * 视图文件中添加JS文件 + * @param string|array $jsFile 要添加的JS文件名 + * @param boolean $isAfter 是否放在 $js 后面 + * @return boolean + * @throws \yii\base\InvalidConfigException + */ + public function addJs($jsFile, $isAfter = true) + { + if (is_string($jsFile)) { + $jsFile = array($jsFile); + } + if (!is_array($jsFile)) { + return FALSE; + } + if (!is_null($this->sourcePath)) { + $url = Yii::$app->assetManager->getPublishedUrl($this->sourcePath); + if (!is_dir($this->basePath . str_replace($this->baseUrl, '', $url))) { + Yii::$app->assetManager->publish($this->sourcePath); + } + } + + $jsFiles = []; + foreach ($jsFile as $item) { + $jsFiles[] = Url::isRelative($item) ? FileHelper::normalizePath($url . '/' . ltrim($item, '/')) : $item; + } + + $bundle = Yii::$app->getAssetManager()->bundles[self::class]; + + $bundle->js = $isAfter ? array_merge($bundle->js, $jsFiles) : array_merge($jsFiles, $bundle->js); + } + + public function getDepends() + { + return Yii::$app->cache->get(self::CACHE_BUNDLE_KEY) ?: []; + } + + public function setDepends($depends = []) + { + $oldDepends = $this->getDepends(); + Yii::$app->cache->set(self::CACHE_BUNDLE_KEY, array_unique(array_merge($oldDepends, $depends))); + } +} diff --git a/common/codeception.yml b/common/codeception.yml new file mode 100755 index 0000000000000000000000000000000000000000..74b1aaf85ab6fd693467a7b4e9e052b5ca580cb3 --- /dev/null +++ b/common/codeception.yml @@ -0,0 +1,15 @@ +namespace: common\tests +actor_suffix: Tester +paths: + tests: tests + output: tests/_output + data: tests/_data + support: tests/_support +settings: + bootstrap: _bootstrap.php + colors: true + memory_limit: 1024M +modules: + config: + Yii2: + configFile: 'config/codeception-local.php' diff --git a/common/components/FireLoongMarkdown.php b/common/components/FireLoongMarkdown.php new file mode 100755 index 0000000000000000000000000000000000000000..3701292a8b7f3954b6b4c64a7f32985bf7468d2f --- /dev/null +++ b/common/components/FireLoongMarkdown.php @@ -0,0 +1,233 @@ +theme = $theme; + + } + + /** + * Consume lines for a headline + */ + protected function consumeHeadline($lines, $current) + { + if ($lines[$current][0] === '#') { + // ATX headline + $level = 1; + while (isset($lines[$current][$level]) && $lines[$current][$level] === '#' && $level < 6) { + $level++; + } + $block = [ + 'headline', + 'content' => $this->parseInline(trim($lines[$current], "# \t")), + 'level' => $level, + 'current' => $current + ]; + return [$block, $current]; + } else { + // underlined headline + $block = [ + 'headline', + 'content' => $this->parseInline($lines[$current]), + 'level' => $lines[$current + 1][0] === '=' ? 1 : 2, + 'current' => $current + ]; + return [$block, $current + 1]; + } + } + + /** + * Renders a headline + * @param array $block + * @return string + */ + protected function renderHeadline($block) + { + $tag = 'h' . $block['level']; + $content = $this->renderAbsy($block['content']); + return Html::tag($tag, $content, ['id' => '_' . ($block['current'] + 1)]); + } + + /** + * 引用块标识 + * @param string $line + * @return bool + */ + protected function identifyQuoteRank($line) + { + $matches = false; + $regex = "/^>(?:\[(default|info|warning|success|danger)\])(?:\[(left|right)\])?/"; + preg_match($regex, $line, $matches); + if (isset($matches[1])) { + $level = $line[strlen($matches[1]) + 3]; + if (!isset($level) || $level === ' ' || $level === "\t") { + return true; + } elseif (isset($matches[2])) { + $reverse = $line[strlen($matches[1] . $matches[2]) + 5]; + if (!isset($reverse) || $reverse === ' ' || $reverse === "\t") { + return true; + } + } + } + return false; + } + + /** + * 定义引用块信息 + * @param array $lines + * @param int $current + * @return array + */ + protected function consumeQuoteRank($lines, $current) + { + $string = rtrim($lines[$current]); + $matches = false; + $regex = "/^>(?:\[(default|info|warning|success|danger)\])(?:\[(left|right)\])?/"; + preg_match($regex, $string, $matches); + $content = []; + for ($i = $current, $count = count($lines); $i < $count; $i++) { + $line = $lines[$i]; + if (ltrim($line) !== '') { + if ($line[0] == '>' && !isset($line[1])) { + $line = ''; + } elseif (strncmp($line, '>[' . $matches[1] . ']', strlen($matches[1]) + 3) === 0 && !isset($matches[2])) { + $line = substr($line, strlen($matches[1]) + 3); + } elseif (isset($matches[2]) && strncmp($line, '>[' . $matches[1] . '][' . $matches[2] . ']', strlen($matches[1] . $matches[2]) + 5) === 0) { + $line = substr($line, strlen($matches[1] . $matches[2]) + 5); + } + $content[] = $line; + } else { + break; + } + } + + $block = [ + 'quoteRank', + 'content' => $this->parseBlocks($content), + 'level' => false, + 'reverse' => false + ]; + + + $block['level'] = $matches[1]; + if (isset($matches[2])) { + $block['reverse'] = $matches[2]; + } + return [$block, $i]; + } + + /** + * 显示引用块 + * @param array $block + * @return string + */ + protected function renderQuoteRank($block) + { + $reverseClass = $block['reverse'] == 'right' ? ' blockquote-reverse' : ''; + return '
' . $this->renderAbsy($block['content']) . '
'; + } + + /** + * Codepen identifier + * @param $line + * @param $lines + * @param $current + * @return bool + */ + protected function identifyCodepen($line, $lines, $current) + { + if (strncmp($line, 'codepen[', 8) === 0) { + return true; + } + return false; + } + + /** + * Codepen Consumer + * + * @param array $lines All lines in document + * @param int $current Current line + * @return array An array of a block and linenumber to continue consuming + */ + protected function consumeCodepen($lines, $current) + { + $block = [ + 'Codepen', + 'content' => [], + 'pen' => false, + 'height' => false, + 'tab' => false, + 'theme' => false + ]; + + $line = rtrim($lines[$current]); + $matches = false; + + /** + * Regular expression that matches: + * - A string starting with "codepen" + * The pen identifier - A string of alpha characters minimum of 4 characters and maximum of 8, between brackets. + * The height of the pen - An integer with a minimum length of 2 and maximum of 5, between brackets. + * The active tab - (optional) A string equal to one of four options; 'html', 'css', 'js' or 'result', between brackets. + * The theme for the pen - (optional) An integer with a minimum length of 1 and a maximum of 6, between brackets. + */ + $regex = "/^codepen(?:\[([A-z]{4,8})\])(?:\[(\d{2,5})\])(?:\[(html|css|js|result)\])?(?:\[(\d{1,6})\])?$/"; + preg_match($regex, $line, $matches); + + if (count($matches) < 3) return [$block, $current++]; + + $block['pen'] = $matches[1]; + $block['height'] = $matches[2]; + + if (isset($matches[3])) { + $block['tab'] = $matches[3]; + } + if (isset($matches[4])) { + $block['theme'] = $matches[4]; + } + + return [$block, $current++]; + } + + /** + * Codepen Renderer + * + * @param array $block + * @return string HTML that should be rendered + */ + protected function renderCodepen($block) + { + if (!isset($block['pen'])) return false; + + $pen = $block['pen']; + $height = $block['height']; + $tab = 'result'; + $theme = $this->theme; + + if ($block['tab']) { + $tab = $block['tab']; + } + + if ($block['theme']) { + $theme = $block['theme']; + } + + return "

"; + } +} \ No newline at end of file diff --git a/common/components/HelloBehavior.php b/common/components/HelloBehavior.php new file mode 100755 index 0000000000000000000000000000000000000000..a40e4389048c191e6f8c648ce352d464dc489cad --- /dev/null +++ b/common/components/HelloBehavior.php @@ -0,0 +1,54 @@ + 'hello', + //\yii\db\ActiveRecord::EVENT_INIT => 'inits', + //\yii\base\Module::EVENT_BEFORE_ACTION => 'beforeAction', + \yii\base\Model::EVENT_AFTER_VALIDATE => 'afterValidate' + ]; + } + public function hello($event) + { + $vars = []; + foreach (get_object_vars($event->sender) as $var => $object) { + $vars[] = $var; + } + print_r($vars); + print_r($event->sender->loadedModules); + exit; + } + + public function beforeAction($event) + { + echo 'beforeAction'.PHP_EOL; + } + public function inits($event) + { + //print_r($event->sender->user); +// print_r($event->sender->errors); +// exit; +// $content = \yii\helpers\VarDumper::export($event); +// file_put_contents(Yii::getAlias('@common/tmp/a.txt'),$content); + echo 'hehe'; + } + + public function afterValidate($event) + { + print_r($event); + exit; + } +} diff --git a/common/components/Helper.php b/common/components/Helper.php new file mode 100755 index 0000000000000000000000000000000000000000..042ab33b18cb9497ccc320d5a46ac2b61b49b41f --- /dev/null +++ b/common/components/Helper.php @@ -0,0 +1,554 @@ +cache->getOrSet($cacheKey, function () use ($menuType) { + $query = new Query(); + $query->select('*')->from('{{%menu}}') + ->where(['published' => 1]); + + if (!empty($menuType) && is_string($menuType)) { + $query->andWhere(['menutype' => $menuType]); + } + + + return $query->orderBy('ordering')->all(); + }); + + $checkMenus = []; + foreach ($menus as $menu) { + if (empty($menu['route']) || AdminHelper::checkRoute($menu['route'])) { + $checkMenus[] = $menu; + } elseif (self::checkAccess($menu['route'])) { + $checkMenus[] = $menu; + } + } + + return $checkMenus; + } + + protected function checkAccess($route) + { + $accessControl = Yii::$app->behaviors['access']; + foreach ($accessControl->allowActions as $allowAction) { + if (substr($allowAction, -1) === '*') { + $allowAction = rtrim($allowAction, '*'); + if ($allowAction === '' || strpos($route, AdminHelper::normalizeRoute($allowAction, true)) === 0) { + return true; + } + } else { + if ($route === $allowAction) { + return true; + } + } + } + return false; + } + + /** + * 获取菜单树形数组 + * @param string $menuType 菜单类型名称 + * @param int|null $id ID + * @param int $maxLevel 最大等级 + * @return array 返回菜单树形数组 + */ + public static function getAssignedMenu($menuType, $id = null, $maxLevel = 0) + { + $treeMenus = static::getTree(static::getMenus($menuType), $id, $maxLevel); + return static::navItems($treeMenus); + } + + /** + * 获取树形数组 + * @param array $array 数组 + * @param int|null $id ID + * @param int $maxLevel 最大等级 + * @return array 返回树形数组 + */ + public static function getTree($array, $id = null, $maxLevel = 0) + { + $tree = []; + foreach ($array as $item) { + if ($item['parent'] == $id && ($item['level'] < $maxLevel || $maxLevel == 0)) { + $item['children'] = static::getTree($array, $item['id'], $maxLevel); + $tree[] = $item; + } + } + return $tree; + } + + /** + * 返回线性二维数组菜单 + * @param string $menuType 菜单类型 + * @param array $menus + * @param int $id ID + * @return array + */ + public static function getLineMenus($menuType = '', $menus = [], $id = 0) + { + $dataset = static::buildData($menuType, $menus); + $newData = []; + foreach ($dataset as $pid => $item) { + $end = end($item); + $res = array_merge($end, ['end' => 1]); + $item[$res['id']] = $res; + $newData[$pid] = $item; + } + return static::makeTree($id, $newData); + } + + /** + * 将菜单数组转换为 bootstrap Nav 所需的数组 + * @param array $menus + * @return array + */ + public static function navItems($menus) + { + $items = []; + foreach ($menus as $menu) { + $data = json_decode($menu['data'], true); + $isCat = isset($data['lang-cat']) && !empty(isset($data['lang-cat'])); + $lable = $isCat ? Yii::t($data['lang-cat'], $menu['name']) : $menu['name']; + if (empty($menu['children'])) { + if ($menu['type'] === 'separator') { + $items[$menu['id']] = Html::tag('li', '', ['class' => 'divider']); + } else { + $items[$menu['id']] = [ + 'label' => $lable, + 'url' => empty($menu['route']) ? null : [strstr($menu['route'], '/')] + ]; + } + } else { + $items[$menu['id']] = [ + 'label' => $lable, + 'url' => null, + 'items' => static::navItems($menu['children']), + 'linkOptions' => [ + 'role' => 'button', + 'aria-haspopup' => 'true' + ] + ]; + } + } + return $items; + } + + /** + * 得到当前位置菜单数组 + * @param int $myid + * @param string $menuType + * @param array $newarr + * @return boolean|array + */ + public static function getPos($myid, $menuType, &$newarr = []) + { + $newData = []; + foreach (static::getMenus($menuType) as $item) { + $newData[$item['id']] = $item; + } + + if (!isset($newData[$myid])) { + return false; + } + + $newarr[] = $newData[$myid]; + $pid = $newData[$myid]['parent']; + if (isset($newData[$pid])) { + self::getPos($pid, $menuType, $newarr); + } + $a = []; + if (is_array($newarr)) { + krsort($newarr); + foreach ($newarr as $v) { + $a[$v['id']] = $v; + } + } + return $a; + } + + /** + * 获取菜单的顶级项 + * @param int $myid + * @param string $menuType + * @param array $array + * @return array + */ + public static function getTop($myid, $menuType = '', $array = []) + { + $menu = []; + if (empty($array)) { + $array = static::getMenus($menuType) ?? []; + } + foreach ($array as $item) { + if ($item['id'] == $myid) { + if ($item['parent'] === null) { + $menu = $item; + } else { + $menu = static::getTop($item['parent'], $menuType, $array); + } + } + } + return $menu; + } + + /** + * 添加侧栏菜单项 + * @param string $active + * @return array + */ + public static function addSubmenus($active = null) + { + $items = []; + foreach (static::$entries as $key => $item) { + if (isset($item['url'])) { + $items[] = [ + 'label' => $item['label'], + 'url' => $item['url'], + 'active' => $active == $key + ]; + } else { + $items[] = ''; + } + } + return $items; + } + + /** + * 添加一项侧栏菜单 + * @param string $label + * @param string|array $url + * @param string|null $key + */ + public static function addEntry($label, $url = '', $key = null) + { + if ($key === null) { + if ($url === '') { + static::$entries[] = ['label' => $label]; + } else { + static::$entries[] = ['label' => $label, 'url' => $url]; + } + } else { + static::$entries[$key]['label'] = $label; + if ($url !== '') { + static::$entries[$key]['url'] = $url; + } + } + } + + /** + * 添加多项侧栏菜单 + * @param array $entries + */ + public static function addEntries($entries = []) + { + if (count($entries)) { + foreach ($entries as $entry) { + static::addEntry($entry['label'], $entry['url'] ?? '', $entry['key'] ?? null); + } + } + } + + /** + * 获取侧栏菜单项 + * @param string $key + * @return array + */ + public static function getEntries($key = null) + { + return $key === null ? static::$entries : static::$entries[$key]; + } + + /** + * 移除侧栏菜单 + * @param string $key + */ + public static function unEntries($key = null) + { + if ($key === null) { + static::$entries = []; + } else { + unset(static::$entries[$key]); + } + } + + /** + * 获取 $myid 下的子数组 + * @param int $myid ID + * @return array|boolean + */ + public static function getChild($myid) + { + $newData = []; + foreach (static::getMenus() as $item) { + $newData[$item['id']] = $item; + } + $newArr = []; + if (is_array($newData)) { + foreach ($newData as $id => $a) { + if ($a['parent'] == $myid) { + $newArr[$id] = $a; + } + } + } + + return $newArr ?? false; + } + + /** + * 获取 $myid 下的所有子 id 数组 + * @param int $myid ID + * @return array + */ + public static function getAllChildids($myid = null) + { + $child = static::getChild($myid); + $total = $child ? count($child) : 0; + $ids = []; + if ($total > 0) { + foreach ($child as $id => $value) { + $ids[] = $id; + $ids = array_merge($ids, static::getAllChildids($id)); + } + } + return $ids; + } + + /** + * 给每个菜单项计算并增加 lft 和 rgt 值 + * @param array $menus + * @return array + */ + public static function resetLftRgt($menus = []) + { + $lineMenus = static::getLineMenus('', $menus); + + foreach ($lineMenus as $key => &$item) { + $childrenCount = count(static::getAllChildids($item['id'])) + 1; + if ($item['parent'] === null) { + $item['lft'] = $key * 2; + $item['rgt'] = $key * 2 + $childrenCount * 2 - 1; + } else { + $preMenu = $lineMenus[$key - 1]; + $pml = $preMenu['lft']; + $pmr = $preMenu['rgt']; + $levelDiff = $preMenu['level'] - $item['level']; + $item['lft'] = $pmr - $pml > 1 ? $pml + 1 : $pmr + 1 + $levelDiff; + $item['rgt'] = $childrenCount == 1 ? $item['lft'] + 1 : $item['lft'] + $childrenCount * 2 - 1; + } + } + + return $lineMenus; + } + + /** + * 格式化数据 + * @param string $menuType 菜单类型 + * @param array $data 菜单数据 + * @return array + */ + private static function buildData($menuType = '', $data = []) + { + if (empty($data)) { + $data = static::getMenus($menuType) ?? []; + } + $menus = []; + foreach ($data as $item) { + $parent = $item['parent'] ?? 0; + $menus[$parent][$item['id']] = $item; + } + return $menus; + } + + /** + * 生成树核心 + * @param int $myid + * @param array $data + * @param array $res + * @return array + */ + private static function makeTree($myid, $data = [], &$res = []) + { + if (!isset($data[$myid])) { + return []; + } + + foreach ($data[$myid] as $id => $item) { + $res[] = $item; + if (isset($data[$id])) { + static::makeTree($id, $data, $res); + } + } + + return $res; + } + + /** + * 获取当前应用目录名称 + * @return bool|string 成功返回应用目录名称,否则返回 false + */ + public static function getClient() + { + $rootPath = Yii::getAlias('@root/'); + $basePath = Yii::$app->basePath; + if (StringHelper::startsWith($basePath, $rootPath)) { + return substr($basePath, strlen($rootPath)); + } else { + return false; + } + } + + /** + * 获取相对项目路径 + * @param string $path 绝对路径 + * @return string + */ + public static function getRelativePath($path) + { + $root = Yii::getAlias('@root'); + if (StringHelper::startsWith($path, $root)) { + $path = '.' . substr($path, strlen($root)); + } + return $path; + } + + /** + * 模型获取的错误数组信息转化成显示的字符串 + * @param array $errors + * @param string $glue + * @param bool $isKey + * @return string + */ + public static function errorsToString($errors, $glue = '
', $isKey = false) + { + $errorsString = ''; + foreach ($errors as $key => $error) { + foreach ($error as $item) { + $errorsString .= $glue . ($isKey ? $key . ': ' : '') . $item; + } + } + return substr($errorsString, strlen($glue)); + } + + public static function addAssetJsFile($view, $sourcePath, $js, $depends = [], $isAfter = true) + { + $asset = new AppAsset(); + $asset->sourcePath = $sourcePath; + $asset->setDepends($depends); + AppAsset::register($view); + $asset->addJs($js, $isAfter); + } + + public static function addAssetCssFile($view, $sourcePath, $css, $depends = [], $isAfter = true) + { + $asset = new AppAsset(); + $asset->sourcePath = $sourcePath; + $asset->setDepends($depends); + AppAsset::register($view); + $asset->addCss($css, $isAfter); + } + + /** + * 显示小部件 + * @param $name + * @param array $config + * @return string + */ + public static function widget($name, $config = []) + { + $className = self::getClient() . '\widgets\\' . $name . '\Widget'; + $theme = Yii::$app->params['global']['theme']; + $themeClassName = self::getClient() . '\themes\\' . $theme . '\widgets\\' . $name . '\Widget'; + if (class_exists($className)) { + return $className::widget($config); + } elseif (class_exists($themeClassName)) { + return $themeClassName::widget($config); + } else { + return ''; + } + } + + /** + * 显示在 $position 位置挂钩的所有小部件 + * @param string $position 位置标识 + * @param array $attrs 属性 + * @return mixed + */ + public static function hook($position, $attrs = []) + { + $client = \backend\models\Clients::findOne(['name' => static::getClient()]); + $widgets = \backend\modules\widgets\models\Widgets::find() + ->where([ + 'position' => $position, + 'client_id' => $client->id, + 'published' => 1 + ]) + ->orderBy('ordering') + ->all(); + if ($widgets) { + $wHtml = ''; + foreach ($widgets as $widget) { + $wHtml .= self::widget($widget->widget, json_decode($widget->params, true)); + } + return $wHtml; + } else { + return ''; + } + } + + /** + * 运行其它应用 + * @param $client 应用名称 + * @return mixed|\yii\console\Application|\yii\web\Application + */ + public static function runApp($client) + { + if (self::getClient() === $client) { + return Yii::$app; + } else { + return Yii::$app->cache->getOrSet($client . '_client_app', function () use ($client) { + $advanced = Configs::instance()->advanced; + $config = []; + foreach ($advanced[$client] as $configPath) { + $config = ArrayHelper::merge($config, require(Yii::getAlias($configPath))); + } + unset($config['bootstrap'], $config['on beforeRequest']); + $app = new \yii\web\Application($config); + return $app; + }); + } + } + + public static function menu($type,$options=[]) + { + $menus = Menu::find()->where(['menutype'=>$type,'published'=>1])->orderBy('lft')->all(); + return $menus; + } +} diff --git a/common/components/JsonValidator.php b/common/components/JsonValidator.php new file mode 100755 index 0000000000000000000000000000000000000000..c35ded2a7db9c714a349bd3911d86da25ba04b76 --- /dev/null +++ b/common/components/JsonValidator.php @@ -0,0 +1,48 @@ + [ + 'class' => 'cebe\markdown\Markdown', + 'html5' => true, + ], + 'gfm' => [ + 'class' => 'cebe\markdown\GithubMarkdown', + 'html5' => true, + ], + 'gfm-comment' => [ + 'class' => 'cebe\markdown\GithubMarkdown', + 'html5' => true, + 'enableNewlines' => true, + ], + 'extra' => [ + 'class' => 'cebe\markdown\MarkdownExtra', + 'html5' => true, + ], + 'flm' => [ + 'class' => 'common\components\FireLoongMarkdown', + 'html5' => true + ] + ]; + + /** + * @var string the markdown flavor to use when none is specified explicitly. + * Defaults to `original`. + * @see $flavors + */ + public static $defaultFlavor = 'flm'; +} diff --git a/common/components/Plugin.php b/common/components/Plugin.php new file mode 100755 index 0000000000000000000000000000000000000000..6d9813ce32d673bea863c8d960cdf3e12fed9c82 --- /dev/null +++ b/common/components/Plugin.php @@ -0,0 +1,18 @@ +category, $event->language); + $messages = self::loadMessagesFromFile($messageFile, $event); + if (isset($messages[$event->message])) { + $message = $messages[$event->message]; + } else { + $message = $event->message; + } + $event->translatedMessage = $message; + } + + /** + * Returns message file path for the specified language and category. + * + * @param string $category the message category + * @param string $language the target language + * @return string path to message file + */ + protected function getMessageFilePath($category, $language) + { + $messageFile = Yii::getAlias('@app/messages') . '/' . $language . '/'; + $translation = Yii::$app->i18n->translations['*']; + if (isset($translation->fileMap[$category])) { + $messageFile .= $translation->fileMap[$category]; + } else { + $messageFile .= str_replace('\\', '/', $category) . '.php'; + } + return $messageFile; + } + + /** + * Loads the message translation for the specified language and category or returns null if file doesn't exist. + * + * @param $messageFile + * @return array|mixed|null + */ + protected function loadMessagesFromFile($messageFile, $event) + { + if (is_file($messageFile)) { + $messages = include $messageFile; + if (!is_array($messages)) { + $messages = []; + } + } + + if (strpos($event->category, '@') === 0) { + $overridesPath = Yii::getAlias(strstr($event->category, '/', true) . '/messages/overrides/'); + $fileName = implode('.', [ + $event->language, + ltrim(strstr($event->category, '/'), '/'), + 'override.php' + ]); + } else { + $overridesPath = Yii::getAlias('@app/messages/overrides/'); + $fileName = implode('.', [ + $event->language, + $event->category, + 'override.php' + ]); + } + + if (is_file($overridesPath . $fileName)) { + $overrides = include $overridesPath . $fileName; + if (!is_array($overrides)) { + $overrides = []; + } + } + + if (isset($messages) && !isset($overrides)) { + return $messages; + } elseif (!isset($messages) && isset($overrides)) { + return $overrides; + } elseif (isset($messages) && isset($overrides)) { + return array_merge($messages, $overrides); + } else { + return null; + } + } + +} diff --git a/common/components/Tree.php b/common/components/Tree.php new file mode 100755 index 0000000000000000000000000000000000000000..74288e87fc97016f58bf97f75f612067e40325c1 --- /dev/null +++ b/common/components/Tree.php @@ -0,0 +1,254 @@ +array = $array; + + if (!empty($config)) { + foreach ($config as $name => $value) { + $this->$name = $value; + } + } + return is_array($array); + } + + /** + * 获取当前位置数组 + * @param int $myId + * @param array $newArr + * @return array + */ + public function getPos($myId, &$newArr = []) + { + foreach ($this->array as $item) { + $newData[$item[$this->primary_key]] = $item; + } + if (!isset($newData[$myId])) { + return []; + } + + $newArr[] = $newData[$myId]; + $pid = $newData[$myId][$this->parent_key]; + if (isset($newData[$pid])) { + $this->getPos($pid, $newArr); + } + + $res = []; + if (is_array($newArr)) { + krsort($newArr); + foreach ($newArr as $item) { + $res[$item[$this->primary_key]] = $item; + } + } + return $res; + } + + /** + * 获取子级数组 + * @param int $myId + * @return array + */ + public function getChildren($myId) + { + $newData = []; + foreach ($this->array as $item) { + if ($item[$this->parent_key] == $myId) { + $newData[$item[$this->primary_key]] = $item; + } + } + return $newData; + } + + /** + * 获取所有子级的 ID 数组 + * @param int $myId + * @return array + */ + public function getAllChildrenIds($myId) + { + $children = $this->getChildren($myId); + $childrenTotal = empty($children) ? 0 : count($children); + $ids = []; + if ($childrenTotal > 0) { + foreach ($children as $id => $child) { + $ids[] = $id; + $ids = array_merge($ids, $this->getAllChildrenIds($id)); + } + } + return $ids; + } + + /** + * 生成树型结构 + * @param int $id + * @param int $maxLevel 最大层次,0:所有层次 + * @return array + */ + public function makeTree($id = 0, $maxLevel = 0) + { + $dataset = $this->buildData($this->array); + return $this->makeTreeCore($id, $dataset, $maxLevel, 'normal'); + } + + /** + * 生成线性结构 + * @param int $id + * @param int $maxLevel + * @return array + */ + public function makeTreeForHtml($id = 0, $maxLevel = 0) + { + $dataset = $this->buildData($this->array); + return $this->makeTreeCore($id, $dataset, $maxLevel, 'linear'); + } + + /** + * 格式化数据 + * @param array $data 数据 + * @return array + */ + protected function buildData($data) + { + $r = []; + if (is_array($data)) { + foreach ($data as $datum) { + $r[$datum[$this->parent_key] ?? 0][$datum[$this->primary_key]] = $datum; + } + } + return $r; + } + + /** + * 生成树核心 + * @param int $index 索引值 + * @param array $data 数据 + * @param int $maxLevel 最大层次 + * @param string $type 类型,normal:树形结构,linear:线性结构 + * @return array + */ + protected function makeTreeCore($index, $data, $maxLevel = 0, $type = 'linear') + { + if (!isset($data[$index])) { + return []; + } + + $r = []; + foreach ($data[$index] as $id => $item) { + if (!isset($item[$this->level_key])) { + $parentLevel = $this->level[$item[$this->parent_key]] ?? -1; + $this->level[$id] = $index == 0 ? 0 : $parentLevel + 1; + $item[$this->level_key] = $this->level[$id]; + } + if ($type == 'normal') { + if ($maxLevel == 0 || $item[$this->level_key] < $maxLevel) { + if (isset($data[$id])) { + $item[$this->expanded_key] = $this->expanded; + $item[$this->children_key] = $this->makeTreeCore($id, $data, $maxLevel, $type); + } else { + $item[$this->leaf_key] = true; + } + $r[] = $item; + } + + } elseif ($type == 'linear') { + if ($maxLevel == 0 || $item[$this->level_key] < $maxLevel) { + $this->result[] = $item; + if (isset($data[$id])) { + $this->makeTreeCore($id, $data, $maxLevel, $type); + } + } + $r = $this->result; + } + } + return $r; + } + + /** + * 重置左右键 + * @return array + */ + public function resetLftRgt() + { + $linearData = $this->makeTreeForHtml(); + foreach ($linearData as $key => &$item) { + $childrenCount = count($this->getAllChildrenIds($item['id'])) + 1; + if ($item[$this->parent_key]) { + $preDatum = $linearData[$key - 1]; + $pdl = $preDatum[$this->lft_key]; + $pdr = $preDatum[$this->rgt_key]; + $levelDiff = $preDatum[$this->level_key] - $item[$this->level_key]; + $item[$this->lft_key] = $pdr - $pdl > 1 ? $pdl + 1 : $pdr + 1 + $levelDiff; + $item[$this->rgt_key] = $childrenCount == 1 ? $item[$this->lft_key] + 1 : $item[$this->lft_key] + $childrenCount * 2 - 1; + } else { + $item[$this->lft_key] = $key * 2; + $item[$this->rgt_key] = $key * 2 + $childrenCount * 2 - 1; + } + } + return $linearData; + } +} diff --git a/common/components/YiiTranslationEventHandler.php b/common/components/YiiTranslationEventHandler.php new file mode 100755 index 0000000000000000000000000000000000000000..c0128ac3bfdc10c265d3787ed737e0bef260895a --- /dev/null +++ b/common/components/YiiTranslationEventHandler.php @@ -0,0 +1,31 @@ +language . '/' . $event->category . '.php'; + $message = ''; + if (is_file($messageFile)) { + $messages = include $messageFile; + if (!is_array($messages)) { + $messages = []; + } + if (isset($messages[$event->message])) { + $message = $messages[$event->message]; + } + } + $event->translatedMessage = $message ?: $event->message; + } +} diff --git a/common/components/form/Field.php b/common/components/form/Field.php new file mode 100755 index 0000000000000000000000000000000000000000..fa1e52ab3fd1ea480a98c5b083fcaaa2906b739b --- /dev/null +++ b/common/components/form/Field.php @@ -0,0 +1,669 @@ + 'form-group']; + /** + * @var string 用于排列标签、输入字段、错误消息和提示文本的模板。 + */ + public $template = "{label}\n{input}\n{hint}\n{error}"; + /** + * @var string|null 呈现{input}占位符内容的可选模板 + */ + public $inputTemplate; + /** + * @var array 输入标记的默认选项。传递给各个输入方法的参数 + */ + public $inputOptions = ['class' => 'form-control']; + /** + * @var array 包装标记的选项,用于`{beginWrapper}'占位符 + */ + public $wrapperOptions = []; + /** + * @var array CSS grid classes for horizontal layout. This must be an array with these keys: + * - 'offset' the offset grid class to append to the wrapper if no label is rendered + * - 'label' the label grid class + * - 'wrapper' the wrapper grid class + * - 'error' the error grid class + * - 'hint' the hint grid class + */ + public $horizontalCssClasses = []; + /** + * @var array `setup()` 函数的参数 + */ + public $setupParams = []; + /** + * @var array 字段数据 + */ + public $data = []; + /** + * @var array 错误标记的默认选项在呈现错误标记时,传递给[[error()]]的参数将与此属性合并。 + */ + public $errorOptions = ['class' => 'help-block']; + public $labelOptions = ['class' => 'control-label']; + public $hintOptions = ['class' => 'hint-block']; + /** + * @var bool 是否启用客户端数据验证。 + */ + public $enableClientValidation; + /** + * @var bool 是否启用基于AJAX的数据验证。 + */ + public $enableAjaxValidation; + /** + * @var bool 当输入字段的值更改时是否执行验证。 + */ + public $validateOnChange; + /** + * @var bool 当输入字段失去焦点时是否执行验证。 + */ + public $validateOnBlur; + /** + * @var bool 用户在输入字段中键入时是否执行验证。 + */ + public $validateOnType; + /** + * @var string 当用户在字段中键入且[[validateOnType]]设置为“true”时,验证应延迟的毫秒数。 + */ + public $validationDelay; + /** + * @var array 用于选择容器、输入和错误标记的jquery选择器。 + */ + public $selectors = []; + /** + * @var array 字段的不同部分(如input,label)。 + */ + public $parts = []; + /** + * @var bool 为 input 添加 aria html 属性“aria required”和“aria invalid” + */ + public $addAriaAttributes = true; + /** + * @var bool 是否呈现错误。默认值为“true”,布局“inline”除外。 + */ + public $enableError = true; + /** + * @var bool 是否呈现 label。默认值为“true”。 + */ + public $enableLabel = true; + /** + * @var string 如果是使用[[inputOptions]]或在“input*”方法的“$options”参数中设置的,则此属性保留自定义输入ID。 + */ + protected $_inputId; + /** + * @var bool 是否应跳过“for”字段标签属性。 + */ + protected $_skipLabelFor = false; + + /** + * {@inheritDoc} + */ + public function __construct($config = []) + { + $layoutConfig = $this->createLayoutConfig($config); + $config = ArrayHelper::merge($layoutConfig, $config); + parent::__construct($config); + } + + /** + * 返回此对象的字符串表示形式的php magic方法。 + * @return string + */ + public function __toString() + { + try { + return $this->render(); + } catch (\Exception $e) { + ErrorHandler::convertExceptionToError($e); + return ''; + } + } + + public function init() + { + if ($this->layout === 'horizontal') { + $this->template = "{label}\n{beginWrapper}\n{input}\n{error}\n{endWrapper}\n{hint}"; + $this->horizontalCssClasses = array_merge([ + 'offset' => 'col-sm-offset-3', + 'label' => 'col-sm-3', + 'wrapper' => 'col-sm-6', + 'error' => '', + 'hint' => 'col-sm-3', + ], $this->horizontalCssClasses); + $this->wrapperOptions['class'] = $this->horizontalCssClasses['wrapper']; + $this->labelOptions['class'] = 'control-label ' . $this->horizontalCssClasses['label']; + $this->errorOptions['class'] = trim('help-block help-block-error ' . $this->horizontalCssClasses['error']); + $this->hintOptions['class'] = 'help-block ' . $this->horizontalCssClasses['hint']; + } elseif ($this->layout === 'inline') { + //$this->labelOptions['class'] = 'sr-only'; + $this->enableError = false; + } elseif ($this->layout === 'default') { + $this->options['class'] = 'form-group-default'; + } + } + + /** + * 渲染整个字段。 + * @param string|callable $content 字段容器中的内容。 + * @return string + */ + public function render($content = null) + { + if ($content === null) { + if (!isset($this->parts['{beginWrapper}'])) { + $options = $this->wrapperOptions; + $tag = ArrayHelper::remove($options, 'tag', 'div'); + $this->parts['{beginWrapper}'] = Html::beginTag($tag, $options); + $this->parts['{endWrapper}'] = Html::endTag($tag); + } + if ($this->enableLabel === false) { + $this->parts['{label}'] = ''; + $this->parts['{beginLabel}'] = ''; + $this->parts['{labelTitle}'] = ''; + $this->parts['{endLabel}'] = ''; + } elseif (!isset($this->parts['{beginLabel}'])) { + $this->renderLabelParts(); + } + if ($this->enableError === false) { + $this->parts['{error}'] = ''; + } + if ($this->inputTemplate) { + $input = isset($this->parts['{input}']) ? + $this->parts['{input}'] : Html::activeTextInput($this->model, $this->attribute, $this->inputOptions); + $this->parts['{input}'] = strtr($this->inputTemplate, ['{input}' => $input]); + } + if (!isset($this->parts['{input}'])) { + $this->textInput(); + } + if (!isset($this->parts['{label}'])) { + $this->label(); + } + if (!isset($this->parts['{error}'])) { + $this->error(); + } + if (!isset($this->parts['{hint}'])) { + $this->hint(null); + } + $content = strtr($this->template, $this->parts); + } elseif (!is_string($content)) { + $content = call_user_func($content, $this); + } + + return $this->begin() . "\n" . $content . "\n" . $this->end(); + } + + /** + * 呈现字段容器的开始标记。 + * @return string + */ + public function begin() + { + if ($this->form->enableClientScript) { + $clientOptions = $this->getClientOptions(); + if (!empty($clientOptions)) { + $this->form->attributes[] = $clientOptions; + } + } + + $inputID = $this->getInputId(); + $attribute = Html::getAttributeName($this->attribute); + $options = $this->options; + $class = isset($options['class']) ? (array)$options['class'] : []; + $class[] = "field-$inputID"; + if ($this->model->isAttributeRequired($attribute)) { + $class[] = $this->form->requiredCssClass; + } + $options['class'] = implode(' ', $class); + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_CONTAINER) { + $this->addErrorClassIfNeeded($options); + } + $tag = ArrayHelper::remove($options, 'tag', 'div'); + + return Html::beginTag($tag, $options); + } + + /** + * 呈现字段容器的结束标记。 + * @return string + */ + public function end() + { + return Html::endTag(ArrayHelper::keyExists('tag', $this->options) ? $this->options['tag'] : 'div'); + } + + /** + * 为[[attribute]]生成label标记 + * @param null|string|false $label 要使用的label + * 如果为‘null’,则label通过[[Model::getAttributeLabel]]生成 + * 如果为‘false’,则生成的字段将不包含label部分 + * @param null|array $options 根据名称-值对的标记选项。 + * @return $this + */ + public function label($label = null, $options = []) + { + if (is_bool($label)) { + $this->enableLabel = $label; + if ($label === false && $this->form->layout === 'horizontal') { + Html::addCssClass($this->wrapperOptions, $this->horizontalCssClasses['offset']); + } + if ($label === false) { + $this->parts['{label}'] = ''; + } + } else { + $this->enableLabel = true; + $this->renderLabelParts($label, $options); + $options = array_merge($this->labelOptions, $options); + + $options['label'] = $label ?? $this->model->getAttributeLabel($this->attribute); + + if ($this->_skipLabelFor) { + $options['for'] = null; + } + + $desc = ArrayHelper::remove($options, 'desc'); + if (boolval($desc)) { + $spanOptions['title'] = $label; + $spanOptions['data'] = [ + 'toggle' => 'popover', + 'trigger' => 'hover', + 'container' => 'body', + 'content' => $desc + ]; + + $helpIcon = ' ' . Icon::i('fa-question-circle-o', ['class' => 'icon-sm text-muted']); + + $options['label'] = Html::tag('span', $options['label'] . $helpIcon, $spanOptions); + + $this->form->view->registerJs('$(\'[data-toggle="popover"]\').popover();'); + } + + $this->parts['{label}'] = Html::activeLabel($this->model, $this->attribute, $options); + } + + return $this; + } + + /** + * 生成包含[[attribute]]的第一个验证错误的标记。
+ * 请注意,即使没有验证错误,此方法仍将返回空的错误标记。 + * @param array|false $options 根据名称-值对的标记选项。它将与[[errorOptions]]合并。 + * @return $this + */ + public function error($options = []) + { + if ($options === false) { + $this->parts['{error}'] = ''; + return $this; + } + $options = array_merge($this->errorOptions, $options); + $this->parts['{error}'] = Html::error($this->model, $this->attribute, $options); + + return $this; + } + + /** + * 呈现提示标记。 + * @param string|bool $content 提示内容
+ * 如果为‘null’,则通过[[model::getAttributeHint()]]生成提示
+ * 如果为‘false’,则生成的字段将不包含提示部分
+ * 请注意这不是[[Html::encode()|encoded]]。 + * @param array $options 根据名称-值对的标记选项。这些将呈现为提示标记的属性。这些值将使用[[Html::encode()]]进行 HTML 编码。 + * @return $this + */ + public function hint($content, $options = []) + { + if ($content === false) { + $this->parts['{hint}'] = ''; + return $this; + } + + $options = array_merge($this->hintOptions, $options); + if ($content !== null) { + $options['hint'] = $content; + } + $this->parts['{hint}'] = Html::activeHint($this->model, $this->attribute, $options); + + return $this; + } + + /** + * 呈现文本输入。 + * @param array $options + * @return $this + */ + public function textInput($options = []) + { + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeTextInput($this->model, $this->attribute, $options); + + return $this; + } + + /** + * 将小部件呈现为字段的输入。 + * @param string $class 小部件类名 + * @param array $config 将用于初始化小部件的名称-值对。 + * @return $this + * @throws \Exception + */ + public function widget($class, $config = []) + { + /* @var $class \yii\base\Widget */ + $config['model'] = $this->model; + $config['attribute'] = $this->attribute; + $config['view'] = $this->form->getView(); + if (is_subclass_of($class, 'yii\widgets\InputWidget')) { + foreach ($this->inputOptions as $key => $value) { + if (!isset($config['options'][$key])) { + $config['options'][$key] = $value; + } + } + $config['field'] = $this; + if (!isset($config['options'])) { + $config['options'] = []; + } + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($config['options']); + } + + $this->addAriaAttributes($config['options']); + $this->adjustLabelFor($config['options']); + } + + $this->parts['{input}'] = $class::widget($config); + + return $this; + } + + /** + * 根据输入选项调整标签的“for”属性。 + * @param array $options + */ + protected function adjustLabelFor($options) + { + if (!isset($options['id'])) { + return; + } + $this->_inputId = $options['id']; + if (!isset($this->labelOptions['for'])) { + $this->labelOptions['for'] = $options['id']; + } + } + + /** + * 返回字段的js选项。 + * @param null $validator + * @param null $label + * @return array + */ + protected function getClientOptions($validator = null, $label = null) + { + $attribute = Html::getAttributeName($this->attribute); + if (!in_array($attribute, $this->model->activeAttributes(), true)) { + return []; + } + + $clientValidation = $this->isClientValidationEnabled(); + $ajaxValidation = $this->isAjaxValidationEnabled(); + + if ($clientValidation) { + $validators = []; + if (boolval($validator) && property_exists($this->model, 'attrLabel')) { + $this->model->attrLabel = [$this->attribute => $label]; + foreach ($validator as $child) { + $type = (string)$child->attributes()->type; + $params = []; + foreach ($child->attributes() as $key => $value) { + if ($key !== 'type') { + switch ((string)$value) { + case 'true': + $val = true; + break; + case 'false': + $val = false; + break; + default: + $val = (string)$value; + } + + $params[$key] = $val; + } + } + $validator = Validator::createValidator($type, $this->model, $this->attribute, $params); + $js = $validator->clientValidateAttribute($this->model, $this->attribute, $this->form->view); + $validators[] = $js; + } + } else { + foreach ($this->model->getActiveValidators($attribute) as $validator) { + /* @var $validator Validator */ + $js = $validator->clientValidateAttribute($this->model, $attribute, $this->form->getView()); + if ($validator->enableClientValidation && $js != '') { + if ($validator->whenClient !== null) { + $js = "if (({$validator->whenClient})(attribute, value)) { $js }"; + } + $validators[] = $js; + } + } + } + + } + + if (!$ajaxValidation && (!$clientValidation || empty($validators))) { + return []; + } + + $options = []; + + $inputID = $this->getInputId(); + $options['id'] = Html::getInputId($this->model, $this->attribute); + $options['name'] = $this->attribute; + + $options['container'] = isset($this->selectors['container']) ? $this->selectors['container'] : ".field-$inputID"; + $options['input'] = isset($this->selectors['input']) ? $this->selectors['input'] : "#$inputID"; + if (isset($this->selectors['error'])) { + $options['error'] = $this->selectors['error']; + } elseif (isset($this->errorOptions['class'])) { + $options['error'] = '.' . implode('.', preg_split('/\s+/', $this->errorOptions['class'], -1, PREG_SPLIT_NO_EMPTY)); + } else { + $options['error'] = isset($this->errorOptions['tag']) ? $this->errorOptions['tag'] : 'span'; + } + + $options['encodeError'] = !isset($this->errorOptions['encode']) || $this->errorOptions['encode']; + if ($ajaxValidation) { + $options['enableAjaxValidation'] = true; + } + foreach (['validateOnChange', 'validateOnBlur', 'validateOnType', 'validationDelay'] as $name) { + $options[$name] = $this->$name === null ? $this->form->$name : $this->$name; + } + + if (!empty($validators)) { + $options['validate'] = new JsExpression('function (attribute, value, messages, deferred, $form) {' . implode('', $validators) . '}'); + } + + if ($this->addAriaAttributes === false) { + $options['updateAriaInvalid'] = false; + } + + return array_diff_assoc($options, [ + 'validateOnChange' => true, + 'validateOnBlur' => true, + 'validateOnType' => false, + 'validationDelay' => 500, + 'encodeError' => true, + 'error' => '.help-block', + 'updateAriaInvalid' => true, + ]); + } + + /** + * 检查是否为字段启用了客户端验证。 + * @return bool + */ + protected function isClientValidationEnabled() + { + return $this->enableClientValidation || $this->enableClientValidation === null && $this->form->enableClientValidation; + } + + /** + * 检查是否为字段启用了ajax验证。 + * @return bool + */ + protected function isAjaxValidationEnabled() + { + return $this->enableAjaxValidation || $this->enableAjaxValidation === null && $this->form->enableAjaxValidation; + } + + /** + * 返回此表单域的 input 元素的‘id’属性。 + * @return string + */ + protected function getInputId() + { + return $this->_inputId ?: Html::getInputId($this->model, $this->attribute); + } + + /** + * 向输入选项添加aria属性。 + * @param array $options 输入选项 + */ + protected function addAriaAttributes(&$options) + { + if ($this->addAriaAttributes) { + if (!isset($options['aria-required']) && $this->model->isAttributeRequired($this->attribute)) { + $options['aria-required'] = 'true'; + } + if (!isset($options['aria-invalid']) && $this->model->hasErrors($this->attribute)) { + $options['aria-invalid'] = 'true'; + } + } + } + + /** + * 如果需要,将验证类添加到输入选项。 + * @param array $options 输入选项 + */ + protected function addErrorClassIfNeeded(&$options) + { + $attributeName = Html::getAttributeName($this->attribute); + + if ($this->model->hasErrors($attributeName)) { + Html::addCssClass($options, $this->form->errorCssClass); + } + } + + /** + * @param array $instanceConfig 传递给此实例的构造函数的配置 + * @return array 此实例的特定于布局的默认配置 + */ + protected function createLayoutConfig($instanceConfig) + { + $config = [ + 'hintOptions' => [ + 'tag' => 'p', + 'class' => 'help-block', + ], + 'errorOptions' => [ + 'tag' => 'p', + 'class' => 'help-block help-block-error', + ], + 'inputOptions' => [ + 'class' => 'form-control', + ], + ]; + + $layout = $instanceConfig['form']->layout; + + if ($layout === 'horizontal') { + $config['template'] = "{label}\n{beginWrapper}\n{input}\n{error}\n{endWrapper}\n{hint}"; + $cssClasses = array_merge([ + 'offset' => 'col-sm-offset-3', + 'label' => 'col-sm-3', + 'wrapper' => 'col-sm-6', + 'error' => '', + 'hint' => 'col-sm-3', + ], $this->horizontalCssClasses); + if (isset($instanceConfig['horizontalCssClasses'])) { + $cssClasses = ArrayHelper::merge($cssClasses, $instanceConfig['horizontalCssClasses']); + } + $config['horizontalCssClasses'] = $cssClasses; + $config['wrapperOptions'] = ['class' => $cssClasses['wrapper']]; + $config['labelOptions'] = ['class' => 'control-label ' . $cssClasses['label']]; + $config['errorOptions']['class'] = trim('help-block help-block-error ' . $cssClasses['error']); + $config['hintOptions']['class'] = 'help-block ' . $cssClasses['hint']; + } elseif ($layout === 'inline') { + $config['labelOptions'] = ['class' => 'sr-only']; + $config['enableError'] = false; + } + + return $config; + } + + /** + * @param string|null $label 用于模型label 的 label 或 null + * @param array $options 标签选项 + */ + protected function renderLabelParts($label = null, $options = []) + { + $options = array_merge($this->labelOptions, $options); + if ($label === null) { + if (isset($options['label'])) { + $label = $options['label']; + unset($options['label']); + } else { + $attribute = Html::getAttributeName($this->attribute); + $label = Html::encode($this->model->getAttributeLabel($attribute)); + } + } + if (!isset($options['for'])) { + $options['for'] = Html::getInputId($this->model, $this->attribute); + } + $this->parts['{beginLabel}'] = Html::beginTag('label', $options); + $this->parts['{endLabel}'] = Html::endTag('label'); + if (!isset($this->parts['{labelTitle}'])) { + $this->parts['{labelTitle}'] = $label; + } + } +} diff --git a/common/components/form/Form.php b/common/components/form/Form.php new file mode 100755 index 0000000000000000000000000000000000000000..185ec3aae5f558e9b870bdc952ae986be2baac5b --- /dev/null +++ b/common/components/form/Form.php @@ -0,0 +1,277 @@ +layout, ['default', 'horizontal', 'inline'])) { + $this->layout = 'default'; + } + + if ($this->layout !== 'default') { + Html::addCssClass($this->options, 'form-' . $this->layout); + } + + parent::init(); + if (!isset($this->options['id'])) { + $this->options['id'] = $this->getId(); + } + ob_start(); + ob_implicit_flush(false); + } + + public function run() + { + if (!empty($this->_fields)) { + throw new InvalidCallException('Each beginField() should have a matching endField() call.'); + } + + $content = ob_get_clean(); + $html = Html::beginForm($this->action, $this->method, $this->options); + $html .= $content; + + if ($this->enableClientScript) { + $this->registerClientScript(); + } + + $html .= Html::endForm(); + $this->setAssets(); + Yii::$app->cache->delete(\common\assets\AppAsset::CACHE_BUNDLE_KEY); + return $html; + } + + public function field($model, $attribute, $type, $options = []) + { + $config = $this->fieldConfig; + if ($config instanceof \Closure) { + $config = call_user_func($config, $model, $attribute); + } + if (!isset($config['class'])) { + $config['class'] = $this->loadField($type); + } + + $fieldObject = Yii::createObject(ArrayHelper::merge($config, $options, [ + 'model' => $model, + 'attribute' => $attribute, + 'form' => $this, + 'type' => $type + ])); + + return $fieldObject->setup(); + } + + public function xmlField($model, $attribute, \SimpleXMLElement $field, $options = []) + { + $config = $this->fieldConfig; + if ($config instanceof \Closure) { + $config = call_user_func($config, $model, $field); + } + if (!isset($config['class'])) { + $config['class'] = $this->loadField((string)$field->attributes()->type); + } + + $fieldObject = Yii::createObject(ArrayHelper::merge($config, $options, [ + 'model' => $model, + 'attribute' => $attribute, + 'form' => $this, + 'type' => (string)$field->attributes()->type, + //'setupParams' => $field 移除name、label、type、description、default等属性,其他属性都是setupParams参数 + ])); + + return $fieldObject->xmlSetup($field, $options); + } + + public function xField($model, \SimpleXMLElement $field, $options = [], $attribute = 'params') + { + $config = $this->fieldConfig; + if ($config instanceof \Closure) { + $config = call_user_func($config, $model, $field); + } + if (!isset($config['class'])) { + $config['class'] = $this->loadField((string)$field->attributes()->type); + } + + $fieldObject = Yii::createObject(ArrayHelper::merge($config, $options, [ + 'model' => $model, + 'attribute' => $attribute . '[' . (string)$field->attributes()->name . ']', + 'form' => $this, + 'type' => (string)$field->attributes()->type, + //'setupParams' => $field 移除name、label、type、description、default等属性,其他属性都是setupParams参数 + ])); + + unset($options['layout']); + + return $fieldObject->xSetup($field, $options); + } + + protected function loadField($type) + { + $class = __NAMESPACE__ . '\\field\\' . ucfirst($type); + if (!empty($this->fieldNamespace)) { + if (is_string($this->fieldNamespace)) { + $this->fieldNamespace = [$this->fieldNamespace]; + } + foreach ($this->fieldNamespace as $fieldNamespace) { + $namespace = str_replace('/', '\\', trim($fieldNamespace, '\\/.')); + $fieldClass = $namespace . '\\' . ucfirst($type); + if (class_exists($fieldClass)) { + $class = $fieldClass; + } + } + } + + if (class_exists($class)) { + return $class; + } else { + return __NAMESPACE__ . '\field\Unknown'; + } + } + + protected function setAssets() + { + if ($this->assets) { + $view = $this->getView(); + foreach ($this->assets as $asset) { + if (isset($asset['css'])) { + Helper::addAssetCssFile($view, $asset['sourcePath'] ?? null, $asset['css'], $asset['bundles'] ?? []); + } + if (isset($asset['js'])) { + Helper::addAssetJsFile($view, $asset['sourcePath'] ?? null, $asset['js'], $asset['bundles'] ?? []); + } + } + } + } + + public function registerClientScript() + { + $id = $this->options['id']; + $options = Json::htmlEncode($this->getClientOptions()); + $attributes = Json::htmlEncode($this->attributes); + $view = $this->getView(); + ActiveFormAsset::register($view); + $view->registerJs("jQuery('#$id').yiiActiveForm($attributes, $options);"); + } + + protected function getClientOptions() + { + $options = [ + 'encodeErrorSummary' => $this->encodeErrorSummary, + 'errorSummary' => '.' . implode('.', preg_split('/\s+/', $this->errorSummaryCssClass, -1, PREG_SPLIT_NO_EMPTY)), + 'validateOnSubmit' => $this->validateOnSubmit, + 'errorCssClass' => $this->errorCssClass, + 'successCssClass' => $this->successCssClass, + 'validatingCssClass' => $this->validatingCssClass, + 'ajaxParam' => $this->ajaxParam, + 'ajaxDataType' => $this->ajaxDataType, + 'scrollToError' => $this->scrollToError, + 'scrollToErrorOffset' => $this->scrollToErrorOffset, + 'validationStateOn' => $this->validationStateOn, + ]; + if ($this->validationUrl !== null) { + $options['validationUrl'] = Url::to($this->validationUrl); + } + + // only get the options that are different from the default ones (set in yii.activeForm.js) + return array_diff_assoc($options, [ + 'encodeErrorSummary' => true, + 'errorSummary' => '.error-summary', + 'validateOnSubmit' => true, + 'errorCssClass' => 'has-error', + 'successCssClass' => 'has-success', + 'validatingCssClass' => 'validating', + 'ajaxParam' => 'ajax', + 'ajaxDataType' => 'json', + 'scrollToError' => true, + 'scrollToErrorOffset' => 0, + 'validationStateOn' => self::VALIDATION_STATE_ON_CONTAINER, + ]); + } + + public function genXmlFields($fields, $model, $langCat, $attribute = 'params') + { + $fieldHtml = ''; + $params = json_decode($model->$attribute, true) ?? $model->$attribute; + foreach ($fields as $field) { + $fieldName = (string)$field->attributes()->name; + $fieldType = (string)$field->attributes()->type; + $fieldLabel = (string)$field->attributes()->label; + if (empty($fieldName) || empty($fieldType)) { + $fieldHtml .= ''; + } else { + if ((string)$field->attributes()->hiddenLabel === 'true') { + $label = false; + } else { + $label = is_null($langCat) ? $fieldLabel : Yii::t($langCat, $fieldLabel); + } + $htmlLayout = $label === false ? 'default' : 'horizontal'; + + if ($field->option) { + $options = []; + foreach ($field->option as $option) { + $options[(string)$option->attributes()->value] = (string)$option; + } + $setupParams = isset($params[$fieldName]) ? [$options, ['value' => $params[$fieldName]]] : [$options]; + $fieldHtml .= $this->field($model, $attribute . '[' . $fieldName . ']', $fieldType, [ + 'layout' => $htmlLayout, + 'setupParams' => $setupParams + ])->label($label); + } else { + $setupParams = isset($params[$fieldName]) ? [['value' => $params[$fieldName]]] : []; + $fieldHtml .= $this->field($model, $attribute . '[' . $fieldName . ']', $fieldType, [ + 'layout' => $htmlLayout, + 'setupParams' => $setupParams + ])->label($label); + } + } + } + return $fieldHtml; + } +} diff --git a/common/components/form/FormHelper.php b/common/components/form/FormHelper.php new file mode 100755 index 0000000000000000000000000000000000000000..d288dd8ce647cbcc1d3a8e193a313e7858fbc03f --- /dev/null +++ b/common/components/form/FormHelper.php @@ -0,0 +1,43 @@ + [], + 'form' => [], + 'rule' => [] + ]; + + public static function addFormPath($new = null) + { + return self::addPath('form', $new); + } + + protected static function addPath($entity, $new = null) + { + $paths = &self::$paths[$entity]; + if (empty($paths)) { + $entity_plural = $entity . 's'; + $paths[] = __DIR__ . '/' . $entity_plural; + } + settype($new, 'array'); + foreach ($new as $path) { + if (!in_array($path, $paths)) { + array_unshift($paths, trim($path)); + } + if (!is_dir($path)) { + array_unshift($paths, trim($path)); + } + } + return $paths; + } +} diff --git a/common/components/form/field/Boolean.php b/common/components/form/field/Boolean.php new file mode 100755 index 0000000000000000000000000000000000000000..3ca756c3de7eb8ac562552ce289e802c5b2d0e63 --- /dev/null +++ b/common/components/form/field/Boolean.php @@ -0,0 +1,78 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options['item'] = function ($index, $label, $name, $checked, $value) use ($options) { + if (!isset($options['itemOptions']['labelOptions']['class'])) { + $class = 'btn btn-' . ($checked ? ($value ? 'success' : 'danger') : 'default'); + $options['itemOptions']['labelOptions']['class'] = $class; + } + return Html::radio($name, $checked, array_merge([ + 'value' => $value, + 'label' => $label + ], $options['itemOptions'])); + }; + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->_skipLabelFor = true; + + $options['class'] = (isset($options['class']) ? $options['class'] . ' ' : '') . 'btn-group btn-boolean'; + + $items = [1 => Yii::t('common', 'YES'), 0 => Yii::t('common', 'NO')]; + + $this->parts['{input}'] = Html::activeRadioList($this->model, $this->attribute, $items, $options); + + $css = <<label{width:50%;outline:none !important;} +.btn-boolean > .btn input[type="radio"]{position: absolute;clip: rect(0,0,0,0);pointer-events: none;} +CSS; + $this->form->view->registerCss($css); + $js = << .btn').on('click', function() { + var changed = true; + var parent = $(this).closest('.btn-boolean'); + var input = $(this).find('input'); + if (input.prop('checked')) changed = false; + parent.find('.btn').removeClass('btn-success').removeClass('btn-danger').addClass('btn-default'); + if (input.prop('checked')){ + var val = input.val(); + if (val == 1){ + $(this).removeClass('btn-default').addClass('btn-success'); + input.prop('checked', true); + }else if(val == 0){ + $(this).removeClass('btn-default').addClass('btn-danger'); + input.prop('checked', true); + } + } + if(changed) input.trigger('change'); +}) +JS; + $this->form->view->registerJs($js); + + return $this; + } +} diff --git a/common/components/form/field/Category.php b/common/components/form/field/Category.php new file mode 100755 index 0000000000000000000000000000000000000000..35a2e74ea2318ab81b7b166cb6deee81735ec50d --- /dev/null +++ b/common/components/form/field/Category.php @@ -0,0 +1,107 @@ +setupParams); + return $this; + } + + public function xmlSetup(\SimpleXMLElement $field, $options = []) + { + $data = ArrayHelper::remove($options, 'data'); + $extension = (string)$field->attributes()->extension; + $categories = Categories::find() + ->select(['id', 'parent_id', 'title', 'lft', 'level', 'published', 'language']) + ->where(['extension' => $extension, 'published' => 1]) + ->all(); + + $items = []; + if ((string)$field->attributes()->show_root === 'true') { + $items[] = Yii::t('common', 'ROOT'); + } + foreach ($categories as $category) { + $language = $category->language === '*' ? '' : ' (' . $category->language . ')'; + $prefix = ''; + if (intval($category->level) > 0) { + $prefix = ' ' . str_repeat('- ', $category->level); + } + $items[$category->id] = $prefix . $category->title . $language; + } + + $dropDownList = new DropDownList(array_merge([ + 'model' => $this->model, + 'attribute' => $this->attribute . '[' . (string)$field->attributes()->name . ']', + 'form' => $this->form, + 'type' => 'dropDownList' + ], $options)); + + $label = Yii::t($data['langCat'], (string)$field->attributes()->label); + $description = (string)$field->attributes()->description; + $labelOptions = []; + if (!empty($description)) { + $labelOptions['desc'] = Yii::t($data['langCat'], $description); + } + return $dropDownList->setup($items, $this->setupParams) + ->label($label, $labelOptions); + } + + public function xSetup(\SimpleXMLElement $field, $options = []) + { + $data = ArrayHelper::remove($options, 'data'); + + $extension = (string)$field->attributes()->extension; + + $categories = Categories::find() + ->select(['id', 'parent_id', 'title', 'lft', 'level', 'published', 'language']) + ->where(['extension' => $extension, 'published' => 1]) + ->orderBy('lft') + ->all(); + + $items = []; + if ((string)$field->attributes()->show_root === 'true') { + $items[] = Yii::t('common', 'ROOT'); + } + foreach ($categories as $category) { + $language = $category->language === '*' ? '' : ' (' . $category->language . ')'; + $prefix = ''; + if (intval($category->level) > 0) { + $prefix = ' ' . str_repeat('- ', $category->level); + } + $items[$category->id] = $prefix . $category->title . $language; + } + + $options = array_merge($this->inputOptions, $options); + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + $this->parts['{input}'] = Html::activeDropDownList($this->model,$this->attribute,$items,$options); + + $label = Yii::t($data['langCat'], (string)$field->attributes()->label); + + $description = (string)$field->attributes()->description; + $labelOptions = []; + if (!empty($description)) { + $labelOptions['desc'] = Yii::t($data['langCat'], $description); + } + + return $this->label($label, $labelOptions); + } +} diff --git a/common/components/form/field/Checkbox.php b/common/components/form/field/Checkbox.php new file mode 100755 index 0000000000000000000000000000000000000000..c35d18512393ac765f8946479fa2bca5f58e541d --- /dev/null +++ b/common/components/form/field/Checkbox.php @@ -0,0 +1,47 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + $enclosedByLabel = $this->setupParams[1] ?? $enclosedByLabel; + } + if ($enclosedByLabel) { + $this->parts['{input}'] = Html::activeCheckbox($this->model, $this->attribute, $options); + $this->parts['{label}'] = ''; + } else { + if (isset($options['label']) && !isset($this->parts['{label}'])) { + $this->parts['{label}'] = $options['label']; + if (!empty($options['labelOptions'])) { + $this->labelOptions = $options['labelOptions']; + } + } + unset($options['labelOptions']); + $options['label'] = null; + $this->parts['{input}'] = Html::activeCheckbox($this->model, $this->attribute, $options); + } + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + + return $this; + } +} diff --git a/common/components/form/field/CheckboxList.php b/common/components/form/field/CheckboxList.php new file mode 100755 index 0000000000000000000000000000000000000000..f215fcc67b80c94b86906acae973780b7aba624b --- /dev/null +++ b/common/components/form/field/CheckboxList.php @@ -0,0 +1,37 @@ +setupParams) { + $items = $this->setupParams[0] ?? $items; + $options = $this->setupParams[1] ?? $options; + } + + $options['itemOptions']['labelOptions']['class'] = $options['itemOptions']['labelOptions']['class'] ?? 'checkbox-inline'; + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->_skipLabelFor = true; + $this->parts['{input}'] = Html::activeCheckboxList($this->model, $this->attribute, $items, $options); + + return $this; + } +} diff --git a/common/components/form/field/Color.php b/common/components/form/field/Color.php new file mode 100755 index 0000000000000000000000000000000000000000..deec3bf36cfa7a18cca82ab38b59b857abf7d6f9 --- /dev/null +++ b/common/components/form/field/Color.php @@ -0,0 +1,49 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + + $input = Html::activeTextInput($this->model, $this->attribute, $options); + $addon = Html::tag('span', '', ['class' => 'input-group-addon']); + + $this->parts['{input}'] = Html::tag('div', $input . $addon, [ + 'id' => 'cp_' . $this->attribute, + 'class' => 'input-group colorpicker-component' + ]); + $this->form->assets['color'] = [ + 'css' => 'https://cdn.jsdelivr.net/npm/bootstrap-colorpicker@2.5.3/dist/css/bootstrap-colorpicker.min.css', + 'js' => 'https://cdn.jsdelivr.net/npm/bootstrap-colorpicker@2.5.3/dist/js/bootstrap-colorpicker.min.js', + 'bundles' => ['yii\bootstrap\BootstrapThemeAsset', 'yii\bootstrap\BootstrapPluginAsset'] + ]; + $id = 'cp_' . $this->attribute; + $this->form->view->registerJs('$(\'#' . $id . '\').colorpicker();'); + $this->form->view->registerCss('#' . $id . '{width:225px;}'); + return $this; + } +} diff --git a/common/components/form/field/Datetime.php b/common/components/form/field/Datetime.php new file mode 100755 index 0000000000000000000000000000000000000000..4207163d95edeb4584635af795da6f48e01e97d1 --- /dev/null +++ b/common/components/form/field/Datetime.php @@ -0,0 +1,115 @@ + 'off']) + { + if ($this->setupParams) { + $options = $this->setupParams[0] ? ArrayHelper::merge($this->setupParams[0], $options) : $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + + $id = $this->getInputId(); + $name = isset($options['name']) ? $options['name'] : Html::getInputName($this->model, $this->attribute); + $value = isset($options['value']) ? $options['value'] : Html::getAttributeValue($this->model, $this->attribute); + $options['id'] = 'as-' . $id; + $input = Html::activeTextInput($this->model, $this->attribute, $options); + $input .= Html::hiddenInput($name, $value, ['id' => $id]); + $this->parts['{input}'] = $input; + + $this->form->assets['datetime'] = [ + 'css' => 'https://cdn.jsdelivr.net/npm/daterangepicker@3.0.5/daterangepicker.min.css', + 'js' => [ + 'https://cdn.jsdelivr.net/npm/moment@2.24.0/moment.min.js', + 'https://cdn.jsdelivr.net/npm/moment@2.24.0/locale/' . (strtolower(Yii::$app->language)) . '.min.js', + 'https://cdn.jsdelivr.net/npm/daterangepicker@3.0.5/daterangepicker.min.js' + ], + 'bundles' => ['yii\bootstrap\BootstrapThemeAsset', 'yii\bootstrap\BootstrapPluginAsset'] + ]; + + $this->form->view->registerJs('var format = \'YYYY-MM-DD HH:mm:ss\';'); + $uniqueId = \yii\helpers\Inflector::variablize($id); + if ($value) { + $this->form->view->registerJs('$(\'#as-' . $id . '\').val(moment(\'' . $value . '\', \'X\').format(format));'); + $this->form->view->registerJs('var ' . $uniqueId . 'StartDate = moment(\'' . $value . '\', \'X\').format(format);'); + } else { + $this->form->view->registerJs('var ' . $uniqueId . 'StartDate = moment().format(format);'); + } + $cancelLabel = Yii::t('common', 'CANCEL'); + $applyLabel = Yii::t('common', 'APPLY'); + $drops = $options['drops'] ?? 'down'; + $js = <<form->view->registerJs($js); + $css = <<form->view->registerCss($css); + + return $this; + } +} diff --git a/common/components/form/field/DropDownList.php b/common/components/form/field/DropDownList.php new file mode 100755 index 0000000000000000000000000000000000000000..b53d0ab51b93ed99573474a5afa3575bec5e507a --- /dev/null +++ b/common/components/form/field/DropDownList.php @@ -0,0 +1,36 @@ +setupParams) { + $items = $this->setupParams[0] ?? $items; + $options = $this->setupParams[1] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeDropDownList($this->model, $this->attribute, $items, $options); + + return $this; + } +} diff --git a/common/components/form/field/Editor.php b/common/components/form/field/Editor.php new file mode 100755 index 0000000000000000000000000000000000000000..6d60b010e4f6b66e65ed2a0af739243ff7aeecfe --- /dev/null +++ b/common/components/form/field/Editor.php @@ -0,0 +1,47 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeTextarea($this->model, $this->attribute, $options); + + $editorName = Yii::$app->params['global']['editor']; + + $this->attachBehavior('editor',[ + 'class' => 'common\plugins\editors\\'.$editorName.'\PluginBehavior', + 'options' => $options, + 'form' => $this->form, + 'inputId' => $this->getInputId() + ]); + + $this->editor(); + + return $this; + } +} diff --git a/common/components/form/field/File.php b/common/components/form/field/File.php new file mode 100755 index 0000000000000000000000000000000000000000..fab4a7848939b39c66d2c06a032f98a8b1feda28 --- /dev/null +++ b/common/components/form/field/File.php @@ -0,0 +1,41 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + if ($this->inputOptions !== ['class' => 'form-control']) { + $options = array_merge($this->inputOptions, $options); + } + + if (!isset($this->form->options['enctype'])) { + $this->form->options['enctype'] = 'multipart/form-data'; + } + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeFileInput($this->model, $this->attribute, $options); + + return $this; + } +} diff --git a/common/components/form/field/Hidden.php b/common/components/form/field/Hidden.php new file mode 100755 index 0000000000000000000000000000000000000000..20f35fa103a0a02ea3ad04d8f484fb4dfea878fe --- /dev/null +++ b/common/components/form/field/Hidden.php @@ -0,0 +1,51 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + $this->parts['{input}'] = Html::activeHiddenInput($this->model, $this->attribute, $options); + return $this; + } + + public function label($label = null, $options = []) + { + $this->parts['{label}'] = ''; + return $this; + } + + public function begin() + { + if ($this->form->enableClientScript) { + $clientOptions = $this->getClientOptions(); + if (!empty($clientOptions)) { + $this->form->attributes[] = $clientOptions; + } + } + return ''; + } + + public function end() + { + return ''; + } +} diff --git a/common/components/form/field/ListBox.php b/common/components/form/field/ListBox.php new file mode 100755 index 0000000000000000000000000000000000000000..09849a8d2161fe7788eb90c32783c70030901871 --- /dev/null +++ b/common/components/form/field/ListBox.php @@ -0,0 +1,36 @@ +setupParams) { + $items = $this->setupParams[0] ?? $items; + $options = $this->setupParams[1] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeListBox($this->model, $this->attribute, $items, $options); + + return $this; + } +} diff --git a/common/components/form/field/Media.php b/common/components/form/field/Media.php new file mode 100755 index 0000000000000000000000000000000000000000..df25edef4c85d331051d7f1cb263f81fd6ffd21c --- /dev/null +++ b/common/components/form/field/Media.php @@ -0,0 +1,119 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $input = Html::activeTextInput($this->model, $this->attribute, array_merge($options, ['readonly' => true])); + + $dataContentDefault = Yii::t('common', 'NO_SELECTED_IMAGE'); + $preview = Html::tag('span', Icon::i('eye'), [ + 'class' => 'input-group-addon', + 'title' => Yii::t('common', 'SELECTED_IMAGE'), + 'data' => [ + 'toggle' => 'popover', + 'trigger' => 'hover', + 'html' => 'true', + 'content' => $dataContentDefault + ] + ]); + $modalId = 'media_modal_' . Html::getInputId($this->model, $this->attribute); + $selectButton = Html::button(Yii::t('common', 'SELECT'), [ + 'class' => 'btn btn-default', + 'data' => [ + 'toggle' => 'modal', + 'target' => '#' . $modalId + ] + ]); + $clearButton = Html::button(Yii::t('common', 'CLEAR'), ['class' => 'img-clear btn btn-default']); + $buttons = Html::tag('div', $selectButton . $clearButton, ['class' => 'input-group-btn']); + + $this->parts['{input}'] = Html::tag('div', $preview . $input . $buttons, ['class' => 'input-group']); + + $view = $this->form->view; + + $inputId = $this->getInputId(); + + $view->registerCss('.popover .popover-content img{max-width:200px;max-height:200px;}'); + $iframeSrc = \yii\helpers\Url::to(['/media/images/index']); + $js = <<registerJs($js); + $popoverJs = <<'); +}); +$('.img-clear').click(function() { + $(this).closest('.form-group').find('input.form-control').val(''); +}); +JS; + $view->registerJs($popoverJs); + + $view->on($view::EVENT_END_BODY, function () use ($modalId) { + $modalTitle = Yii::t('common', 'CHANGE_IMAGE'); + $html = << + +
+HTML; + echo $html; + }); + + return $this; + } +} diff --git a/common/components/form/field/Password.php b/common/components/form/field/Password.php new file mode 100755 index 0000000000000000000000000000000000000000..de629f3e69e3bc4cf0062e04a4d1fb4cfa10e0e0 --- /dev/null +++ b/common/components/form/field/Password.php @@ -0,0 +1,30 @@ + 'form-control']) + { + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activePasswordInput($this->model, $this->attribute, $options); + + return $this; + } +} diff --git a/common/components/form/field/Radio.php b/common/components/form/field/Radio.php new file mode 100755 index 0000000000000000000000000000000000000000..31935faf44f647598b7fa7b16dd740ee43b0f1bb --- /dev/null +++ b/common/components/form/field/Radio.php @@ -0,0 +1,48 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + $enclosedByLabel = $this->setupParams[1] ?? $enclosedByLabel; + } + + if ($enclosedByLabel) { + $this->parts['{input}'] = Html::activeRadio($this->model, $this->attribute, $options); + $this->parts['{label}'] = ''; + } else { + if (isset($options['label']) && !isset($this->parts['{label}'])) { + $this->parts['{label}'] = $options['label']; + if (!empty($options['labelOptions'])) { + $this->labelOptions = $options['labelOptions']; + } + } + unset($options['labelOptions']); + $options['label'] = null; + $this->parts['{input}'] = Html::activeRadio($this->model, $this->attribute, $options); + } + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + + return $this; + } +} diff --git a/common/components/form/field/RadioList.php b/common/components/form/field/RadioList.php new file mode 100755 index 0000000000000000000000000000000000000000..03df31836d27544bdfe1ab0b061e6fae99937c32 --- /dev/null +++ b/common/components/form/field/RadioList.php @@ -0,0 +1,45 @@ +setupParams) { + $items = $this->setupParams[0] ?? $items; + $options = $this->setupParams[1] ?? $options; + } + + $options['itemOptions']['labelOptions']['class'] = $options['itemOptions']['labelOptions']['class'] ?? 'radio-inline'; + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addRoleAttributes($options, 'radiogroup'); + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->_skipLabelFor = true; + $this->parts['{input}'] = Html::activeRadioList($this->model, $this->attribute, $items, $options); + + return $this; + } + + protected function addRoleAttributes(&$options, $role) + { + if (!isset($options['role'])) { + $options['role'] = $role; + } + } +} diff --git a/common/components/form/field/Template.php b/common/components/form/field/Template.php new file mode 100755 index 0000000000000000000000000000000000000000..a1b12e80d84e73d00732a576a979cadddc0e6ca3 --- /dev/null +++ b/common/components/form/field/Template.php @@ -0,0 +1,77 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + //print_r($options); + return $this; + } + + public function xmlSetup(\SimpleXMLElement $field, $options = []) + { + $data = ArrayHelper::remove($options, 'data'); + $routeArray = explode('/', $data['route']); + $app = Helper::runApp($data['client']); + $routeCount = count($routeArray); + $viewResPath = '/' . $routeArray[$routeCount - 2]; + + if ($routeCount === 3) { + $viewPath = $app->viewPath . $viewResPath; + $viewThemePath = $app->basePath . $app->view->theme->baseUrl . $viewResPath; + } else { + $viewPath = dirname(dirname($data['path'])) . '/views' . $viewResPath; + $viewThemePath = $app->getModule($routeArray[1])->viewPath . $viewResPath; + } + $action = $routeArray[$routeCount - 1]; + $viewFiles = array_map(function ($n) { + return basename(substr($n, 0, -4)); + }, array_merge($this->_getViewFiles($viewPath, $action), $this->_getViewFiles($viewThemePath, $action))); + $items = array_combine($viewFiles, $viewFiles); + $options['inputOptions']['value'] = (string)$field->attributes()->default; + $dropDownList = new DropDownList(array_merge([ + 'model' => $this->model, + 'attribute' => $this->attribute . '[' . (string)$field->attributes()->name . ']', + 'form' => $this->form, + 'type' => 'dropDownList' + ], $options)); + + $label = Yii::t($data['langCat'], (string)$field->attributes()->label); + $description = (string)$field->attributes()->description; + $labelOptions = []; + if (!empty($description)) { + $labelOptions['desc'] = Yii::t($data['langCat'], $description); + } + + return $dropDownList->setup($items, $this->setupParams) + ->label($label, $labelOptions); + } + + private function _getViewFiles($viewPath, $action) + { + $viewFiles = []; + if (is_dir($viewPath)) { + $viewFiles = FileHelper::findFiles($viewPath, ['only' => [$action . '_*.php']]); + if (is_file($viewPath . '/' . $action . '.php')) { + array_unshift($viewFiles, $viewPath . '/' . $action . '.php'); + } + } + return $viewFiles; + } +} diff --git a/common/components/form/field/Text.php b/common/components/form/field/Text.php new file mode 100755 index 0000000000000000000000000000000000000000..4af9674acc8fa7cb55ce9df721c59288b8607467 --- /dev/null +++ b/common/components/form/field/Text.php @@ -0,0 +1,31 @@ + 'form-control']) + { + if ($this->setupParams) { + $options = $this->setupParams[0] ?? $options; + } + return $this->textInput($options); + } + + public function xmlSetup(\SimpleXMLElement $field, $options = []) + { + $data = ArrayHelper::remove($options, 'data'); + return $this->textInput($this->setupParams) + ->label(Yii::t($data['langCat'], (string)$field->attributes()->label)); + } +} diff --git a/common/components/form/field/Textarea.php b/common/components/form/field/Textarea.php new file mode 100755 index 0000000000000000000000000000000000000000..178af73e72d544d4756dab06640e858b785b1ed4 --- /dev/null +++ b/common/components/form/field/Textarea.php @@ -0,0 +1,34 @@ +setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeTextarea($this->model, $this->attribute, $options); + + return $this; + } +} diff --git a/common/components/form/field/Unknown.php b/common/components/form/field/Unknown.php new file mode 100755 index 0000000000000000000000000000000000000000..f378def30a488c74ffec2ac6faf506249951463e --- /dev/null +++ b/common/components/form/field/Unknown.php @@ -0,0 +1,86 @@ + 'form-control']) + { + if ($this->setupParams) { + $options = $this->setupParams[0] ?? $options; + } + + $options = array_merge($this->inputOptions, $options); + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + $this->parts['{input}'] = Html::activeInput($this->type, $this->model, $this->attribute, $options); + + return $this; + } + + public function xmlSetup(\SimpleXMLElement $field, $options = []) + { + $data = ArrayHelper::remove($options, 'data'); + + $options = array_merge($this->inputOptions, $options); + + if ($this->form->validationStateOn === Form::VALIDATION_STATE_ON_INPUT) { + $this->addErrorClassIfNeeded($options); + } + + $this->addAriaAttributes($options); + $this->adjustLabelFor($options); + + $options['value'] = (string)$field->attributes()->default; + + //var_dump($this->model->{$this->attribute}); + + $this->attribute = $this->attribute . '[' . (string)$field->attributes()->name . ']'; + + $this->parts['{input}'] = Html::activeInput($this->type, $this->model, $this->attribute, $options); + + return $this->label(Yii::t($data['langCat'], (string)$field->attributes()->label)); + } + + public function xSetup(\SimpleXMLElement $field, $options = []) + { + $inputOptions = array_merge($this->inputOptions, ArrayHelper::remove($options, 'inputOptions') ?? []); + $data = ArrayHelper::remove($options, 'data'); + + $attribute = substr($this->attribute, 0, -strlen('[' . (string)$field->attributes()->name . ']')); + + $attributeArray = json_decode($this->model->$attribute, true); + if (is_null($attributeArray) || !isset($attributeArray[(string)$field->attributes()->name])) { + $inputOptions['value'] = (string)$field->attributes()->default; + }else{ + $inputOptions['value'] = $attributeArray[(string)$field->attributes()->name]; + } + + $this->parts['{input}'] = Html::activeInput($this->type, $this->model, $this->attribute, $inputOptions); + + $label = Yii::t($data['langCat'], (string)$field->attributes()->label); + + $description = (string)$field->attributes()->description; + $labelOptions = []; + if (!empty($description)) { + $labelOptions['desc'] = Yii::t($data['langCat'], $description); + } + + return $this->label($label, $labelOptions); + } +} diff --git a/common/components/yii/Component.php b/common/components/yii/Component.php new file mode 100755 index 0000000000000000000000000000000000000000..5be6c2a0c98602b2b4983b48e1b9f3b948cec30f --- /dev/null +++ b/common/components/yii/Component.php @@ -0,0 +1,790 @@ +on('update', function ($event) { + * // send email notification + * }); + * ``` + * + * In the above, an anonymous function is attached to the "update" event of the post. You may attach + * the following types of event handlers: + * + * - anonymous function: `function ($event) { ... }` + * - object method: `[$object, 'handleAdd']` + * - static class method: `['Page', 'handleAdd']` + * - global function: `'handleAdd'` + * + * The signature of an event handler should be like the following: + * + * ```php + * function foo($event) + * ``` + * + * where `$event` is an [[Event]] object which includes parameters associated with the event. + * + * You can also attach a handler to an event when configuring a component with a configuration array. + * The syntax is like the following: + * + * ```php + * [ + * 'on add' => function ($event) { ... } + * ] + * ``` + * + * where `on add` stands for attaching an event to the `add` event. + * + * Sometimes, you may want to associate extra data with an event handler when you attach it to an event + * and then access it when the handler is invoked. You may do so by + * + * ```php + * $post->on('update', function ($event) { + * // the data can be accessed via $event->data + * }, $data); + * ``` + * + * A behavior is an instance of [[Behavior]] or its child class. A component can be attached with one or multiple + * behaviors. When a behavior is attached to a component, its public properties and methods can be accessed via the + * component directly, as if the component owns those properties and methods. + * + * To attach a behavior to a component, declare it in [[behaviors()]], or explicitly call [[attachBehavior]]. Behaviors + * declared in [[behaviors()]] are automatically attached to the corresponding component. + * + * One can also attach a behavior to a component when configuring it with a configuration array. The syntax is like the + * following: + * + * ```php + * [ + * 'as tree' => [ + * 'class' => 'Tree', + * ], + * ] + * ``` + * + * where `as tree` stands for attaching a behavior named `tree`, and the array will be passed to [[\Yii::createObject()]] + * to create the behavior object. + * + * For more details and usage information on Component, see the [guide article on components](guide:concept-components). + * + * @property Behavior[] $behaviors List of behaviors attached to this component. This property is read-only. + * + * @author Qiang Xue + * @since 2.0 + */ +class Component extends BaseObject +{ + /** + * @var array the attached event handlers (event name => handlers) + */ + private $_events = []; + /** + * @var array the event handlers attached for wildcard patterns (event name wildcard => handlers) + * @since 2.0.14 + */ + private $_eventWildcards = []; + /** + * @var Behavior[]|null the attached behaviors (behavior name => behavior). This is `null` when not initialized. + */ + private $_behaviors; + + + /** + * Returns the value of a component property. + * + * This method will check in the following order and act accordingly: + * + * - a property defined by a getter: return the getter result + * - a property of a behavior: return the behavior property value + * + * Do not call this method directly as it is a PHP magic method that + * will be implicitly called when executing `$value = $component->property;`. + * @param string $name the property name + * @return mixed the property value or the value of a behavior's property + * @throws UnknownPropertyException if the property is not defined + * @throws InvalidCallException if the property is write-only. + * @see __set() + */ + public function __get($name) + { + $getter = 'get' . $name; + if (method_exists($this, $getter)) { + // read property, e.g. getName() + return $this->$getter(); + } + + // behavior property + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canGetProperty($name)) { + return $behavior->$name; + } + } + + if (method_exists($this, 'set' . $name)) { + throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name); + } + + throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name); + } + + /** + * Sets the value of a component property. + * + * This method will check in the following order and act accordingly: + * + * - a property defined by a setter: set the property value + * - an event in the format of "on xyz": attach the handler to the event "xyz" + * - a behavior in the format of "as xyz": attach the behavior named as "xyz" + * - a property of a behavior: set the behavior property value + * + * Do not call this method directly as it is a PHP magic method that + * will be implicitly called when executing `$component->property = $value;`. + * @param string $name the property name or the event name + * @param mixed $value the property value + * @throws UnknownPropertyException if the property is not defined + * @throws InvalidCallException if the property is read-only. + * @see __get() + */ + public function __set($name, $value) + { + $setter = 'set' . $name; + if (method_exists($this, $setter)) { + // set property + $this->$setter($value); + + return; + } elseif (strncmp($name, 'on ', 3) === 0) { + // on event: attach event handler + $this->on(trim(substr($name, 3)), $value); + + return; + } elseif (strncmp($name, 'as ', 3) === 0) { + // as behavior: attach behavior + $name = trim(substr($name, 3)); + $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value)); + + return; + } + + // behavior property + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canSetProperty($name)) { + $behavior->$name = $value; + return; + } + } + + if (method_exists($this, 'get' . $name)) { + throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name); + } + + throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name); + } + + /** + * Checks if a property is set, i.e. defined and not null. + * + * This method will check in the following order and act accordingly: + * + * - a property defined by a setter: return whether the property is set + * - a property of a behavior: return whether the property is set + * - return `false` for non existing properties + * + * Do not call this method directly as it is a PHP magic method that + * will be implicitly called when executing `isset($component->property)`. + * @param string $name the property name or the event name + * @return bool whether the named property is set + * @see https://secure.php.net/manual/en/function.isset.php + */ + public function __isset($name) + { + $getter = 'get' . $name; + if (method_exists($this, $getter)) { + return $this->$getter() !== null; + } + + // behavior property + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canGetProperty($name)) { + return $behavior->$name !== null; + } + } + + return false; + } + + /** + * Sets a component property to be null. + * + * This method will check in the following order and act accordingly: + * + * - a property defined by a setter: set the property value to be null + * - a property of a behavior: set the property value to be null + * + * Do not call this method directly as it is a PHP magic method that + * will be implicitly called when executing `unset($component->property)`. + * @param string $name the property name + * @throws InvalidCallException if the property is read only. + * @see https://secure.php.net/manual/en/function.unset.php + */ + public function __unset($name) + { + $setter = 'set' . $name; + if (method_exists($this, $setter)) { + $this->$setter(null); + return; + } + + // behavior property + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canSetProperty($name)) { + $behavior->$name = null; + return; + } + } + + throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name); + } + + /** + * Calls the named method which is not a class method. + * + * This method will check if any attached behavior has + * the named method and will execute it if available. + * + * Do not call this method directly as it is a PHP magic method that + * will be implicitly called when an unknown method is being invoked. + * @param string $name the method name + * @param array $params method parameters + * @return mixed the method return value + * @throws UnknownMethodException when calling unknown method + */ + public function __call($name, $params) + { + $this->ensureBehaviors(); + foreach ($this->_behaviors as $object) { + if ($object->hasMethod($name)) { + return call_user_func_array([$object, $name], $params); + } + } + throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()"); + } + + /** + * This method is called after the object is created by cloning an existing one. + * It removes all behaviors because they are attached to the old object. + */ + public function __clone() + { + $this->_events = []; + $this->_eventWildcards = []; + $this->_behaviors = null; + } + + /** + * Returns a value indicating whether a property is defined for this component. + * + * A property is defined if: + * + * - the class has a getter or setter method associated with the specified name + * (in this case, property name is case-insensitive); + * - the class has a member variable with the specified name (when `$checkVars` is true); + * - an attached behavior has a property of the given name (when `$checkBehaviors` is true). + * + * @param string $name the property name + * @param bool $checkVars whether to treat member variables as properties + * @param bool $checkBehaviors whether to treat behaviors' properties as properties of this component + * @return bool whether the property is defined + * @see canGetProperty() + * @see canSetProperty() + */ + public function hasProperty($name, $checkVars = true, $checkBehaviors = true) + { + return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors); + } + + /** + * Returns a value indicating whether a property can be read. + * + * A property can be read if: + * + * - the class has a getter method associated with the specified name + * (in this case, property name is case-insensitive); + * - the class has a member variable with the specified name (when `$checkVars` is true); + * - an attached behavior has a readable property of the given name (when `$checkBehaviors` is true). + * + * @param string $name the property name + * @param bool $checkVars whether to treat member variables as properties + * @param bool $checkBehaviors whether to treat behaviors' properties as properties of this component + * @return bool whether the property can be read + * @see canSetProperty() + */ + public function canGetProperty($name, $checkVars = true, $checkBehaviors = true) + { + if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) { + return true; + } elseif ($checkBehaviors) { + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canGetProperty($name, $checkVars)) { + return true; + } + } + } + + return false; + } + + /** + * Returns a value indicating whether a property can be set. + * + * A property can be written if: + * + * - the class has a setter method associated with the specified name + * (in this case, property name is case-insensitive); + * - the class has a member variable with the specified name (when `$checkVars` is true); + * - an attached behavior has a writable property of the given name (when `$checkBehaviors` is true). + * + * @param string $name the property name + * @param bool $checkVars whether to treat member variables as properties + * @param bool $checkBehaviors whether to treat behaviors' properties as properties of this component + * @return bool whether the property can be written + * @see canGetProperty() + */ + public function canSetProperty($name, $checkVars = true, $checkBehaviors = true) + { + if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) { + return true; + } elseif ($checkBehaviors) { + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->canSetProperty($name, $checkVars)) { + return true; + } + } + } + + return false; + } + + /** + * Returns a value indicating whether a method is defined. + * + * A method is defined if: + * + * - the class has a method with the specified name + * - an attached behavior has a method with the given name (when `$checkBehaviors` is true). + * + * @param string $name the property name + * @param bool $checkBehaviors whether to treat behaviors' methods as methods of this component + * @return bool whether the method is defined + */ + public function hasMethod($name, $checkBehaviors = true) + { + if (method_exists($this, $name)) { + return true; + } elseif ($checkBehaviors) { + $this->ensureBehaviors(); + foreach ($this->_behaviors as $behavior) { + if ($behavior->hasMethod($name)) { + return true; + } + } + } + + return false; + } + + /** + * Returns a list of behaviors that this component should behave as. + * + * Child classes may override this method to specify the behaviors they want to behave as. + * + * The return value of this method should be an array of behavior objects or configurations + * indexed by behavior names. A behavior configuration can be either a string specifying + * the behavior class or an array of the following structure: + * + * ```php + * 'behaviorName' => [ + * 'class' => 'BehaviorClass', + * 'property1' => 'value1', + * 'property2' => 'value2', + * ] + * ``` + * + * Note that a behavior class must extend from [[Behavior]]. Behaviors can be attached using a name or anonymously. + * When a name is used as the array key, using this name, the behavior can later be retrieved using [[getBehavior()]] + * or be detached using [[detachBehavior()]]. Anonymous behaviors can not be retrieved or detached. + * + * Behaviors declared in this method will be attached to the component automatically (on demand). + * + * @return array the behavior configurations. + */ + public function behaviors() + { + return []; + } + + /** + * Returns a value indicating whether there is any handler attached to the named event. + * @param string $name the event name + * @return bool whether there is any handler attached to the event. + */ + public function hasEventHandlers($name) + { + $this->ensureBehaviors(); + + foreach ($this->_eventWildcards as $wildcard => $handlers) { + if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) { + return true; + } + } + + return !empty($this->_events[$name]) || Event::hasHandlers($this, $name); + } + + /** + * Attaches an event handler to an event. + * + * The event handler must be a valid PHP callback. The following are + * some examples: + * + * ``` + * function ($event) { ... } // anonymous function + * [$object, 'handleClick'] // $object->handleClick() + * ['Page', 'handleClick'] // Page::handleClick() + * 'handleClick' // global function handleClick() + * ``` + * + * The event handler must be defined with the following signature, + * + * ``` + * function ($event) + * ``` + * + * where `$event` is an [[Event]] object which includes parameters associated with the event. + * + * Since 2.0.14 you can specify event name as a wildcard pattern: + * + * ```php + * $component->on('event.group.*', function ($event) { + * Yii::trace($event->name . ' is triggered.'); + * }); + * ``` + * + * @param string $name the event name + * @param callable $handler the event handler + * @param mixed $data the data to be passed to the event handler when the event is triggered. + * When the event handler is invoked, this data can be accessed via [[Event::data]]. + * @param bool $append whether to append new event handler to the end of the existing + * handler list. If false, the new handler will be inserted at the beginning of the existing + * handler list. + * @see off() + */ + public function on($name, $handler, $data = null, $append = true) + { + $this->ensureBehaviors(); + + if (strpos($name, '*') !== false) { + if ($append || empty($this->_eventWildcards[$name])) { + $this->_eventWildcards[$name][] = [$handler, $data]; + } else { + array_unshift($this->_eventWildcards[$name], [$handler, $data]); + } + return; + } + + if ($append || empty($this->_events[$name])) { + $this->_events[$name][] = [$handler, $data]; + } else { + array_unshift($this->_events[$name], [$handler, $data]); + } + } + + /** + * Detaches an existing event handler from this component. + * + * This method is the opposite of [[on()]]. + * + * Note: in case wildcard pattern is passed for event name, only the handlers registered with this + * wildcard will be removed, while handlers registered with plain names matching this wildcard will remain. + * + * @param string $name event name + * @param callable $handler the event handler to be removed. + * If it is null, all handlers attached to the named event will be removed. + * @return bool if a handler is found and detached + * @see on() + */ + public function off($name, $handler = null) + { + $this->ensureBehaviors(); + if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) { + return false; + } + if ($handler === null) { + unset($this->_events[$name], $this->_eventWildcards[$name]); + return true; + } + + $removed = false; + // plain event names + if (isset($this->_events[$name])) { + foreach ($this->_events[$name] as $i => $event) { + if ($event[0] === $handler) { + unset($this->_events[$name][$i]); + $removed = true; + } + } + if ($removed) { + $this->_events[$name] = array_values($this->_events[$name]); + return $removed; + } + } + + // wildcard event names + if (isset($this->_eventWildcards[$name])) { + foreach ($this->_eventWildcards[$name] as $i => $event) { + if ($event[0] === $handler) { + unset($this->_eventWildcards[$name][$i]); + $removed = true; + } + } + if ($removed) { + $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]); + // remove empty wildcards to save future redundant regex checks: + if (empty($this->_eventWildcards[$name])) { + unset($this->_eventWildcards[$name]); + } + } + } + + return $removed; + } + + /** + * Triggers an event. + * This method represents the happening of an event. It invokes + * all attached handlers for the event including class-level handlers. + * @param string $name the event name + * @param Event $event the event parameter. If not set, a default [[Event]] object will be created. + */ + public function trigger($name, Event $event = null) + { + $this->ensureBehaviors(); + + $eventHandlers = []; + foreach ($this->_eventWildcards as $wildcard => $handlers) { + if (StringHelper::matchWildcard($wildcard, $name)) { + $eventHandlers = array_merge($eventHandlers, $handlers); + } + } + + if (!empty($this->_events[$name])) { + $eventHandlers = array_merge($eventHandlers, $this->_events[$name]); + } + + if (!empty($eventHandlers)) { + if ($event === null) { + $event = new Event(); + } + if ($event->sender === null) { + $event->sender = $this; + } + $event->handled = false; + $event->name = $name; + foreach ($eventHandlers as $handler) { + $event->data = $handler[1]; + call_user_func($handler[0], $event); + // stop further handling if the event is handled + if ($event->handled) { + return; + } + } + } + + // invoke class-level attached handlers + Event::trigger($this, $name, $event); + } + + /** + * Returns the named behavior object. + * @param string $name the behavior name + * @return null|Behavior the behavior object, or null if the behavior does not exist + */ + public function getBehavior($name) + { + $this->ensureBehaviors(); + return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null; + } + + /** + * Returns all behaviors attached to this component. + * @return Behavior[] list of behaviors attached to this component + */ + public function getBehaviors() + { + $this->ensureBehaviors(); + return $this->_behaviors; + } + + /** + * Attaches a behavior to this component. + * This method will create the behavior object based on the given + * configuration. After that, the behavior object will be attached to + * this component by calling the [[Behavior::attach()]] method. + * @param string $name the name of the behavior. + * @param string|array|Behavior $behavior the behavior configuration. This can be one of the following: + * + * - a [[Behavior]] object + * - a string specifying the behavior class + * - an object configuration array that will be passed to [[Yii::createObject()]] to create the behavior object. + * + * @return Behavior the behavior object + * @see detachBehavior() + */ + public function attachBehavior($name, $behavior) + { + $this->ensureBehaviors(); + return $this->attachBehaviorInternal($name, $behavior); + } + + /** + * Attaches a list of behaviors to the component. + * Each behavior is indexed by its name and should be a [[Behavior]] object, + * a string specifying the behavior class, or an configuration array for creating the behavior. + * @param array $behaviors list of behaviors to be attached to the component + * @see attachBehavior() + */ + public function attachBehaviors($behaviors) + { + $this->ensureBehaviors(); + foreach ($behaviors as $name => $behavior) { + $this->attachBehaviorInternal($name, $behavior); + } + } + + /** + * Detaches a behavior from the component. + * The behavior's [[Behavior::detach()]] method will be invoked. + * @param string $name the behavior's name. + * @return null|Behavior the detached behavior. Null if the behavior does not exist. + */ + public function detachBehavior($name) + { + $this->ensureBehaviors(); + if (isset($this->_behaviors[$name])) { + $behavior = $this->_behaviors[$name]; + unset($this->_behaviors[$name]); + $behavior->detach(); + return $behavior; + } + + return null; + } + + /** + * Detaches all behaviors from the component. + */ + public function detachBehaviors() + { + $this->ensureBehaviors(); + foreach ($this->_behaviors as $name => $behavior) { + $this->detachBehavior($name); + } + } + + /** + * Makes sure that the behaviors declared in [[behaviors()]] are attached to this component. + */ + public function ensureBehaviors() + { + if ($this->_behaviors === null) { + $this->_behaviors = []; + $behaviors = $this->behaviors(); + + // 引入行为配置文件 + $pluginsPath = Yii::getAlias('@common/plugins/'); + $behaviorsFiles = FileHelper::findFiles($pluginsPath, ['only' => ['behaviors.php']]); + if(!empty($behaviorsFiles)){ + $class = []; + foreach (debug_backtrace() as $item) { + if(isset($item['class'])){ + $class[] = $item['class']; + } + } + $class[] = static::class; + foreach ($behaviorsFiles as $behaviorsFile) { + $behaviorsConfig = require $behaviorsFile; + $intersect = array_intersect(array_keys($behaviorsConfig),array_unique($class)); + if ($intersect) { + foreach ($intersect as $item) { + $behaviors = array_merge($behaviorsConfig[$item], $behaviors); + } + } + } + } + + foreach ($behaviors as $name => $behavior) { + $this->attachBehaviorInternal($name, $behavior); + } + } + } + + /** + * Attaches a behavior to this component. + * @param string|int $name the name of the behavior. If this is an integer, it means the behavior + * is an anonymous one. Otherwise, the behavior is a named one and any existing behavior with the same name + * will be detached first. + * @param string|array|Behavior $behavior the behavior to be attached + * @return Behavior the attached behavior. + */ + private function attachBehaviorInternal($name, $behavior) + { + if (!($behavior instanceof Behavior)) { + $behavior = Yii::createObject($behavior); + } + if (is_int($name)) { + $behavior->attach($this); + $this->_behaviors[] = $behavior; + } else { + if (isset($this->_behaviors[$name])) { + $this->_behaviors[$name]->detach(); + } + $behavior->attach($this); + $this->_behaviors[$name] = $behavior; + } + + return $behavior; + } +} diff --git a/common/components/yii/PhpMessageSource.php b/common/components/yii/PhpMessageSource.php new file mode 100755 index 0000000000000000000000000000000000000000..2fb97475c23a315912acd1a677c3b763ace1c2a2 --- /dev/null +++ b/common/components/yii/PhpMessageSource.php @@ -0,0 +1,183 @@ + 'translated message 1', + * 'original message 2' => 'translated message 2', + * ]; + * ``` + * + * You may use [[fileMap]] to customize the association between category names and the file names. + * + * @author Qiang Xue + * @since 2.0 + */ +class PhpMessageSource extends MessageSource +{ + /** + * @var string the base path for all translated messages. Defaults to '@app/messages'. + */ + public $basePath = '@app/messages'; + /** + * @var array mapping between message categories and the corresponding message file paths. + * The file paths are relative to [[basePath]]. For example, + * + * ```php + * [ + * 'core' => 'core.php', + * 'ext' => 'extensions.php', + * ] + * ``` + */ + public $fileMap; + + + /** + * Loads the message translation for the specified $language and $category. + * If translation for specific locale code such as `en-US` isn't found it + * tries more generic `en`. When both are present, the `en-US` messages will be merged + * over `en`. See [[loadFallbackMessages]] for details. + * If the $language is less specific than [[sourceLanguage]], the method will try to + * load the messages for [[sourceLanguage]]. For example: [[sourceLanguage]] is `en-GB`, + * $language is `en`. The method will load the messages for `en` and merge them over `en-GB`. + * + * @param string $category the message category + * @param string $language the target language + * @return array the loaded messages. The keys are original messages, and the values are the translated messages. + * @see loadFallbackMessages + * @see sourceLanguage + */ + protected function loadMessages($category, $language) + { + $messageFile = $this->getMessageFilePath($category, $language); + $messages = $this->loadMessagesFromFile($messageFile); + + $fallbackLanguage = substr($language, 0, 2); + $fallbackSourceLanguage = substr($this->sourceLanguage, 0, 2); + + if ($language !== $fallbackLanguage) { + $messages = $this->loadFallbackMessages($category, $fallbackLanguage, $messages, $messageFile); + } elseif ($language === $fallbackSourceLanguage) { + $messages = $this->loadFallbackMessages($category, $this->sourceLanguage, $messages, $messageFile); + } else { + if ($messages === null) { + Yii::warning("The message file for category '$category' does not exist: $messageFile", __METHOD__); + } + } + + return (array)$messages; + } + + /** + * The method is normally called by [[loadMessages]] to load the fallback messages for the language. + * Method tries to load the $category messages for the $fallbackLanguage and adds them to the $messages array. + * + * @param string $category the message category + * @param string $fallbackLanguage the target fallback language + * @param array $messages the array of previously loaded translation messages. + * The keys are original messages, and the values are the translated messages. + * @param string $originalMessageFile the path to the file with messages. Used to log an error message + * in case when no translations were found. + * @return array the loaded messages. The keys are original messages, and the values are the translated messages. + * @since 2.0.7 + */ + protected function loadFallbackMessages($category, $fallbackLanguage, $messages, $originalMessageFile) + { + $fallbackMessageFile = $this->getMessageFilePath($category, $fallbackLanguage); + $fallbackMessages = $this->loadMessagesFromFile($fallbackMessageFile); + + if ( + $messages === null && $fallbackMessages === null + && $fallbackLanguage !== $this->sourceLanguage + && $fallbackLanguage !== substr($this->sourceLanguage, 0, 2) + ) { + Yii::error("The message file for category '$category' does not exist: $originalMessageFile " + . "Fallback file does not exist as well: $fallbackMessageFile", __METHOD__); + } elseif (empty($messages)) { + return $fallbackMessages; + } elseif (!empty($fallbackMessages)) { + foreach ($fallbackMessages as $key => $value) { + if (!empty($value) && empty($messages[$key])) { + $messages[$key] = $fallbackMessages[$key]; + } + } + } + + return (array)$messages; + } + + /** + * Returns message file path for the specified language and category. + * + * @param string $category the message category + * @param string $language the target language + * @return string path to message file + */ + protected function getMessageFilePath($category, $language) + { + $messageFile = Yii::getAlias($this->basePath) . "/$language/"; + if (isset($this->fileMap[$category])) { + $messageFile .= $this->fileMap[$category]; + } else { + $messageFile .= str_replace('\\', '/', $category) . '.php'; + if (!is_file($messageFile)) { + $messageFile = Yii::getAlias('@app/messages') . "/$language/"; + + if (strpos($category, '@') === 0) { + $clientAlias = substr($category, 0, strpos($category, '/')); + $newBasePath = str_replace('@app',$clientAlias,$this->basePath); + $messageFile = Yii::getAlias($newBasePath); + $newCategory = substr($category, strpos($category, '/')); + $messageFile .= '/'.$language.$newCategory.'.php'; + if(!is_file($messageFile)){ + $clientPath = Yii::getAlias($clientAlias); + $messageFile = $clientPath . '/messages/' . $language . $newCategory . '.php'; + } + } else { + $messageFile .= str_replace('\\', '/', $category) . '.php'; + } + } + } + + return $messageFile; + } + + /** + * Loads the message translation for the specified language and category or returns null if file doesn't exist. + * + * @param string $messageFile path to message file + * @return array|null array of messages or null if file not found + */ + protected function loadMessagesFromFile($messageFile) + { + if (is_file($messageFile)) { + $messages = include $messageFile; + if (!is_array($messages)) { + $messages = []; + } + + return $messages; + } + + return null; + } +} diff --git a/common/components/yii/UrlManager.php b/common/components/yii/UrlManager.php new file mode 100644 index 0000000000000000000000000000000000000000..2a1bf8e9fc9960504e4733ea3a9f0fda8d12b736 --- /dev/null +++ b/common/components/yii/UrlManager.php @@ -0,0 +1,383 @@ +routeParam]); + + $route = trim($params[0], '/'); + unset($params[0]); + + $baseUrl = $this->showScriptName || !$this->enablePrettyUrl ? $this->getScriptUrl() : $this->getBaseUrl(); + + if ($this->enablePrettyUrl) { + $cacheKey = $route . '?'; + foreach ($params as $key => $value) { + if ($value !== null) { + $cacheKey .= $key . '&'; + } + } + + $url = $this->getUrlFromCache($cacheKey, $route, $params); + if ($url === false) { + /* @var $rule UrlRule */ + foreach ($this->rules as $rule) { + if (in_array($rule, $this->_ruleCache[$cacheKey], true)) { + // avoid redundant calls of `UrlRule::createUrl()` for rules checked in `getUrlFromCache()` + // @see https://github.com/yiisoft/yii2/issues/14094 + continue; + } + $url = $rule->createUrl($this, $route, $params); + if ($this->canBeCached($rule)) { + $this->setRuleToCache($cacheKey, $rule); + } + if ($url !== false) { + break; + } + } + if ($url === false) { + $url = $this->creatQueryUrl($route, $params); + } + } + + if ($url !== false) { + if (strpos($url, '://') !== false) { + if ($baseUrl !== '' && ($pos = strpos($url, '/', 8)) !== false) { + return substr($url, 0, $pos) . $baseUrl . substr($url, $pos) . $anchor; + } + + return $url . $baseUrl . $anchor; + } elseif (strncmp($url, '//', 2) === 0) { + if ($baseUrl !== '' && ($pos = strpos($url, '/', 2)) !== false) { + return substr($url, 0, $pos) . $baseUrl . substr($url, $pos) . $anchor; + } + + return $url . $baseUrl . $anchor; + } + + $url = ltrim($url, '/'); + return "$baseUrl/{$url}{$anchor}"; + } + + if ($this->suffix !== null) { + $route .= $this->suffix; + } + if (!empty($params) && ($query = http_build_query($params)) !== '') { + $route .= '?' . $query; + } + + $route = ltrim($route, '/'); + return "$baseUrl/{$route}{$anchor}"; + } + + $url = "$baseUrl?{$this->routeParam}=" . urlencode($route); + if (!empty($params) && ($query = http_build_query($params)) !== '') { + $url .= '&' . $query; + } + + return $url . $anchor; + } + + /** + * {@inheritdoc} + */ + public function parseRequest($request) + { + if ($this->enablePrettyUrl) { + /* @var $rule UrlRule */ + foreach ($this->rules as $rule) { + $result = $rule->parseRequest($this, $request); + if (YII_DEBUG) { + Yii::debug([ + 'rule' => method_exists($rule, '__toString') ? $rule->__toString() : get_class($rule), + 'match' => $result !== false, + 'parent' => null, + ], __METHOD__); + } + if ($result !== false) { + return $result; + } + } + + $result = $this->parseQueryRequest($request); + if ($result !== false) { + return $result; + } + + if ($this->enableStrictParsing) { + return false; + } + + Yii::debug('No matching URL rules. Using default URL parsing logic.', __METHOD__); + + $suffix = (string)$this->suffix; + $pathInfo = $request->getPathInfo(); + $normalized = false; + if ($this->normalizer !== false) { + $pathInfo = $this->normalizer->normalizePathInfo($pathInfo, $suffix, $normalized); + } + if ($suffix !== '' && $pathInfo !== '') { + $n = strlen($this->suffix); + if (substr_compare($pathInfo, $this->suffix, -$n, $n) === 0) { + $pathInfo = substr($pathInfo, 0, -$n); + if ($pathInfo === '') { + // suffix alone is not allowed + return false; + } + } else { + // suffix doesn't match + return false; + } + } + + if ($normalized) { + // pathInfo was changed by normalizer - we need also normalize route + return $this->normalizer->normalizeRoute([$pathInfo, []]); + } + + return [$pathInfo, []]; + } + + Yii::debug('Pretty URL not enabled. Using default URL parsing logic.', __METHOD__); + $route = $request->getQueryParam($this->routeParam, ''); + if (is_array($route)) { + $route = ''; + } + + return [(string)$route, []]; + } + + /** + * {@inheritdoc} + */ + protected function getUrlFromCache($cacheKey, $route, $params) + { + if (!empty($this->_ruleCache[$cacheKey])) { + foreach ($this->_ruleCache[$cacheKey] as $rule) { + /* @var $rule UrlRule */ + if (($url = $rule->createUrl($this, $route, $params)) !== false) { + return $url; + } + } + } else { + $this->_ruleCache[$cacheKey] = []; + } + + return false; + } + + /** + * {@inheritdoc} + */ + protected function setRuleToCache($cacheKey, UrlRuleInterface $rule) + { + $this->_ruleCache[$cacheKey][] = $rule; + } + + /** + * 根据数据库库查询生成 URL + * @param string $route 路由 + * @param array $params 参数 + * @return bool|string + */ + protected function creatQueryUrl($route, $params) + { + $query = new \yii\db\Query(); + $client = $query->from('{{%clients}}') + ->where(['status' => 1, 'name' => basename(Yii::$app->basePath)]) + ->one(); + $menuTypes = $query->from('{{%menu_types}}')->where(['client_id' => $client['id']])->all(); + $menus = $query->from('{{%menu}}') + ->select(['id', 'path', 'type', 'route', 'request']) + ->where([ + 'published' => 1, + 'menutype' => ArrayHelper::getColumn($menuTypes, 'menutype'), + 'language' => ['*', Yii::$app->language] + ]) + ->all(); + + $menu = null; + foreach ($menus as $item) { + $request = json_decode($item['request'], true) ?? []; + if ($item['type'] === 'module') { + if ($item['route'] === '@' . Yii::$app->id . '/' . $route && ArrayHelper::isSubset($request, $params)) { + $menu = $item; + break; + } + } elseif ($item['type'] === 'url') { + if ($item['route'] === $route && ArrayHelper::isSubset($request, $params)) { + $menu = $item; + break; + } + } elseif ($item['type'] === 'alias') { + if ($menu['id'] === $params['mid']) { + $menu = $item; + break; + } + } + } + + if ($menu) { + $request = json_decode($menu['request'], true) ?? []; + $rule = new UrlRule([ + 'pattern' => $menu['path'], + 'route' => $route, + 'defaults' => array_merge($request, ['mid' => $menu['id']]) + ]); + $url = $rule->createUrl($this, $route, array_merge($params, ['mid' => $menu['id']])); + } else { + if (count(explode('/', $route)) === 3) { + $module = Yii::$app->getModule(strstr($route, '/', true)); + $ruleConfig = $module->creatUrl(strstr($route, '/'), $params); + $rule = new UrlRule($ruleConfig); + $url = $rule->createUrl($this, $route, $params); + } else { + $url = false; + } + } + return $url; + } + + public function parseQueryRequest($request) + { + $normalized = false; + $pathInfo = $request->pathInfo; + $suffix = (string)$this->suffix; + if ($this->normalizer !== false) { + $pathInfo = $this->normalizer->normalizePathInfo($pathInfo, $suffix, $normalized); + } + + if ($suffix !== '' && $pathInfo !== '') { + $n = strlen($suffix); + if (substr_compare($pathInfo, $suffix, -$n, $n) === 0) { + $pathInfo = substr($pathInfo, 0, -$n); + if ($pathInfo === '') { + // suffix alone is not allowed + return false; + } + } else { + return false; + } + } + + $result = false; + $query = new \yii\db\Query(); + if ($pathInfo === '') { + $client = $query->from('{{%clients}}') + ->where(['status' => 1, 'name' => basename(Yii::$app->basePath)]) + ->one(); + $menuTypes = $query->from('{{%menu_types}}')->where(['client_id' => $client['id']])->all(); + $menu = $query->from('{{%menu}}') + ->select(['id', 'alias', 'route', 'request']) + ->where([ + 'published' => 1, + 'menutype' => ArrayHelper::getColumn($menuTypes, 'menutype'), + 'home' => 1, + 'language' => ['*', Yii::$app->language] + ]) + ->one(); + if ($menu) { + $rule = new UrlRule([ + 'pattern' => '', + 'route' => strstr($menu['route'], '/'), + 'defaults' => json_decode($menu['request'], true) ?? [] + ]); + $result = $rule->parseRequest($this, $request); + } + } elseif (strpos($pathInfo, '_') === 0) { + $category = $query->from('{{%categories}}') + ->select(['id', 'path', 'extension', 'language']) + ->where([ + 'path' => substr($pathInfo, 1), + 'published' => 1, + 'language' => ['*', Yii::$app->language] + ]) + ->one(); + if ($category) { + $rule = new UrlRule([ + 'pattern' => $pathInfo, + 'route' => '/content/default/index', + 'defaults' => [ + 'cid' => $category['id'] + ] + ]); + } else { + $pathInfoArray = explode('/', $pathInfo); + $id = array_pop($pathInfoArray); + if (is_numeric($id)) { + $category = $query->from('{{%categories}}') + ->select(['id', 'path', 'extension', 'language']) + ->where([ + 'id' => $id, + 'published' => 1, + 'language' => ['*', Yii::$app->language] + ]) + ->one(); + if ($category) { + $rule = new UrlRule([ + 'pattern' => implode('/', $pathInfoArray) . '/', + 'route' => '/content/default/view' + ]); + } + } + if (!boolval($rule)) { + $rule = new UrlRule([ + 'pattern' => 'error', + 'route' => '/site/error' + ]); + } + } + $result = $rule->parseRequest($this, $request); + } else { + $client = $query->from('{{%clients}}') + ->where(['status' => 1, 'name' => basename(Yii::$app->basePath)]) + ->one(); + $menuTypes = $query->from('{{%menu_types}}')->where(['client_id' => $client['id']])->all(); + $menu = $query->from('{{%menu}}') + ->select(['id', 'alias', 'path', 'type', 'route', 'request']) + ->where([ + 'path' => $pathInfo, + 'published' => 1, + 'menutype' => ArrayHelper::getColumn($menuTypes, 'menutype'), + 'language' => ['*', Yii::$app->language] + ]) + ->one(); + if ($menu) { + if ($menu['type'] === 'module') { + $rule = new UrlRule([ + 'pattern' => $pathInfo, + 'route' => strstr($menu['route'], '/'), + 'defaults' => array_merge(json_decode($menu['request'], true) ?? [], ['mid' => $menu['id']]) + ]); + $result = $rule->parseRequest($this, $request); + } elseif ($menu['type'] === 'url') { + $rule = new UrlRule([ + 'pattern' => $pathInfo, + 'route' => '/site/redirect', + 'defaults' => array_merge(['url' => $menu['route']], json_decode($menu['request'], true) ?? []) + ]); + $result = $rule->parseRequest($this, $request); + } + } + } + return $result; + } +} \ No newline at end of file diff --git a/common/components/yii/View.php b/common/components/yii/View.php new file mode 100755 index 0000000000000000000000000000000000000000..f13988fa73e2ccc14564dd4758b5fe62a2dc3d58 --- /dev/null +++ b/common/components/yii/View.php @@ -0,0 +1,600 @@ + + * @since 2.0 + */ +class View extends Component implements DynamicContentAwareInterface +{ + /** + * @event Event an event that is triggered by [[beginPage()]]. + */ + const EVENT_BEGIN_PAGE = 'beginPage'; + /** + * @event Event an event that is triggered by [[endPage()]]. + */ + const EVENT_END_PAGE = 'endPage'; + /** + * @event ViewEvent an event that is triggered by [[renderFile()]] right before it renders a view file. + */ + const EVENT_BEFORE_RENDER = 'beforeRender'; + /** + * @event ViewEvent an event that is triggered by [[renderFile()]] right after it renders a view file. + */ + const EVENT_AFTER_RENDER = 'afterRender'; + + /** + * @var ViewContextInterface the context under which the [[renderFile()]] method is being invoked. + */ + public $context; + /** + * @var mixed custom parameters that are shared among view templates. + */ + public $params = []; + /** + * @var array a list of available renderers indexed by their corresponding supported file extensions. + * Each renderer may be a view renderer object or the configuration for creating the renderer object. + * For example, the following configuration enables both Smarty and Twig view renderers: + * + * ```php + * [ + * 'tpl' => ['class' => 'yii\smarty\ViewRenderer'], + * 'twig' => ['class' => 'yii\twig\ViewRenderer'], + * ] + * ``` + * + * If no renderer is available for the given view file, the view file will be treated as a normal PHP + * and rendered via [[renderPhpFile()]]. + */ + public $renderers; + /** + * @var string the default view file extension. This will be appended to view file names if they don't have file extensions. + */ + public $defaultExtension = 'php'; + /** + * @var Theme|array|string the theme object or the configuration for creating the theme object. + * If not set, it means theming is not enabled. + */ + public $theme; + /** + * @var array a list of named output blocks. The keys are the block names and the values + * are the corresponding block content. You can call [[beginBlock()]] and [[endBlock()]] + * to capture small fragments of a view. They can be later accessed somewhere else + * through this property. + */ + public $blocks; + /** + * @var array|DynamicContentAwareInterface[] a list of currently active dynamic content class instances. + * This property is used internally to implement the dynamic content caching feature. Do not modify it directly. + * @internal + * @deprecated Since 2.0.14. Do not use this property directly. Use methods [[getDynamicContents()]], + * [[pushDynamicContent()]], [[popDynamicContent()]] instead. + */ + public $cacheStack = []; + /** + * @var array a list of placeholders for embedding dynamic contents. This property + * is used internally to implement the content caching feature. Do not modify it directly. + * @internal + * @deprecated Since 2.0.14. Do not use this property directly. Use methods [[getDynamicPlaceholders()]], + * [[setDynamicPlaceholders()]], [[addDynamicPlaceholder()]] instead. + */ + public $dynamicPlaceholders = []; + + /** + * @var array the view files currently being rendered. There may be multiple view files being + * rendered at a moment because one view may be rendered within another. + */ + private $_viewFiles = []; + + + /** + * Initializes the view component. + */ + public function init() + { + parent::init(); + if (is_array($this->theme)) { + if (!isset($this->theme['class'])) { + $this->theme['class'] = 'yii\base\Theme'; + } + $this->theme = Yii::createObject($this->theme); + } elseif (is_string($this->theme)) { + $this->theme = Yii::createObject($this->theme); + } + } + + /** + * Renders a view. + * + * The view to be rendered can be specified in one of the following formats: + * + * - [path alias](guide:concept-aliases) (e.g. "@app/views/site/index"); + * - absolute path within application (e.g. "//site/index"): the view name starts with double slashes. + * The actual view file will be looked for under the [[Application::viewPath|view path]] of the application. + * - absolute path within current module (e.g. "/site/index"): the view name starts with a single slash. + * The actual view file will be looked for under the [[Module::viewPath|view path]] of the [[Controller::module|current module]]. + * - relative view (e.g. "index"): the view name does not start with `@` or `/`. The corresponding view file will be + * looked for under the [[ViewContextInterface::getViewPath()|view path]] of the view `$context`. + * If `$context` is not given, it will be looked for under the directory containing the view currently + * being rendered (i.e., this happens when rendering a view within another view). + * + * @param string $view the view name. + * @param array $params the parameters (name-value pairs) that will be extracted and made available in the view file. + * @param object $context the context to be assigned to the view and can later be accessed via [[context]] + * in the view. If the context implements [[ViewContextInterface]], it may also be used to locate + * the view file corresponding to a relative view name. + * @return string the rendering result + * @throws ViewNotFoundException if the view file does not exist. + * @throws InvalidCallException if the view cannot be resolved. + * @see renderFile() + */ + public function render($view, $params = [], $context = null) + { + $viewFile = $this->findViewFile($view, $context); + return $this->renderFile($viewFile, $params, $context); + } + + /** + * Finds the view file based on the given view name. + * @param string $view the view name or the [path alias](guide:concept-aliases) of the view file. Please refer to [[render()]] + * on how to specify this parameter. + * @param object $context the context to be assigned to the view and can later be accessed via [[context]] + * in the view. If the context implements [[ViewContextInterface]], it may also be used to locate + * the view file corresponding to a relative view name. + * @return string the view file path. Note that the file may not exist. + * @throws InvalidCallException if a relative view name is given while there is no active context to + * determine the corresponding view file. + */ + protected function findViewFile($view, $context = null) + { + if (strncmp($view, '@', 1) === 0) { + // e.g. "@app/views/main" + $file = Yii::getAlias($view); + } elseif (strncmp($view, '//', 2) === 0) { + // e.g. "//layouts/main" + $file = Yii::$app->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/'); + } elseif (strncmp($view, '/', 1) === 0) { + // e.g. "/site/index" + if (Yii::$app->controller !== null) { + $file = Yii::$app->controller->module->getViewPath() . DIRECTORY_SEPARATOR . ltrim($view, '/'); + } else { + throw new InvalidCallException("Unable to locate view file for view '$view': no active controller."); + } + } elseif ($context instanceof ViewContextInterface) { + $file = $context->getViewPath() . DIRECTORY_SEPARATOR . $view; + } elseif (($currentViewFile = $this->getRequestedViewFile()) !== false) { + $file = dirname($currentViewFile) . DIRECTORY_SEPARATOR . $view; + } else { + throw new InvalidCallException("Unable to resolve view file for view '$view': no active view context."); + } + + if (pathinfo($file, PATHINFO_EXTENSION) !== '') { + return $file; + } + $path = $file . '.' . $this->defaultExtension; + if ($this->defaultExtension !== 'php' && !is_file($path)) { + $path = $file . '.php'; + } + + return $path; + } + + /** + * Renders a view file. + * + * If [[theme]] is enabled (not null), it will try to render the themed version of the view file as long + * as it is available. + * + * The method will call [[FileHelper::localize()]] to localize the view file. + * + * If [[renderers|renderer]] is enabled (not null), the method will use it to render the view file. + * Otherwise, it will simply include the view file as a normal PHP file, capture its output and + * return it as a string. + * + * @param string $viewFile the view file. This can be either an absolute file path or an alias of it. + * @param array $params the parameters (name-value pairs) that will be extracted and made available in the view file. + * @param object $context the context that the view should use for rendering the view. If null, + * existing [[context]] will be used. + * @return string the rendering result + * @throws ViewNotFoundException if the view file does not exist + */ + public function renderFile($viewFile, $params = [], $context = null) + { + $viewFile = $requestedFile = Yii::getAlias($viewFile); + + if ($this->theme !== null) { + $viewFile = $this->theme->applyTo($viewFile); + } + if (!is_file($viewFile)) { + if (isset($context->module)) { + $contextId = basename($context->getViewPath()); + $viewFile = $context->module->getBasePath() . '/views/' . $contextId . '/' . basename($viewFile); + } else { + $oldViewFile = $this->getViewFile(); + $viewFile = dirname($oldViewFile) . '/' . basename($viewFile); + } + } + if (is_file($viewFile)) { + $viewFile = FileHelper::localize($viewFile); + } else { + throw new ViewNotFoundException("The view file does not exist: $requestedFile"); + } + + $oldContext = $this->context; + if ($context !== null) { + $this->context = $context; + } + $output = ''; + $this->_viewFiles[] = [ + 'resolved' => $viewFile, + 'requested' => $requestedFile + ]; + + if ($this->beforeRender($viewFile, $params)) { + Yii::debug("Rendering view file: $viewFile", __METHOD__); + $ext = pathinfo($viewFile, PATHINFO_EXTENSION); + if (isset($this->renderers[$ext])) { + if (is_array($this->renderers[$ext]) || is_string($this->renderers[$ext])) { + $this->renderers[$ext] = Yii::createObject($this->renderers[$ext]); + } + /* @var $renderer ViewRenderer */ + $renderer = $this->renderers[$ext]; + $output = $renderer->render($this, $viewFile, $params); + } else { + $output = $this->renderPhpFile($viewFile, $params); + } + $this->afterRender($viewFile, $params, $output); + } + + array_pop($this->_viewFiles); + $this->context = $oldContext; + + return $output; + } + + /** + * @return string|bool the view file currently being rendered. False if no view file is being rendered. + */ + public function getViewFile() + { + return empty($this->_viewFiles) ? false : end($this->_viewFiles)['resolved']; + } + + /** + * @return string|bool the requested view currently being rendered. False if no view file is being rendered. + * @since 2.0.16 + */ + protected function getRequestedViewFile() + { + return empty($this->_viewFiles) ? false : end($this->_viewFiles)['requested']; + } + + /** + * This method is invoked right before [[renderFile()]] renders a view file. + * The default implementation will trigger the [[EVENT_BEFORE_RENDER]] event. + * If you override this method, make sure you call the parent implementation first. + * @param string $viewFile the view file to be rendered. + * @param array $params the parameter array passed to the [[render()]] method. + * @return bool whether to continue rendering the view file. + */ + public function beforeRender($viewFile, $params) + { + $event = new ViewEvent([ + 'viewFile' => $viewFile, + 'params' => $params, + ]); + $this->trigger(self::EVENT_BEFORE_RENDER, $event); + + return $event->isValid; + } + + /** + * This method is invoked right after [[renderFile()]] renders a view file. + * The default implementation will trigger the [[EVENT_AFTER_RENDER]] event. + * If you override this method, make sure you call the parent implementation first. + * @param string $viewFile the view file being rendered. + * @param array $params the parameter array passed to the [[render()]] method. + * @param string $output the rendering result of the view file. Updates to this parameter + * will be passed back and returned by [[renderFile()]]. + */ + public function afterRender($viewFile, $params, &$output) + { + if ($this->hasEventHandlers(self::EVENT_AFTER_RENDER)) { + $event = new ViewEvent([ + 'viewFile' => $viewFile, + 'params' => $params, + 'output' => $output, + ]); + $this->trigger(self::EVENT_AFTER_RENDER, $event); + $output = $event->output; + } + } + + /** + * Renders a view file as a PHP script. + * + * This method treats the view file as a PHP script and includes the file. + * It extracts the given parameters and makes them available in the view file. + * The method captures the output of the included view file and returns it as a string. + * + * This method should mainly be called by view renderer or [[renderFile()]]. + * + * @param string $_file_ the view file. + * @param array $_params_ the parameters (name-value pairs) that will be extracted and made available in the view file. + * @return string the rendering result + * @throws \Exception + * @throws \Throwable + */ + public function renderPhpFile($_file_, $_params_ = []) + { + $_obInitialLevel_ = ob_get_level(); + ob_start(); + ob_implicit_flush(false); + extract($_params_, EXTR_OVERWRITE); + try { + require $_file_; + return ob_get_clean(); + } catch (\Exception $e) { + while (ob_get_level() > $_obInitialLevel_) { + if (!@ob_end_clean()) { + ob_clean(); + } + } + throw $e; + } catch (\Throwable $e) { + while (ob_get_level() > $_obInitialLevel_) { + if (!@ob_end_clean()) { + ob_clean(); + } + } + throw $e; + } + } + + /** + * Renders dynamic content returned by the given PHP statements. + * This method is mainly used together with content caching (fragment caching and page caching) + * when some portions of the content (called *dynamic content*) should not be cached. + * The dynamic content must be returned by some PHP statements. + * @param string $statements the PHP statements for generating the dynamic content. + * @return string the placeholder of the dynamic content, or the dynamic content if there is no + * active content cache currently. + * + * Note that most methods that indirectly modify layout such as registerJS() or registerJSFile() do not + * work with dynamic rendering. + * + * @see https://github.com/yiisoft/yii2/issues/17673 + */ + public function renderDynamic($statements) + { + if (!empty($this->cacheStack)) { + $n = count($this->dynamicPlaceholders); + $placeholder = ""; + $this->addDynamicPlaceholder($placeholder, $statements); + + return $placeholder; + } + + return $this->evaluateDynamicContent($statements); + } + + /** + * {@inheritdoc} + */ + public function getDynamicPlaceholders() + { + return $this->dynamicPlaceholders; + } + + /** + * {@inheritdoc} + */ + public function setDynamicPlaceholders($placeholders) + { + $this->dynamicPlaceholders = $placeholders; + } + + /** + * {@inheritdoc} + */ + public function addDynamicPlaceholder($placeholder, $statements) + { + foreach ($this->cacheStack as $cache) { + if ($cache instanceof DynamicContentAwareInterface) { + $cache->addDynamicPlaceholder($placeholder, $statements); + } else { + // TODO: Remove in 2.1 + $cache->dynamicPlaceholders[$placeholder] = $statements; + } + } + $this->dynamicPlaceholders[$placeholder] = $statements; + } + + /** + * Evaluates the given PHP statements. + * This method is mainly used internally to implement dynamic content feature. + * @param string $statements the PHP statements to be evaluated. + * @return mixed the return value of the PHP statements. + */ + public function evaluateDynamicContent($statements) + { + return eval($statements); + } + + /** + * Returns a list of currently active dynamic content class instances. + * @return DynamicContentAwareInterface[] class instances supporting dynamic contents. + * @since 2.0.14 + */ + public function getDynamicContents() + { + return $this->cacheStack; + } + + /** + * Adds a class instance supporting dynamic contents to the end of a list of currently active + * dynamic content class instances. + * @param DynamicContentAwareInterface $instance class instance supporting dynamic contents. + * @since 2.0.14 + */ + public function pushDynamicContent(DynamicContentAwareInterface $instance) + { + $this->cacheStack[] = $instance; + } + + /** + * Removes a last class instance supporting dynamic contents from a list of currently active + * dynamic content class instances. + * @since 2.0.14 + */ + public function popDynamicContent() + { + array_pop($this->cacheStack); + } + + /** + * Begins recording a block. + * + * This method is a shortcut to beginning [[Block]]. + * @param string $id the block ID. + * @param bool $renderInPlace whether to render the block content in place. + * Defaults to false, meaning the captured block will not be displayed. + * @return Block the Block widget instance + */ + public function beginBlock($id, $renderInPlace = false) + { + return Block::begin([ + 'id' => $id, + 'renderInPlace' => $renderInPlace, + 'view' => $this, + ]); + } + + /** + * Ends recording a block. + */ + public function endBlock() + { + Block::end(); + } + + /** + * Begins the rendering of content that is to be decorated by the specified view. + * + * This method can be used to implement nested layout. For example, a layout can be embedded + * in another layout file specified as '@app/views/layouts/base.php' like the following: + * + * ```php + * beginContent('@app/views/layouts/base.php'); ?> + * //...layout content here... + * endContent(); ?> + * ``` + * + * @param string $viewFile the view file that will be used to decorate the content enclosed by this widget. + * This can be specified as either the view file path or [path alias](guide:concept-aliases). + * @param array $params the variables (name => value) to be extracted and made available in the decorative view. + * @return ContentDecorator the ContentDecorator widget instance + * @see ContentDecorator + */ + public function beginContent($viewFile, $params = []) + { + return ContentDecorator::begin([ + 'viewFile' => $viewFile, + 'params' => $params, + 'view' => $this, + ]); + } + + /** + * Ends the rendering of content. + */ + public function endContent() + { + ContentDecorator::end(); + } + + /** + * Begins fragment caching. + * + * This method will display cached content if it is available. + * If not, it will start caching and would expect an [[endCache()]] + * call to end the cache and save the content into cache. + * A typical usage of fragment caching is as follows, + * + * ```php + * if ($this->beginCache($id)) { + * // ...generate content here + * $this->endCache(); + * } + * ``` + * + * @param string $id a unique ID identifying the fragment to be cached. + * @param array $properties initial property values for [[FragmentCache]] + * @return bool whether you should generate the content for caching. + * False if the cached version is available. + */ + public function beginCache($id, $properties = []) + { + $properties['id'] = $id; + $properties['view'] = $this; + /* @var $cache FragmentCache */ + $cache = FragmentCache::begin($properties); + if ($cache->getCachedContent() !== false) { + $this->endCache(); + + return false; + } + + return true; + } + + /** + * Ends fragment caching. + */ + public function endCache() + { + FragmentCache::end(); + } + + /** + * Marks the beginning of a page. + */ + public function beginPage() + { + ob_start(); + ob_implicit_flush(false); + + $this->trigger(self::EVENT_BEGIN_PAGE); + } + + /** + * Marks the ending of a page. + */ + public function endPage() + { + $this->trigger(self::EVENT_END_PAGE); + ob_end_flush(); + } +} diff --git a/common/components/yii/Widget.php b/common/components/yii/Widget.php new file mode 100755 index 0000000000000000000000000000000000000000..762f404b87d589a8c7410936a94fc02b4efbd55f --- /dev/null +++ b/common/components/yii/Widget.php @@ -0,0 +1,26 @@ +dates[0]`. + * See [[getAttributeName()]] for more details about attribute expression. + * + * If an attribute value is an instance of [[ActiveRecordInterface]] or an array of such instances, + * the primary value(s) of the AR instance(s) will be returned instead. + * + * @param Model $model the model object + * @param string $attribute the attribute name or expression + * @return string|array the corresponding attribute value + * @throws InvalidArgumentException if the attribute name contains non-word characters. + */ + public static function getAttributeValue($model, $attribute) + { + if (!preg_match(static::$attributeRegex, $attribute, $matches)) { + throw new InvalidArgumentException('Attribute name must contain word characters only.'); + } + $attribute = $matches[2]; + $value = $model->$attribute; + if ($matches[3] !== '') { + foreach (explode('][', trim($matches[3], '[]')) as $id) { + if ((is_array($value) || $value instanceof \ArrayAccess) && isset($value[$id])) { + $value = $value[$id]; + } elseif (is_string($value)) { + $valArr = json_decode($value, true); + if (json_last_error() === JSON_ERROR_NONE) { + $value = $valArr[$id]; + } else { + return null; + } + } else { + return null; + } + } + } + + // https://github.com/yiisoft/yii2/issues/1457 + if (is_array($value)) { + foreach ($value as $i => $v) { + if ($v instanceof ActiveRecordInterface) { + $v = $v->getPrimaryKey(false); + $value[$i] = is_array($v) ? json_encode($v) : $v; + } + } + } elseif ($value instanceof ActiveRecordInterface) { + $value = $value->getPrimaryKey(false); + + return is_array($value) ? json_encode($value) : $value; + } + + return $value; + } +} \ No newline at end of file diff --git a/common/config/.gitignore b/common/config/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..a309bbe326c4134690b44c7b45537040db2596a4 --- /dev/null +++ b/common/config/.gitignore @@ -0,0 +1,4 @@ +#codeception-local.php +#main-local.php +#params-local.php +#test-local.php diff --git a/common/config/bootstrap.php b/common/config/bootstrap.php new file mode 100755 index 0000000000000000000000000000000000000000..93464a81eda7ed162e1b24e6c0d2e1e8739dab94 --- /dev/null +++ b/common/config/bootstrap.php @@ -0,0 +1,7 @@ + '@common/components/yii/Component.php', + 'yii\i18n\PhpMessageSource' => '@common/components/yii/PhpMessageSource.php', + 'yii\base\View' => '@common/components/yii/View.php', + 'yii\helpers\Html' => '@common/components/yii/helpers/Html.php' +]; diff --git a/common/config/extension.php b/common/config/extension.php new file mode 100755 index 0000000000000000000000000000000000000000..a1b26e621aa529962e06ef9fcdb3c6c9df67d3d5 --- /dev/null +++ b/common/config/extension.php @@ -0,0 +1,2 @@ + [ + 'db' => [ + 'class' => 'yii\db\Connection', + 'dsn' => 'mysql:host=mysql;dbname=yii', + 'username' => 'root', + 'password' => '12345', + 'charset' => 'utf8', + 'tablePrefix' => 'y_' + ], + 'mailer' => [ + 'class' => 'yii\swiftmailer\Mailer', + 'viewPath' => '@common/mail', + // send all mails to a file by default. You have to set + // 'useFileTransport' to false and configure a transport + // for the mailer to send real emails. + 'useFileTransport' => true, + ], + ], +]; diff --git a/common/config/main.php b/common/config/main.php new file mode 100755 index 0000000000000000000000000000000000000000..241a37bce0b43e79c19c0de142c8d5c11a788c76 --- /dev/null +++ b/common/config/main.php @@ -0,0 +1,77 @@ + 'zh-CN', + 'sourceLanguage' => null, + 'timeZone' => 'Asia/Shanghai', + 'version' => '1.0.0', + 'aliases' => [ + '@bower' => '@vendor/bower-asset', + '@npm' => '@vendor/npm-asset', + ], + 'vendorPath' => dirname(dirname(__DIR__)) . '/vendor', + 'components' => [ + 'cache' => [ + 'class' => 'yii\caching\FileCache', + ], + 'view' => [ + 'theme' => [ + 'basePath' => '@app/themes/basic', + 'baseUrl' => '@web/themes/basic', + 'pathMap' => [ + '@app/views' => '@app/themes/basic' + ] + ] + ], + 'formatter' => [ + 'dateFormat' => 'yyyy-MM-dd', + 'datetimeFormat' => 'yyyy-MM-dd HH:mm:ss' + ], + 'assetManager' => [ + 'appendTimestamp' => true, + 'linkAssets' => true + ], + 'authManager' => [ + 'class' => 'yii\rbac\DbManager' + ], + 'urlManager' => [ + 'enablePrettyUrl' => true,// 是否开启美化URL + 'showScriptName' => false,// 是否显示脚本名称,如“index.php” + 'suffix' => '.html'// 显示后缀 + ] + ], + 'on beforeRequest' => function ($event) { + $cookies = $event->sender->request->cookies; + if ($cookies->has('language')) { + $event->sender->language = $cookies->getValue('language'); + } else { + $language = $event->sender->cache->getOrSet('app.language', function () { + $rows = (new \yii\db\Query()) + ->select(['params']) + ->from('{{%extensions}}') + ->where(['element' => 'mod_languages', 'type' => 'module']) + ->one(); + if ($rows && isset($rows['params'])) { + $client = \common\components\Helper::getClient(); + $params = json_decode($rows['params'], true); + return $params[$client] ?: false; + } + }); + + if ($language) { + $event->sender->language = $language; + } + } + + // 创建媒体(media)目录资源 + $assetManager = $event->sender->assetManager; + $assetManager->hashCallback = function ($path) { + return basename($path); + }; + $url = $assetManager->getPublishedUrl('@common/media'); + if (!is_dir(Yii::getAlias('@webroot' . $url))) { + $assetManager->publish('@common/media'); + } + $assetManager->hashCallback = null; + } +]; diff --git a/common/config/params-local.php b/common/config/params-local.php new file mode 100755 index 0000000000000000000000000000000000000000..d0b9c34f7d0f3532bc86ceba7de24b0193bcea16 --- /dev/null +++ b/common/config/params-local.php @@ -0,0 +1,3 @@ + 'admin@example.com', + 'supportEmail' => 'support@example.com', + 'senderEmail' => 'noreply@example.com', + 'senderName' => 'Example.com mailer', + 'user.passwordResetTokenExpire' => 3600, + 'global' => [ + 'editor' => 'tinymce', + 'theme' => 'basic', + 'hostInfo' => [ + 'backend' => 'http://backend.tld/', + 'frontend' => 'http://frontend.tld/' + ] + ] +]; diff --git a/common/config/test.php b/common/config/test.php new file mode 100755 index 0000000000000000000000000000000000000000..c952c415a5d77f22da98eeb086a66163d880e59b --- /dev/null +++ b/common/config/test.php @@ -0,0 +1,11 @@ + 'app-common-tests', + 'basePath' => dirname(__DIR__), + 'components' => [ + 'user' => [ + 'class' => 'yii\web\User', + 'identityClass' => 'common\models\User', + ], + ], +]; diff --git a/common/fixtures/UserFixture.php b/common/fixtures/UserFixture.php new file mode 100755 index 0000000000000000000000000000000000000000..034d9752938558b4cdde8d4361c61f725444e7db --- /dev/null +++ b/common/fixtures/UserFixture.php @@ -0,0 +1,9 @@ +urlManager->createAbsoluteUrl(['site/verify-email', 'token' => $user->verification_token]); +?> +
+

Hello username) ?>,

+ +

Follow the link below to verify your email:

+ +

+
diff --git a/common/mail/emailVerify-text.php b/common/mail/emailVerify-text.php new file mode 100755 index 0000000000000000000000000000000000000000..bcc61de5092c16963da1dbafd51e789b8fb13665 --- /dev/null +++ b/common/mail/emailVerify-text.php @@ -0,0 +1,12 @@ +urlManager->createAbsoluteUrl(['site/verify-email', 'token' => $user->verification_token]); +?> +Hello username ?>, + +Follow the link below to verify your email: + + diff --git a/common/mail/layouts/html.php b/common/mail/layouts/html.php new file mode 100755 index 0000000000000000000000000000000000000000..bddbc61290279dfb0fee161c13c1fe2c6a052b6a --- /dev/null +++ b/common/mail/layouts/html.php @@ -0,0 +1,22 @@ + +beginPage() ?> + + + + + <?= Html::encode($this->title) ?> + head() ?> + + + beginBody() ?> + + endBody() ?> + + +endPage() ?> diff --git a/common/mail/layouts/text.php b/common/mail/layouts/text.php new file mode 100755 index 0000000000000000000000000000000000000000..aab1d5d63e5a004384f42dd0a2294b2997fd4fa8 --- /dev/null +++ b/common/mail/layouts/text.php @@ -0,0 +1,14 @@ + + +beginPage() ?> +beginBody() ?> + +endBody() ?> +endPage() ?> diff --git a/common/mail/passwordResetToken-html.php b/common/mail/passwordResetToken-html.php new file mode 100755 index 0000000000000000000000000000000000000000..f3daf49f6884e91d93a4d824bad6a8b29d32b2a5 --- /dev/null +++ b/common/mail/passwordResetToken-html.php @@ -0,0 +1,15 @@ +urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]); +?> +
+

Hello username) ?>,

+ +

Follow the link below to reset your password:

+ +

+
diff --git a/common/mail/passwordResetToken-text.php b/common/mail/passwordResetToken-text.php new file mode 100755 index 0000000000000000000000000000000000000000..244c0cb40139d5f108268a9f8cb3b561418ca069 --- /dev/null +++ b/common/mail/passwordResetToken-text.php @@ -0,0 +1,12 @@ +urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $user->password_reset_token]); +?> +Hello username ?>, + +Follow the link below to reset your password: + + diff --git a/common/messages/en-US/yii.php b/common/messages/en-US/yii.php new file mode 100755 index 0000000000000000000000000000000000000000..09515d81dd8046e56ed5b8b1be29a487411974ca --- /dev/null +++ b/common/messages/en-US/yii.php @@ -0,0 +1,5 @@ + 'Are you sure you want to delete this item?' +]; diff --git a/common/messages/zh-CN/yii.php b/common/messages/zh-CN/yii.php new file mode 100755 index 0000000000000000000000000000000000000000..19e8772f334001d4099fe983ac3831d55ea1d65c --- /dev/null +++ b/common/messages/zh-CN/yii.php @@ -0,0 +1,129 @@ + ' 与 ', + 'NOT_SUPPORT_OPERATOR' => '"{attribute}" 不支持操作 "{operator}"', + 'NOT_SET' => '(未设置)', + 'INTERNAL_SERVER_ERROR' => '服务器内部错误。', + 'DELETE_ITEM_CONFIRM' => '您确定要删除此项吗?', + 'ATTRIBUTE_VALID_OPERATOR' => '"{attribute}" 的条件应为一个值或有效的操作规约。', + 'DELETE' => '删除', + 'ERROR' => '错误', + 'FILE_UPLOAD_FAILED' => '文件上传失败。', + 'HOME' => '首页', + 'INVALID_DATA_PARAMETER' => '"{param}"参数接收到无效的数据。', + 'LOGIN_REQUIRED' => '需要登录', + 'MISSING_REQUIRED_ARGUMENTS' => '函数缺少参数:{params}', + 'MISSING_REQUIRED_PARAMETERS' => '缺少参数:{params}', + 'NO' => '否', + 'NO_RESULTS_FOUND' => '没有找到数据。', + 'ONLY_FILES_MIME_TYPES' => '只允许这些MIME类型的文件: {mimeTypes}。', + 'ONLY_FILES_EXTENSIONS' => '只允许使用以下文件扩展名的文件:{extensions}。', + 'OPERATOR_USED_WITH_ATTRIBUTE' => '操作 "{operator}" 必须与一个搜索属性一起使用。', + 'OPERATOR_REQUIRES_MULTIPLE_OPERANDS' => '操作 "{operator}" 需要多个操作数。', + 'PAGE_NOT_FOUND' => '页面未找到。', + 'FIX_FOLLOWING_ERRORS' => '请修复以下错误', + 'UPLOAD_FILE.' => '请上传一个文件。', + 'POWERED_BY' => '技术支持 {yii}', + 'SHOWING_ITEMS_DATA' => '第{begin, number}-{end, number}条,共{totalCount, number}条数据.', + 'ATTRIBUTES_ALREADY_BEEN_TAKEN' => '{attributes} 的值 "{values}" 已经被占用了。', + 'FILE_IS_NOT_IMAGE' => '文件 "{file}" 不是一个图像文件。', + 'FILE_TOO_BIG_SIZE_ASTRICT' => '文件"{file}"太大了。它的大小不能超过{formattedLimit}。', + 'FILE_TOO_SMALL_SIZE_ASTRICT' => '文件"{file}"太小了。它的大小不能小于{formattedLimit}。', + 'ATTRIBUTE_FORMAT_INVALID' => '属性 {attribute} 的格式无效。', + 'FILTER_FORMAT_INVALID' => '{filter}的格式无效。', + 'IMAGE_TOO_LARGE_HEIGHT_ASTRICT' => '图像"{file}"太大。他的高度不得超过{limit, number}像素。', + 'IMAGE_TOO_LARGE_WIDTH_ASTRICT' => '图像"{file}"太大。他的宽度不得超过{limit, number}像素。', + 'IMAGE_TOO_SMALL_HEIGHT_ASTRICT' => '图像"{file}"太小。他的高度不得小于{limit, number}像素。', + 'IMAGE_TOO_SMALL_WIDTH_ASTRICT' => '图像"{file}"太小。他的宽度不得小于{limit, number}像素。', + 'REQUESTED_VIEW_NOT_FOUND' => '所请求的视图不存在"{name}"。', + 'VERIFICATION_CODE_INCORRECT' => '验证码不正确。', + 'TOTAL_ITEMS_DATA' => '总计{count, number}条数据。', + 'UNABLE_VERIFY_DATA_SUBMISSION' => '您提交的数据无法被验证。', + 'UNKNOWN_ALIAS' => '未知的别名: -{name}', + 'UNKNOWN_FILTER_ATTRIBUTE' => '未知的过滤器属性 "{attribute}"', + 'UNKNOWN_OPTION' => '未知的选项:--{name}', + 'UPDATE' => '更新', + 'VIEW' => '查看', + 'YES' => '是', + 'YII_FRAMEWORK' => 'Yii 框架', + 'NOT_ALLOWED_PERFORM_ACTION' => '您没有执行此操作的权限。', + 'UPLOAD_MOST_NUMBER_FILES' => '您最多上传{limit, number}个文件。', + 'UPLOAD_LEAST_NUMBER_FILES' => '需要至少 {limit, number} 个文件。', + 'DELTA_DAYS_AFTER' => '{delta}天后', + 'DELTA_MINUTES_AFTER' => '{delta}分钟后', + 'DELTA_MONTHS_AFTER' => '{delta}个月后', + 'DELTA_SECONDS_AFTER' => '{delta}秒后', + 'DELTA_YEARS_AFTER' => '{delta}年后', + 'DELTA_HOURS_AFTER' => '{delta}小时后', + 'JUST_NOW' => '刚刚', + 'THE_INPUT_VALUE' => '该输入', + 'ATTRIBUTE_ALREADY_BEEN_TAKEN' => '{attribute}的值"{value}"已经被占用了。', + 'ATTRIBUTE_CANNOT_BLANK' => '{attribute}不能为空。', + 'ATTRIBUTE_CONTAINS_WRONG_SUBNET_MASK' => '{attribute} 属性包含错误的子网掩码。', + 'ATTRIBUTE_INVALID' => '{attribute}是无效的。', + 'ATTRIBUTE_INVALID_URL' => '{attribute}不是一条有效的URL。', + 'ATTRIBUTE_INVALID_EMAIL' => '{attribute}不是有效的邮箱地址。', + 'ATTRIBUTE_INVALID_RANGE' => '{attribute} 不在允许的范围内。', + 'ATTRIBUTE_INVALID_REQUIRED_VALUE' => '{attribute}必须为"{requiredValue}"。', + 'ATTRIBUTE_MUST_BE_NUMBER' => '{attribute}必须是一个数字。', + 'ATTRIBUTE_MUST_BE_STRING' => '{attribute}必须是一条字符串。', + 'ATTRIBUTE_MUST_BE_IP_ADDRESS' => '{attribute} 必须是一个有效的IP地址。', + 'ATTRIBUTE_MUST_BE_IP_ADDRESS_SUBNET' => '{attribute} 必须指定一个IP地址和子网。', + 'ATTRIBUTE_MUST_BE_INTEGER' => '{attribute}必须是整数。', + 'ATTRIBUTE_MUST_BE_EITHER_OR' => '{attribute}的值必须要么为"{true}",要么为"{false}"。', + 'ATTRIBUTE_MUST_BE_EQUAL' => '{attribute}的值必须等于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_MUST_BE_GREATER' => '{attribute}的值必须大于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_MUST_BE_GREATER_OR_EQUAL' => '{attribute}的值必须大于或等于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_MUST_BE_LESS' => '{attribute}的值必须小于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_MUST_BE_LESS_OR_EQUAL' => '{attribute}的值必须小于或等于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_MUST_BE_NO_GREATER' => '{attribute}的值必须不大于{max}。', + 'ATTRIBUTE_MUST_BE_NO_LESS' => '{attribute}的值必须不小于{min}。', + 'ATTRIBUTE_MUST_NOT_BE_SUBNET' => '{attribute} 必须不是一个子网。', + 'ATTRIBUTE_MUST_NOT_BE_IPv4' => '{attribute} 必须不是一个IPv4地址。', + 'ATTRIBUTE_MUST_NOT_BE_IPv6' => '{attribute} 必须不是一个IPv6地址。', + 'ATTRIBUTE_MUST_NOT_BE_EQUAL' => '{attribute}的值不得等于"{compareValueOrAttribute}"。', + 'ATTRIBUTE_SHOULD_CONTAIN_LEAST' => '{attribute}应该包含至少{min, number}个字符。', + 'ATTRIBUTE_SHOULD_CONTAIN_MOST' => '{attribute}只能包含至多{max, number}个字符。', + 'ATTRIBUTE_SHOULD_CONTAIN_LENGTH' => '{attribute}应该包含{length, number}个字符。', + 'DELTA_DAYS' => '{delta} 天', + 'DELTA_HOURS' => '{delta} 小时', + 'DELTA_MINUTES' => '{delta} 分钟', + 'DELTA_MONTHS' => '{delta} 月', + 'DELTA_SECONDS' => '{delta} 秒', + 'DELTA_YEARS' => '{delta} 年', + 'DELTA_DAYS_AGO' => '{delta}天前', + 'DELTA_MINUTES_AGO' => '{delta}分钟前', + 'DELTA_MONTHS_AGO' => '{delta}个月前', + 'DELTA_SECONDS_AGO' => '{delta}秒前', + 'DELTA_YEARS_AGO' => '{delta}年前', + 'DELTA_HOURS_AGO' => '{delta}小时前', + 'NFORMATTED_B' => '{nFormatted} B', + 'NFORMATTED_GB' => '{nFormatted} GB', + 'NFORMATTED_GIB' => '{nFormatted} GiB', + 'NFORMATTED_KB' => '{nFormatted} kB', + 'NFORMATTED_KIB' => '{nFormatted} KiB', + 'NFORMATTED_MB' => '{nFormatted} MB', + 'NFORMATTED_MIB' => '{nFormatted} MiB', + 'NFORMATTED_PB' => '{nFormatted} PB', + 'NFORMATTED_PIB' => '{nFormatted} PiB', + 'NFORMATTED_TB' => '{nFormatted} TB', + 'NFORMATTED_TIB' => '{nFormatted} TiB', + 'NFORMATTED_BYTES' => '{nFormatted} 字节', + 'NFORMATTED_GIBIBYTES' => '{nFormatted} 千兆二进制字节', + 'NFORMATTED_GIGABYTES' => '{nFormatted} 千兆字节', + 'NFORMATTED_KIBIBYTES' => '{nFormatted} 千位二进制字节', + 'NFORMATTED_KILOBYTES' => '{nFormatted} 千字节', + 'NFORMATTED_MEBIBYTES' => '{nFormatted} 兆二进制字节', + 'NFORMATTED_MEGABYTES' => '{nFormatted} 兆字节', + 'NFORMATTED_PEBIBYTES' => '{nFormatted} 拍二进制字节', + 'NFORMATTED_PETABYTES' => '{nFormatted} 拍字节', + 'NFORMATTED_TEBIBYTES' => '{nFormatted} 太二进制字节', + 'NFORMATTED_TERABYTES' => '{nFormatted} 太字节', + 'UNKNOWN_ERROR' => '未知错误', + 'JSON_ERROR_DEPTH' => '到达了最大堆栈深度', + 'JSON_ERROR_STATE_MISMATCH' => '无效或异常的 JSON', + 'JSON_ERROR_CTRL_CHAR' => '控制字符错误,可能是编码不对', + 'JSON_ERROR_SYNTAX' => '语法错误', + 'JSON_ERROR_UTF8' => '异常的 UTF-8 字符,也许是因为不正确的编码' +]; diff --git a/common/models/LoginForm.php b/common/models/LoginForm.php new file mode 100755 index 0000000000000000000000000000000000000000..7212107f516ad162911fd6c09faa10972e488fa8 --- /dev/null +++ b/common/models/LoginForm.php @@ -0,0 +1,88 @@ +hasErrors()) { + $user = $this->getUser(); + if (!$user || !$user->validatePassword($this->password)) { + $this->addError($attribute, Yii::t('common', 'Incorrect username or password.')); + } + } + } + + /** + * Logs in a user using the provided username and password. + * + * @return bool whether the user is logged in successfully + */ + public function login() + { + if ($this->validate()) { + return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); + } + + return false; + } + + public function attributeLabels() + { + return [ + 'username' => Yii::t('common', 'Username'), + 'password' => Yii::t('common', 'Password'), + 'rememberMe' => Yii::t('common', 'Remember Me') + ]; + } + + /** + * Finds user by [[username]] + * + * @return User|null + */ + protected function getUser() + { + if ($this->_user === null) { + $this->_user = User::findByUsername($this->username); + } + + return $this->_user; + } + +} diff --git a/common/models/Member.php b/common/models/Member.php new file mode 100755 index 0000000000000000000000000000000000000000..0c1a24d26bd4f1974bd6cb7fb0e7c866ccea46df --- /dev/null +++ b/common/models/Member.php @@ -0,0 +1,60 @@ + 200], + [['uid'], 'unique'], + [['uid'], 'exist', 'skipOnError' => true, 'targetClass' => User::class, 'targetAttribute' => ['uid' => 'id']], + ]; + } + + /** + * {@inheritdoc} + */ + public function attributeLabels() + { + return [ + 'uid' => Yii::t('site', 'USER_ID'), + 'name' => Yii::t('site', 'ADMIN_NAME'), + 'lastvisitDate' => Yii::t('site', 'LAST_VISIT_DATE') + ]; + } + + /** + * @return \yii\db\ActiveQuery + */ + public function getU() + { + return $this->hasOne(User::class, ['id' => 'uid']); + } +} diff --git a/common/models/User.php b/common/models/User.php new file mode 100755 index 0000000000000000000000000000000000000000..264d1e9156760860e4a6747635a654ba6dfc623c --- /dev/null +++ b/common/models/User.php @@ -0,0 +1,238 @@ + self::STATUS_INACTIVE], + ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_INACTIVE]], + ]; + } + + /** + * {@inheritdoc} + */ + public static function findIdentity($id) + { + return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]); + } + + /** + * {@inheritdoc} + */ + public static function findIdentityByAccessToken($token, $type = null) + { + throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); + } + + /** + * Finds user by username + * + * @param string $username + * @return static|null + */ + public static function findByUsername($username) + { + $user = static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]); + + $controllerNamespace = explode('\\', Yii::$app->controllerNamespace); + + $member = $controllerNamespace[0] == 'backend' ? $user->admin : $user->member; + + return is_null($member) ? null : $user; + } + + /** + * Finds user by password reset token + * + * @param string $token password reset token + * @return static|null + */ + public static function findByPasswordResetToken($token) + { + if (!static::isPasswordResetTokenValid($token)) { + return null; + } + + return static::findOne([ + 'password_reset_token' => $token, + 'status' => self::STATUS_ACTIVE, + ]); + } + + /** + * Finds user by verification email token + * + * @param string $token verify email token + * @return static|null + */ + public static function findByVerificationToken($token) + { + return static::findOne([ + 'verification_token' => $token, + 'status' => self::STATUS_INACTIVE + ]); + } + + /** + * Finds out if password reset token is valid + * + * @param string $token password reset token + * @return bool + */ + public static function isPasswordResetTokenValid($token) + { + if (empty($token)) { + return false; + } + + $timestamp = (int)substr($token, strrpos($token, '_') + 1); + $expire = Yii::$app->params['user.passwordResetTokenExpire']; + return $timestamp + $expire >= time(); + } + + /** + * {@inheritdoc} + */ + public function getId() + { + return $this->getPrimaryKey(); + } + + /** + * {@inheritdoc} + */ + public function getAuthKey() + { + return $this->auth_key; + } + + /** + * {@inheritdoc} + */ + public function validateAuthKey($authKey) + { + return $this->getAuthKey() === $authKey; + } + + /** + * Validates password + * + * @param string $password password to validate + * @return bool if password provided is valid for current user + */ + public function validatePassword($password) + { + return Yii::$app->security->validatePassword($password, $this->password_hash); + } + + /** + * Generates password hash from password and sets it to the model + * + * @param string $password + */ + public function setPassword($password) + { + $this->password_hash = Yii::$app->security->generatePasswordHash($password); + } + + /** + * Generates "remember me" authentication key + */ + public function generateAuthKey() + { + $this->auth_key = Yii::$app->security->generateRandomString(); + } + + /** + * Generates new password reset token + */ + public function generatePasswordResetToken() + { + $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time(); + } + + public function generateEmailVerificationToken() + { + $this->verification_token = Yii::$app->security->generateRandomString() . '_' . time(); + } + + /** + * Removes password reset token + */ + public function removePasswordResetToken() + { + $this->password_reset_token = null; + } + + public function getMember() + { + return $this->hasOne(Member::class, ['uid' => 'id']); + } + + public function getAdmin() + { + return $this->hasOne(Admin::class, ['uid' => 'id']); + } + + /** + * {@inheritdoc} + * @return User query the active query used by this AR class. + */ +// public static function find() +// { +// $query = parent::find(); +// return $query->rightJoin(['member' => Member::tableName()], 'member.uid = id'); +// } + +} diff --git a/common/plugins/actionlog/main/PluginBehavior.php b/common/plugins/actionlog/main/PluginBehavior.php new file mode 100755 index 0000000000000000000000000000000000000000..c454f767ed1cf3b36e0a0a869fa23ec2be684cf1 --- /dev/null +++ b/common/plugins/actionlog/main/PluginBehavior.php @@ -0,0 +1,149 @@ + 'afterValidate', +// BaseActiveRecord::EVENT_AFTER_DELETE => 'afterDelete', + User::EVENT_AFTER_LOGIN => 'afterLogin', + User::EVENT_AFTER_LOGOUT => 'afterLogout', + DefaultController::EVENT_AFTER_LOG_PURGE => 'afterLogPurge', + DefaultController::EVENT_AFTER_LOG_EXPORT => 'afterLogExport' + ]; + } + + /** + * 登录验证失败记录日志 + * @param Event $event + */ + public function afterValidate(Event $event) + { + if (isset($event->sender->user) && $event->sender->user && !empty($event->sender->errors)) { + $message = [ + 'action' => 'login', + 'userid' => $event->sender->user->id, + 'username' => $event->sender->user->username, + 'accountlink' => Url::to(['/admin/user/view', 'id' => $event->sender->user->id]), + 'app' => Helper::getClient() + ]; + + $actionLogs = new ActionLogs(); + $actionLogs->addLog('USER_TRIED_LOGIN_APP', $message, $event->sender->user->id); + } + } + + /** + * 登录成功记录日志 + * @param Event $event + */ + public function afterLogin(Event $event) + { + $message = [ + 'action' => 'login', + 'userid' => $event->identity->id, + 'username' => $event->identity->username, + 'accountlink' => Url::to(['/admin/user/view', 'id' => $event->identity->id]), + 'app' => Helper::getClient() + ]; + + $actionLogs = new ActionLogs(); + $actionLogs->addLog('USER_LOGGED_APP', $message, $message['userid']); + if (is_null($event->identity->admin)){ + $member = Member::findOne($message['userid']); + $member->lastvisitDate = time(); + $member->save(); + }else{ + $admin = Admin::findOne($message['userid']); + $admin->lastvisitDate = time(); + $admin->save(); + } + } + + /** + * 退出成功记录日志 + * @param Event $event + */ + public function afterLogout(Event $event) + { + $message = [ + 'action' => 'logout', + 'userid' => $event->identity->id, + 'username' => $event->identity->username, + 'accountlink' => Url::to(['/admin/user/view', 'id' => $event->identity->id]), + 'app' => Helper::getClient() + ]; + + $actionLogs = new ActionLogs(); + $actionLogs->addLog('USER_LOGGED_OUT_APP', $message, $message['userid']); + } + + /** + * 删除日志记录日志 + */ + public function afterLogPurge() + { + $message = [ + 'action' => 'actionlogs', + 'userid' => Yii::$app->user->identity->id, + 'username' => Yii::$app->user->identity->username, + 'accountlink' => Url::to(['/admin/user/view', 'id' => Yii::$app->user->identity->id]) + ]; + + $actionLogs = new ActionLogs(); + $actionLogs->addLog('USER_PURGED_ONE_OR_MORE_ROWS', $message, $message['userid']); + } + + /** + * 导出日志记录日志 + */ + public function afterLogExport() + { + $message = [ + 'action' => 'actionlogs', + 'userid' => Yii::$app->user->identity->id, + 'username' => Yii::$app->user->identity->username, + 'accountlink' => Url::to(['/admin/user/view', 'id' => Yii::$app->user->identity->id]) + ]; + + $actionLogs = new ActionLogs(); + $actionLogs->addLog('USER_EXPORTED_ONE_OR_MORE_ROWS', $message, $message['userid']); + } + +// public function afterDelete(Event $event) +// { +// if(get_class($event->sender) === 'backend\modules\actionlogs\models\ActionLogs'){ +// print_r($event->sender); +// } +// exit; +// } + + public function afterHello($event) + { + print_r($event); + } +} diff --git a/common/plugins/actionlog/main/behaviors.php b/common/plugins/actionlog/main/behaviors.php new file mode 100755 index 0000000000000000000000000000000000000000..068319a7504c425cba3e9335980d0bd823c10f8e --- /dev/null +++ b/common/plugins/actionlog/main/behaviors.php @@ -0,0 +1,21 @@ + [ + 'actionlog' => [ + 'class' => PluginBehavior::class + ] + ], + 'yii\web\User' => [ + 'actionlog' => [ + 'class' => PluginBehavior::class + ] + ], +// 'yii\db\BaseActiveRecord' => [ +// 'actionlog' => [ +// 'class' => PluginBehavior::class +// ] +// ] +]; diff --git a/common/plugins/actionlog/main/main.xml b/common/plugins/actionlog/main/main.xml new file mode 100755 index 0000000000000000000000000000000000000000..f2205dbf331d2e462aa6e3c250d0b72764b1130d --- /dev/null +++ b/common/plugins/actionlog/main/main.xml @@ -0,0 +1,20 @@ + + + ACTION_LOG_NAME + 1.0.0 + FireLoong + fireloong@foxmail.com + www.fireloong.com + July 2019 + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + ACTION_LOG_XML_DESCRIPTION + + PluginBehavior.php + behaviors.php + main.xml + + + plg_actionlog.php + + diff --git a/common/plugins/editors/none/PluginBehavior.php b/common/plugins/editors/none/PluginBehavior.php new file mode 100755 index 0000000000000000000000000000000000000000..3309d8e0baec683954043855fca3c119e3398451 --- /dev/null +++ b/common/plugins/editors/none/PluginBehavior.php @@ -0,0 +1,40 @@ +wh('width', '100%'); + $height = $this->wh('height', '300px'); + $css = '#' . $this->inputId . '{width:' . $width . ';height:' . $height . ';}'; + $this->form->view->registerCss($css); + } + + private function wh($px, $default) + { + $result = ''; + if (isset($this->options[$px]) && !empty($this->options[$px])) { + if (is_numeric($this->options[$px])) { + $result = $this->options[$px] . 'px'; + } elseif (is_string($this->options[$px])) { + $result = $this->options[$px]; + } + } + + return $result ?: $default; + } +} diff --git a/common/plugins/editors/none/none.xml b/common/plugins/editors/none/none.xml new file mode 100755 index 0000000000000000000000000000000000000000..2781491f708575f7420fd204c4b3ce8631c0920b --- /dev/null +++ b/common/plugins/editors/none/none.xml @@ -0,0 +1,19 @@ + + + EDITORS_NONE + 1.0.0 + FireLoong + fireloong@foxmail.com + www.fireloong.com/ + 2019 - 11 + Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved. + GNU General Public License version 2 or later; see LICENSE.txt + XML_DESCRIPTION + + PluginBehavior.php + none.xml + + + plg_none.php + + \ No newline at end of file diff --git a/common/plugins/editors/tinymce/PluginBehavior.php b/common/plugins/editors/tinymce/PluginBehavior.php new file mode 100755 index 0000000000000000000000000000000000000000..9568c4567093f6f244ac5d98afeeec7694d06d8d --- /dev/null +++ b/common/plugins/editors/tinymce/PluginBehavior.php @@ -0,0 +1,81 @@ +form->assets['editor'] = [ + 'sourcePath' => '@common/plugins/editors/tinymce/media', + 'js' => ['tinymce.min.js'], + 'bundles' => ['yii\bootstrap\BootstrapThemeAsset', 'yii\bootstrap\BootstrapPluginAsset'] + ]; + + if (isset($this->options['width']) && !empty($this->options['width'])) { + if (!is_numeric($this->options['width']) && is_string($this->options['width'])) { + $this->options['width'] = '\'' . $this->options['width'] . '\''; + } + } else { + $this->options['width'] = '\'100%\''; + } + $this->options['height'] = $this->options['height'] ?? 500; + + $lang = str_replace('-', '_', Yii::$app->language); + + $imageList = Url::to(['/media/images/index','type'=>'tinymce','alt' => 1]); + + $js = <<inputId', + width: {$this->options['width']}, + height: {$this->options['height']}, + language: '$lang', + plugins: [ + 'advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker', + 'searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking', + 'save table directionality emoticons template paste help' + ], + toolbar: 'insertfile undo redo | styleselect | bold italic forecolor backcolor | alignleft aligncenter' + + ' alignright alignjustify | bullist numlist outdent indent | link image media emoticons | preview fullscreen ' + + '| print help', + templates: [ + {title: 'some title 1', description: 'some desc 1', content: 'My Content 1'}, + {title: 'some title 2', description: 'some desc 2', content: 'My Content 2'} + ], + convert_urls: false, + image_advtab: true, + //image_uploadtab: true, + images_upload_url: '$imageList', + file_picker_types: 'image', + file_picker_callback: function(callback, value, meta){ + if (meta.filetype == 'image'){ + tinymce.activeEditor.windowManager.openUrl({ + title: 'Insert image', + url: '$imageList', + onMessage: function(api,details) { + callback(details.data.url, details.data.objVals); + api.close(); + } + }); + } + } +}); +JS; + $this->form->view->registerJs($js); + } +} diff --git a/common/plugins/editors/tinymce/media/jquery.tinymce.min.js b/common/plugins/editors/tinymce/media/jquery.tinymce.min.js new file mode 100755 index 0000000000000000000000000000000000000000..5a6ef56ad41606935990b23742231c24a2859ad4 --- /dev/null +++ b/common/plugins/editors/tinymce/media/jquery.tinymce.min.js @@ -0,0 +1,91 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + */ +/** + * Jquery integration plugin. + * + * @class tinymce.core.JqueryIntegration + * @private + */ +!function(){var f,c,u,p,d,s=[];d="undefined"!=typeof global?global:window,p=d.jQuery;function v(){ +// Reference to tinymce needs to be lazily evaluated since tinymce +// might be loaded through the compressor or other means +return d.tinymce}p.fn.tinymce=function(o){var e,t,i,l=this,r=""; +// No match then just ignore the call +if(!l.length)return l; +// Get editor instance +if(!o)return v()?v().get(l[0].id):null;l.css("visibility","hidden");function n(){var a=[],c=0; +// Apply patches to the jQuery object, only once +u||(m(),u=!0), +// Create an editor instance for each matched node +l.each(function(e,t){var n,i=t.id,r=o.oninit; +// Generate unique id for target element if needed +i||(t.id=i=v().DOM.uniqueId()), +// Only init the editor once +v().get(i)||( +// Create editor instance and render it +n=v().createEditor(i,o),a.push(n),n.on("init",function(){var e,t=r;l.css("visibility",""), +// Run this if the oninit setting is defined +// this logic will fire the oninit callback ones each +// matched editor instance is initialized +r&&++c==a.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:v().resolve(t.replace(/\.\w+$/,"")),t=v().resolve(t)), +// Call the oninit function with the object +t.apply(e||v(),a))}))}), +// Render the editor instances in a separate loop since we +// need to have the full editors array used in the onInit calls +p.each(a,function(e,t){t.render()})} +// Load TinyMCE on demand, if we need to +if(d.tinymce||c||!(e=o.script_url)) +// Delay the init call until tinymce is loaded +1===c?s.push(n):n();else{c=1,t=e.substring(0,e.lastIndexOf("/")), +// Check if it's a dev/src version they want to load then +// make sure that all plugins, themes etc are loaded in source mode as well +-1!=e.indexOf(".min")&&(r=".min"), +// Setup tinyMCEPreInit object this will later be used by the TinyMCE +// core script to locate other resources like CSS files, dialogs etc +// You can also predefined a tinyMCEPreInit object and then it will use that instead +d.tinymce=d.tinyMCEPreInit||{base:t,suffix:r}, +// url contains gzip then we assume it's a compressor +-1!=e.indexOf("gzip")&&(i=o.language||"en",e=e+(/\?/.test(e)?"&":"?")+"js=true&core=true&suffix="+escape(r)+"&themes="+escape(o.theme||"modern")+"&plugins="+escape(o.plugins||"")+"&languages="+(i||""), +// Check if compressor script is already loaded otherwise setup a basic one +d.tinyMCE_GZ||(d.tinyMCE_GZ={start:function(){function n(e){v().ScriptLoader.markDone(v().baseURI.toAbsolute(e))} +// Add core languages +n("langs/"+i+".js"), +// Add themes with languages +n("themes/"+o.theme+"/theme"+r+".js"),n("themes/"+o.theme+"/langs/"+i+".js"), +// Add plugins with languages +p.each(o.plugins.split(","),function(e,t){t&&(n("plugins/"+t+"/plugin"+r+".js"),n("plugins/"+t+"/langs/"+i+".js"))})},end:function(){}}));var a=document.createElement("script");a.type="text/javascript",a.onload=a.onreadystatechange=function(e){e=e||window.event,2===c||"load"!=e.type&&!/complete|loaded/.test(a.readyState)||(v().dom.Event.domLoaded=1,c=2, +// Execute callback after mainscript has been loaded and before the initialization occurs +o.script_loaded&&o.script_loaded(),n(),p.each(s,function(e,t){t()}))},a.src=e,document.body.appendChild(a)}return l}, +// Add :tinymce pseudo selector this will select elements that has been converted into editor instances +// it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements. +p.extend(p.expr[":"],{tinymce:function(e){var t;return!!(e.id&&"tinymce"in d&&(t=v().get(e.id))&&t.editorManager===v())}}); +// This function patches internal jQuery functions so that if +// you for example remove an div element containing an editor it's +// automatically destroyed by the TinyMCE API +var m=function(){function r(e){ +// If the function is remove +"remove"===e&&this.each(function(e,t){var n=u(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=v().get(t.id.replace(/_parent$/,""));n&&n.remove()})}function o(i){var e,t=this; +// Handle set value +/*jshint eqnull:true */if(null!=i)r.call(t), +// Saves the contents before get/set value of textarea/div +t.each(function(e,t){var n;(n=v().get(t.id))&&n.setContent(i)});else if(0])*>/g,""):n.getContent({save:!0}):a.apply(p(t),r)}),i}}), +// Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe +p.each(["append","prepend"],function(e,t){var n=s[t]=p.fn[t],r="prepend"===t;p.fn[t]=function(i){var e=this;return l(e)?i!==f?("string"==typeof i&&e.filter(":tinymce").each(function(e,t){var n=u(t);n&&n.setContent(r?i+n.getContent():n.getContent()+i)}),n.apply(e.not(":tinymce"),arguments),e):void 0:n.apply(e,arguments)}}), +// Makes sure that the editor instance gets properly destroyed when the parent element is removed +p.each(["remove","replaceWith","replaceAll","empty"],function(e,t){var n=s[t]=p.fn[t];p.fn[t]=function(){return r.call(this,t),n.apply(this,arguments)}}),s.attr=p.fn.attr, +// Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents +p.fn.attr=function(e,t){var n=this,i=arguments;if(!e||"value"!==e||!l(n))return s.attr.apply(n,i);if(t!==f)return o.call(n.filter(":tinymce"),t),s.attr.apply(n.not(":tinymce"),i),n;// return original set for chaining +var r=n[0],a=u(r);return a?a.getContent({save:!0}):s.attr.apply(p(r),i)}}}(); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ar.js b/common/plugins/editors/tinymce/media/langs/ar.js new file mode 100755 index 0000000000000000000000000000000000000000..5edab28abe6ec96102d421496bcf0bb40a81acdb --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ar.js @@ -0,0 +1,390 @@ +tinymce.addI18n('ar',{ +"Redo": "\u0625\u0639\u0627\u062f\u0629", +"Undo": "\u062a\u0631\u0627\u062c\u0639", +"Cut": "\u0642\u0635", +"Copy": "\u0646\u0633\u062e", +"Paste": "\u0644\u0635\u0642", +"Select all": "\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0644", +"New document": "\u0645\u0633\u062a\u0646\u062f \u062c\u062f\u064a\u062f", +"Ok": "\u0645\u0648\u0627\u0641\u0642", +"Cancel": "\u0625\u0644\u063a\u0627\u0621 \u0627\u0644\u0623\u0645\u0631", +"Visual aids": "\u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u0635\u0631\u064a\u0629", +"Bold": "\u063a\u0627\u0645\u0642", +"Italic": "\u0645\u0627\u0626\u0644", +"Underline": "\u062a\u0633\u0637\u064a\u0631", +"Strikethrough": "\u064a\u062a\u0648\u0633\u0637\u0647 \u062e\u0637", +"Superscript": "\u0645\u0631\u062a\u0641\u0639", +"Subscript": "\u0645\u0646\u062e\u0641\u0636", +"Clear formatting": "\u0645\u0633\u062d \u0627\u0644\u062a\u0646\u0633\u064a\u0642", +"Align left": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u064a\u0633\u0627\u0631", +"Align center": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u0648\u0633\u0637", +"Align right": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0625\u0644\u0649 \u0627\u0644\u064a\u0645\u064a\u0646", +"Justify": "\u0636\u0628\u0637", +"Bullet list": "\u0642\u0627\u0626\u0645\u0629 \u062a\u0639\u062f\u0627\u062f \u0646\u0642\u0637\u064a", +"Numbered list": "\u0642\u0627\u0626\u0645\u0629 \u0645\u0631\u0642\u0645\u0651\u064e\u0629", +"Decrease indent": "\u062a\u0642\u0644\u064a\u0644 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629", +"Increase indent": "\u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629", +"Close": "\u0625\u063a\u0644\u0627\u0642", +"Formats": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0641\u0638\u0629. \u064a\u064f\u0631\u062c\u0649 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d Ctrl+X\/C\/V \u0628\u062f\u0644\u0627\u064b \u0645\u0646 \u0630\u0644\u0643.", +"Headers": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646", +"Header 1": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 1", +"Header 2": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 2", +"Header 3": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 3", +"Header 4": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 4", +"Header 5": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 5", +"Header 6": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646 6", +"Headings": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646", +"Heading 1": "\u0639\u0646\u0648\u0627\u0646 \u0661", +"Heading 2": "\u0639\u0646\u0648\u0627\u0646 2", +"Heading 3": "\u0639\u0646\u0648\u0627\u0646 3", +"Heading 4": "\u0639\u0646\u0648\u0627\u0646 4", +"Heading 5": "\u0639\u0646\u0648\u0627\u0646 5", +"Heading 6": "\u0639\u0646\u0648\u0627\u0646 6", +"Preformatted": "\u0645\u0646\u0633\u0642 \u0645\u0633\u0628\u0642\u064b\u0627", +"Div": "Div", +"Pre": "Pre", +"Code": "\u0631\u0645\u0632", +"Paragraph": "\u0627\u0644\u0641\u0642\u0631\u0629", +"Blockquote": "Blockquote", +"Inline": "\u062f\u0627\u062e\u0644\u064a", +"Blocks": "\u0627\u0644\u0643\u062a\u0644", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u064a\u062a\u0645 \u0627\u0644\u0644\u0635\u0642 \u062d\u0627\u0644\u064a\u0627\u064b \u0643\u0646\u0635 \u0639\u0627\u062f\u064a. \u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0633\u064a\u0628\u0642\u0649 \u0643\u0646\u0635 \u0639\u0627\u062f\u064a \u062d\u062a\u0649 \u062a\u0642\u0648\u0645 \u0628\u062a\u0639\u0637\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631.", +"Fonts": "\u0627\u0644\u062e\u0637\u0648\u0637", +"Font Sizes": "\u0623\u062d\u062c\u0627\u0645 \u0627\u0644\u062e\u0637\u0648\u0637", +"Class": "\u0627\u0644\u0641\u0626\u0629", +"Browse for an image": "\u0627\u0633\u062a\u0639\u0631\u0627\u0636 \u0635\u0648\u0631\u0629", +"OR": "\u0623\u0648", +"Drop an image here": "\u0625\u0641\u0644\u0627\u062a \u0635\u0648\u0631\u0629 \u0647\u0646\u0627", +"Upload": "\u062a\u062d\u0645\u064a\u0644", +"Block": "\u062d\u0638\u0631", +"Align": "\u0645\u062d\u0627\u0630\u0627\u0629", +"Default": "\u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a", +"Circle": "\u062f\u0627\u0626\u0631\u0629", +"Disc": "\u0642\u0631\u0635", +"Square": "\u0645\u0631\u0628\u0639", +"Lower Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062e\u0631\u0641 \u0635\u063a\u064a\u0631\u0629", +"Lower Greek": "\u062a\u0631\u0642\u064a\u0645 \u064a\u0648\u0646\u0627\u0646\u064a \u0635\u063a\u064a\u0631", +"Lower Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0635\u063a\u064a\u0631", +"Upper Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062d\u0631\u0641 \u0643\u0628\u064a\u0631\u0629", +"Upper Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0643\u0628\u064a\u0631", +"Anchor...": "\u0645\u0631\u0633\u0627\u0629...", +"Name": "\u0627\u0644\u0627\u0633\u0645", +"Id": "\u0631\u0642\u0645 \u0627\u0644\u0645\u0639\u0631\u0641", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u0631\u0642\u0645 \u0627\u0644\u0645\u0639\u0631\u0641 \u064a\u062c\u0628 \u0623\u0646 \u062a\u0628\u062f\u0623 \u0628\u062d\u0631\u0641\u060c \u064a\u062a\u0628\u0639 \u0641\u0642\u0637 \u0628\u062d\u0631\u0648\u0641 \u0648\u0623\u0631\u0642\u0627\u0645\u060c \u0634\u0631\u0637\u0627\u062a\u060c \u0623\u0648 \u0627\u0644\u0646\u0642\u0627\u0637\u060c \u0627\u0644\u0646\u0642\u0637\u062a\u064a\u0646 \u0623\u0648 \u0627\u0644\u0634\u0631\u0637\u0627\u062a \u0627\u0644\u0633\u0641\u0644\u064a\u0629.", +"You have unsaved changes are you sure you want to navigate away?": "\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0644\u0645 \u064a\u062a\u0645 \u062d\u0641\u0638\u0647\u0627 \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0639\u064a\u062f\u0627\u061f", +"Restore last draft": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0623\u062e\u0631 \u0645\u0633\u0648\u062f\u0629", +"Special characters...": "\u0631\u0645\u0648\u0632 \u062e\u0627\u0635\u0629...", +"Source code": "\u0634\u0641\u0631\u0629 \u0627\u0644\u0645\u0635\u062f\u0631", +"Insert\/Edit code sample": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0643\u0648\u062f", +"Language": "\u0627\u0644\u0644\u063a\u0629", +"Code sample...": "\u0639\u064a\u0646\u0629 \u0627\u0644\u0631\u0645\u0632...", +"Color Picker": "\u0645\u0646\u062a\u0642\u064a \u0627\u0644\u0623\u0644\u0648\u0627\u0646", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u0645\u0646 \u0627\u0644\u064a\u0633\u0627\u0631 \u0644\u0644\u064a\u0645\u064a\u0646", +"Right to left": "\u0645\u0646 \u0627\u0644\u064a\u0645\u064a\u0646 \u0644\u0644\u064a\u0633\u0627\u0631", +"Emoticons...": "\u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631...", +"Metadata and Document Properties": "\u062e\u0635\u0627\u0626\u0635 \u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062a\u0639\u0631\u064a\u0641 \u0648\u0627\u0644\u0645\u0633\u062a\u0646\u062f", +"Title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646", +"Keywords": "\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0628\u062d\u062b", +"Description": "\u0627\u0644\u0648\u0635\u0641", +"Robots": "\u0627\u0644\u0631\u0648\u0628\u0648\u062a\u0627\u062a", +"Author": "\u0627\u0644\u0643\u0627\u062a\u0628", +"Encoding": "\u0627\u0644\u062a\u0631\u0645\u064a\u0632", +"Fullscreen": "\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629", +"Action": "\u0627\u0644\u0639\u0645\u0644\u064a\u0629", +"Shortcut": "\u0627\u0644\u0627\u062e\u062a\u0635\u0627\u0631", +"Help": "\u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629", +"Address": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646", +"Focus to menubar": "\u0627\u0644\u062a\u0631\u0643\u064a\u0632 \u0639\u0644\u0649 \u0634\u0631\u064a\u0637 \u0627\u0644\u0642\u0648\u0627\u0626\u0645", +"Focus to toolbar": "\u0627\u0644\u062a\u0631\u0643\u064a\u0632 \u0639\u0644\u0649 \u0634\u0631\u064a\u0637 \u0627\u0644\u0623\u062f\u0648\u0627\u062a", +"Focus to element path": "\u0627\u0644\u062a\u0631\u0643\u064a\u0632 \u0639\u0644\u0649 \u0645\u0633\u0627\u0631 \u0627\u0644\u0639\u0646\u0635\u0631", +"Focus to contextual toolbar": "\u0627\u0644\u062a\u0631\u0643\u064a\u0632 \u0639\u0644\u0649 \u0634\u0631\u064a\u0637 \u0623\u062f\u0648\u0627\u062a \u0627\u0644\u0633\u064a\u0627\u0642", +"Insert link (if link plugin activated)": "\u0625\u0636\u0627\u0641\u0629 \u0631\u0627\u0628\u0637 (\u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0631\u0648\u0627\u0628\u0637 \u0645\u0641\u0639\u0644\u0629)", +"Save (if save plugin activated)": "\u062d\u0641\u0638 (\u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u062d\u0641\u0638 \u0645\u0641\u0639\u0644\u0629)", +"Find (if searchreplace plugin activated)": "\u0627\u0644\u0628\u062d\u062b (\u0625\u0630\u0627 \u0643\u0627\u0646\u062a \u0625\u0636\u0627\u0641\u0629 \u0627\u0644\u0628\u062d\u062b \u0645\u0641\u0639\u0644\u0629)", +"Plugins installed ({0}):": "\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062a \u0627\u0644\u0645\u062b\u0628\u062a\u0629 ({0}):", +"Premium plugins:": "\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062a \u0627\u0644\u0645\u0645\u064a\u0632\u0629:", +"Learn more...": "\u0645\u0639\u0631\u0641\u0629 \u0627\u0644\u0645\u0632\u064a\u062f...", +"You are using {0}": "\u0623\u0646\u062a \u062a\u0633\u062a\u062e\u062f\u0645 {0}", +"Plugins": "\u0627\u0644\u0625\u0636\u0627\u0641\u0627\u062a", +"Handy Shortcuts": "\u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0645\u0633\u0627\u0639\u0650\u062f\u0629", +"Horizontal line": "\u062e\u0637 \u0623\u0641\u0642\u064a", +"Insert\/edit image": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0635\u0648\u0631\u0629", +"Image description": "\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629", +"Source": "\u0627\u0644\u0645\u0635\u062f\u0631", +"Dimensions": "\u0627\u0644\u0623\u0628\u0639\u0627\u062f", +"Constrain proportions": "\u0627\u0644\u062a\u0646\u0627\u0633\u0628", +"General": "\u0639\u0627\u0645", +"Advanced": "\u062e\u0635\u0627\u0626\u0635 \u0645\u062a\u0642\u062f\u0645\u0647", +"Style": "\u0627\u0644\u0646\u0645\u0637 \/ \u0627\u0644\u0634\u0643\u0644", +"Vertical space": "\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062f\u064a\u0629", +"Horizontal space": "\u0645\u0633\u0627\u0641\u0629 \u0623\u0641\u0642\u064a\u0629", +"Border": "\u062d\u062f\u0648\u062f", +"Insert image": "\u0625\u062f\u0631\u0627\u062c \u0635\u0648\u0631\u0629", +"Image...": "\u0635\u0648\u0631\u0629...", +"Image list": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0635\u0648\u0631", +"Rotate counterclockwise": "\u062a\u062f\u0648\u064a\u0631 \u0639\u0643\u0633 \u0627\u062a\u062c\u0627\u0647 \u0639\u0642\u0627\u0631\u0628 \u0627\u0644\u0633\u0627\u0639\u0629", +"Rotate clockwise": "\u062a\u062f\u0648\u064a\u0631 \u0641\u064a \u0627\u062a\u062c\u0627\u0647 \u0639\u0642\u0627\u0631\u0628 \u0627\u0644\u0633\u0627\u0639\u0629", +"Flip vertically": "\u0627\u0646\u0639\u0643\u0627\u0633 \u0639\u0627\u0645\u0648\u062f\u064a", +"Flip horizontally": "\u0627\u0646\u0639\u0643\u0627\u0633 \u0623\u0641\u0642\u064a", +"Edit image": "\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0635\u0648\u0631\u0629", +"Image options": "\u0627\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0644\u0635\u0648\u0631\u0629", +"Zoom in": "\u062a\u0643\u0628\u064a\u0631", +"Zoom out": "\u062a\u0635\u063a\u064a\u0631", +"Crop": "\u0642\u0635", +"Resize": "\u062a\u063a\u064a\u064a\u0631 \u062d\u062c\u0645", +"Orientation": "\u0627\u0644\u0645\u062d\u0627\u0630\u0627\u0629", +"Brightness": "\u0627\u0644\u0625\u0636\u0627\u0621\u0629", +"Sharpen": "\u062d\u0627\u062f\u0629", +"Contrast": "\u0627\u0644\u062a\u0628\u0627\u064a\u0646", +"Color levels": "\u0645\u0633\u062a\u0648\u0649 \u0627\u0644\u0644\u0648\u0646", +"Gamma": "\u063a\u0627\u0645\u0627", +"Invert": "\u0639\u0643\u0633", +"Apply": "\u062a\u0637\u0628\u064a\u0642", +"Back": "\u0644\u0644\u062e\u0644\u0641", +"Insert date\/time": "\u0625\u062f\u0631\u0627\u062c \u062a\u0627\u0631\u064a\u062e\/\u0648\u0642\u062a", +"Date\/time": "\u0627\u0644\u062a\u0627\u0631\u064a\u062e\/\u0627\u0644\u0648\u0642\u062a", +"Insert\/Edit Link": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0627\u0631\u062a\u0628\u0627\u0637", +"Insert\/edit link": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0631\u0627\u0628\u0637", +"Text to display": "\u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u0637\u0644\u0648\u0628 \u0639\u0631\u0636\u0647", +"Url": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646", +"Open link in...": "\u062c\u0627\u0631\u064d \u0641\u062a\u062d \u0627\u0644\u0627\u0631\u062a\u0628\u0627\u0637.", +"Current window": "\u0627\u0644\u0646\u0627\u0641\u0630\u0629 \u0627\u0644\u062d\u0627\u0644\u064a\u0629", +"None": "\u0628\u0644\u0627", +"New window": "\u0646\u0627\u0641\u0630\u0629 \u062c\u062f\u064a\u062f\u0629", +"Remove link": "\u062d\u0630\u0641 \u0627\u0644\u0631\u0627\u0628\u0637", +"Anchors": "\u0627\u0644\u0645\u0631\u0633\u0627\u0629", +"Link...": "\u0627\u0631\u062a\u0628\u0627\u0637...", +"Paste or type a link": "\u0623\u062f\u062e\u0644 \u0623\u0648 \u0627\u0643\u062a\u0628 \u0627\u0644\u0631\u0627\u0628\u0637", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0627\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064a \u0642\u0645\u062a \u0628\u0625\u062f\u0631\u0627\u062c\u0647 \u064a\u0634\u0627\u0628\u0647 \u0627\u0644\u0628\u0631\u064a\u062f \u0627\u0644\u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a. \u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0646 \u062a\u0636\u064a\u0641 \u0627\u0644\u0644\u0627\u062d\u0642\u0629 mailto: \u0645\u0639\u062a\u0628\u0631\u0627\u064b \u0647\u0630\u0627 \u0627\u0644\u0631\u0627\u0628\u0637 \u0628\u0631\u064a\u062f\u0627 \u0627\u0644\u0643\u062a\u0631\u0648\u0646\u064a\u0627\u064b\u061f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0646\u062a\u0648\u0642\u0639 \u0627\u0646\u0643 \u0642\u0645\u062a \u0628\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637 \u0644\u0645\u0648\u0642\u0639 \u062e\u0627\u0631\u062c\u064a. \u0647\u0644 \u062a\u0631\u064a\u062f \u0627\u0646 \u0646\u0636\u064a\u0641 \u0627\u0644\u0644\u0627\u062d\u0642\u0629 http:\/\/ \u0644\u0644\u0631\u0627\u0628\u0637 \u0627\u0644\u0630\u064a \u0627\u062f\u062e\u0644\u062a\u0647\u061f", +"Link list": "\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0631\u0648\u0627\u0628\u0637", +"Insert video": "\u0625\u062f\u0631\u0627\u062c \u0641\u064a\u062f\u064a\u0648", +"Insert\/edit video": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0641\u064a\u062f\u064a\u0648", +"Insert\/edit media": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0627\u0644\u0645\u062a\u0639\u062f\u062f\u0629", +"Alternative source": "\u0645\u0635\u062f\u0631 \u0628\u062f\u064a\u0644", +"Alternative source URL": "\u0639\u0646\u0648\u0627\u0646 URL \u0644\u0644\u0645\u0635\u062f\u0631 \u0627\u0644\u0628\u062f\u064a\u0644", +"Media poster (Image URL)": "\u0645\u0644\u0635\u0642 \u0627\u0644\u0648\u0633\u0627\u0626\u0637 (\u0639\u0646\u0648\u0627\u0646 URL \u0644\u0644\u0635\u0648\u0631\u0629)", +"Paste your embed code below:": "\u0644\u0635\u0642 \u0643\u0648\u062f \u0627\u0644\u062a\u0636\u0645\u064a\u0646 \u0647\u0646\u0627:", +"Embed": "\u062a\u0636\u0645\u064a\u0646", +"Media...": "\u0627\u0644\u0648\u0633\u0627\u0626\u0637...", +"Nonbreaking space": "\u0645\u0633\u0627\u0641\u0629 \u063a\u064a\u0631 \u0645\u0646\u0642\u0633\u0645\u0629", +"Page break": "\u0641\u0627\u0635\u0644 \u0644\u0644\u0635\u0641\u062d\u0629", +"Paste as text": "\u0644\u0635\u0642 \u0643\u0646\u0635", +"Preview": "\u0645\u0639\u0627\u064a\u0646\u0629", +"Print...": "\u0637\u0628\u0627\u0639\u0629...", +"Save": "\u062d\u0641\u0638", +"Find": "\u0628\u062d\u062b", +"Replace with": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0628\u0640", +"Replace": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644", +"Replace all": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0643\u0644", +"Previous": "\u0627\u0644\u0633\u0627\u0628\u0642", +"Next": "\u0627\u0644\u062a\u0627\u0644\u064a", +"Find and replace...": "\u062c\u0627\u0631\u064d \u0627\u0644\u0628\u062d\u062b \u0648\u0627\u0644\u0627\u0633\u062a\u0628\u062f\u0627\u0644...", +"Could not find the specified string.": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629", +"Match case": "\u0645\u0637\u0627\u0628\u0642\u0629 \u062d\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641", +"Find whole words only": "\u0628\u062d\u062b \u0643\u0644\u0645\u0627\u062a \u0628\u0623\u0643\u0645\u0644\u0647\u0627 \u0641\u0642\u0637", +"Spell check": "\u062a\u062f\u0642\u064a\u0642 \u0625\u0645\u0644\u0627\u0626\u064a", +"Ignore": "\u062a\u062c\u0627\u0647\u0644", +"Ignore all": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0643\u0644", +"Finish": "\u0627\u0646\u062a\u0647\u064a", +"Add to Dictionary": "\u0627\u0636\u0641 \u0627\u0644\u064a \u0627\u0644\u0642\u0627\u0645\u0648\u0633", +"Insert table": "\u0625\u062f\u0631\u0627\u062c \u062c\u062f\u0648\u0644", +"Table properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062c\u062f\u0648\u0644", +"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644", +"Cell": "\u062e\u0644\u064a\u0629", +"Row": "\u0635\u0641", +"Column": "\u0639\u0645\u0648\u062f", +"Cell properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062e\u0644\u064a\u0629", +"Merge cells": "\u062f\u0645\u062c \u062e\u0644\u0627\u064a\u0627", +"Split cell": "\u062a\u0642\u0633\u064a\u0645 \u0627\u0644\u062e\u0644\u0627\u064a\u0627", +"Insert row before": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649", +"Insert row after": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644", +"Delete row": "\u062d\u0630\u0641 \u0635\u0641", +"Row properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0641", +"Cut row": "\u0642\u0635 \u0627\u0644\u0635\u0641", +"Copy row": "\u0646\u0633\u062e \u0627\u0644\u0635\u0641", +"Paste row before": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649", +"Paste row after": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644", +"Insert column before": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0633\u0627\u0631", +"Insert column after": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0645\u064a\u0646", +"Delete column": "\u062d\u0630\u0641 \u0639\u0645\u0648\u062f", +"Cols": "\u0639\u062f\u062f \u0627\u0644\u0623\u0639\u0645\u062f\u0629", +"Rows": "\u0639\u062f\u062f \u0627\u0644\u0635\u0641\u0648\u0641", +"Width": "\u0639\u0631\u0636", +"Height": "\u0627\u0631\u062a\u0641\u0627\u0639", +"Cell spacing": "\u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0628\u064a\u0646 \u0627\u0644\u062e\u0644\u0627\u064a\u0627", +"Cell padding": "\u062a\u0628\u0627\u0639\u062f \u0627\u0644\u062e\u0644\u064a\u0629", +"Show caption": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u062a\u0648\u0636\u064a\u062d\u064a\u0629", +"Left": "\u064a\u0633\u0627\u0631", +"Center": "\u062a\u0648\u0633\u064a\u0637", +"Right": "\u064a\u0645\u064a\u0646", +"Cell type": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0644\u064a\u0629", +"Scope": "\u0627\u0644\u0645\u062c\u0627\u0644", +"Alignment": "\u0645\u062d\u0627\u0630\u0627\u0629", +"H Align": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0623\u0641\u0642\u064a\u0629", +"V Align": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0631\u0623\u0633\u064a\u0629", +"Top": "\u0623\u0639\u0644\u064a", +"Middle": "\u0627\u0644\u0648\u0633\u0637", +"Bottom": "\u0627\u0644\u0623\u0633\u0641\u0644", +"Header cell": "\u0631\u0623\u0633 \u0627\u0644\u062e\u0644\u064a\u0629", +"Row group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0635\u0641", +"Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0639\u0645\u0648\u062f", +"Row type": "\u0646\u0648\u0639 \u0627\u0644\u0635\u0641", +"Header": "\u0627\u0644\u0631\u0623\u0633", +"Body": "\u0647\u064a\u0643\u0644", +"Footer": "\u062a\u0630\u064a\u064a\u0644", +"Border color": "\u0644\u0648\u0646 \u0627\u0644\u0625\u0637\u0627\u0631", +"Insert template...": "\u062c\u0627\u0631\u064d \u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628...", +"Templates": "\u0642\u0648\u0627\u0644\u0628", +"Template": "\u0627\u0644\u0642\u0627\u0644\u0628", +"Text color": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635", +"Background color": "\u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629", +"Custom...": "\u062a\u062e\u0635\u064a\u0635 ...", +"Custom color": "\u0644\u0648\u0646 \u0645\u062e\u0635\u0635", +"No color": "\u0628\u062f\u0648\u0646 \u0644\u0648\u0646", +"Remove color": "\u0625\u0632\u0627\u0644\u0629 \u0644\u0648\u0646", +"Table of Contents": "\u062c\u062f\u0648\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a", +"Show blocks": "\u0645\u0634\u0627\u0647\u062f\u0629 \u0627\u0644\u0643\u062a\u0644", +"Show invisible characters": "\u0623\u0638\u0647\u0631 \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u063a\u064a\u0631 \u0645\u0631\u0626\u064a\u0629", +"Word count": "\u0639\u062f\u062f \u0627\u0644\u0643\u0644\u0645\u0627\u062a", +"Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a:{0}", +"{0} words": "{0} \u0643\u0644\u0645\u0627\u062a", +"File": "\u0645\u0644\u0641", +"Edit": "\u062a\u062d\u0631\u064a\u0631", +"Insert": "\u0625\u062f\u0631\u0627\u062c", +"View": "\u0639\u0631\u0636", +"Format": "\u062a\u0646\u0633\u064a\u0642", +"Table": "\u062c\u062f\u0648\u0644", +"Tools": "\u0623\u062f\u0627\u0648\u0627\u062a", +"Powered by {0}": "\u0645\u062f\u0639\u0648\u0645 \u0645\u0646 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0645\u0646\u0637\u0642\u0629 \u0646\u0635 \u0645\u0646\u0633\u0642. \u0627\u0636\u063a\u0637 ALT-F9 \u0644\u0644\u0642\u0627\u0626\u0645\u0629. \u0627\u0636\u063a\u0637 ALT-F10 \u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u0623\u062f\u0648\u0627\u062a. \u0627\u0636\u063a\u0637 ALT-0 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0633\u0627\u0639\u062f\u0629", +"Image title": "\u0639\u0646\u0648\u0627\u0646 \u0627\u0644\u0635\u0648\u0631\u0629", +"Border width": "\u0639\u0631\u0636 \u0627\u0644\u062d\u062f", +"Border style": "\u0646\u0645\u0637 \u0627\u0644\u062d\u062f", +"Error": "\u062e\u0637\u0623", +"Warn": "\u062a\u062d\u0630\u064a\u0631", +"Valid": "\u0635\u062d\u064a\u062d", +"To open the popup, press Shift+Enter": "\u0644\u0641\u062a\u062d \u0627\u0644\u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0645\u0646\u0628\u062b\u0642\u0629\u060c \u0627\u0636\u063a\u0637 \u0639\u0644\u0649 Shift\u200f+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u0645\u0646\u0637\u0642\u0629 \u0646\u0635 \u0645\u0646\u0633\u0642. \u0627\u0636\u063a\u0637 ALT-0 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u0645\u0633\u0627\u0639\u062f\u0629.", +"System Font": "\u062e\u0637 \u0627\u0644\u0646\u0638\u0627\u0645", +"Failed to upload image: {0}": "\u0641\u0634\u0644 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0635\u0648\u0631\u0629: {0}", +"Failed to load plugin: {0} from url {1}": "\u0641\u0634\u0644 \u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u0645\u0643\u0648\u0651\u0650\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064a: {0} \u0645\u0646 url \u200f{1}", +"Failed to load plugin url: {0}": "\u0641\u0634\u0644 \u062a\u062d\u0645\u064a\u0644 url \u0644\u0644\u0645\u0643\u0648\u0651\u0650\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064a: {0}", +"Failed to initialize plugin: {0}": "\u0641\u0634\u0644\u062a \u062a\u0647\u064a\u0626\u0629 \u0627\u0644\u0645\u0643\u0648\u0651\u0650\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064a: {0}", +"example": "\u0645\u062b\u0627\u0644", +"Search": "\u0628\u062d\u062b", +"All": "\u0627\u0644\u0643\u0644", +"Currency": "\u0627\u0644\u0639\u0645\u0644\u0629", +"Text": "\u0627\u0644\u0646\u0635", +"Quotations": "\u0639\u0631\u0648\u0636 \u0627\u0644\u0623\u0633\u0639\u0627\u0631", +"Mathematical": "\u0631\u064a\u0627\u0636\u064a\u0629", +"Extended Latin": "\u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629 \u0627\u0644\u0645\u0648\u0633\u0639\u0629", +"Symbols": "\u0627\u0644\u0631\u0645\u0648\u0632", +"Arrows": "\u0627\u0644\u0623\u0633\u0647\u0645", +"User Defined": "\u0645\u0639\u0631\u0651\u064e\u0641 \u0645\u0646 \u0642\u0628\u0644 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645", +"dollar sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062f\u0648\u0644\u0627\u0631", +"currency sign": "\u0639\u0644\u0627\u0645\u0629 \u0639\u0645\u0644\u0629", +"euro-currency sign": "\u0639\u0644\u0627\u0645\u0629 \u0639\u0645\u0644\u0629 \u0627\u0644\u064a\u0648\u0631\u0648", +"colon sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0646\u0642\u0637\u062a\u064a\u0646", +"cruzeiro sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0643\u0631\u0648\u0632\u064a\u0631\u0648", +"french franc sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0641\u0631\u0646\u0643 \u0627\u0644\u0641\u0631\u0646\u0633\u064a", +"lira sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0644\u064a\u0631\u0629", +"mill sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0645\u0644", +"naira sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0646\u064a\u0631\u0629", +"peseta sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0628\u064a\u0632\u064a\u062a\u0627", +"rupee sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0631\u0648\u0628\u064a\u0629", +"won sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0648\u0646", +"new sheqel sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0634\u064a\u0643\u0644 \u0627\u0644\u062c\u062f\u064a\u062f", +"dong sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062f\u0648\u0646\u062c", +"kip sign": "\u0639\u0645\u0644\u0629 \u0627\u0644\u0643\u064a\u0628", +"tugrik sign": "\u0639\u0645\u0644\u0629 \u0627\u0644\u062a\u0648\u063a\u0631\u064a\u0643", +"drachma sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062f\u0631\u0627\u062e\u0645\u0627", +"german penny symbol": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0628\u0646\u0633 \u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a", +"peso sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0628\u064a\u0632\u0648", +"guarani sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062c\u0648\u0627\u0631\u0627\u0646\u064a", +"austral sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0623\u0648\u0633\u062a\u0631\u0627\u0644", +"hryvnia sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0647\u0631\u064a\u0641\u0646\u064a\u0627", +"cedi sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0633\u064a\u062f\u064a", +"livre tournois sign": "\u0639\u0644\u0627\u0645\u0629 \u0644\u064a\u0641\u0631 \u062a\u0648\u0631\u0646\u0648\u064a\u0632", +"spesmilo sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0627\u0633\u0628\u064a\u0632\u0645\u0627\u064a\u0644\u0648", +"tenge sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062a\u064a\u0646\u062c", +"indian rupee sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0631\u0648\u0628\u064a\u0629 \u0627\u0644\u0647\u0646\u062f\u064a\u0629", +"turkish lira sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0644\u064a\u0631\u0629 \u0627\u0644\u062a\u0631\u0643\u064a\u0629", +"nordic mark sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0646\u0648\u0631\u062f\u0643", +"manat sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0645\u0627\u0646\u0627\u062a", +"ruble sign": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0631\u0648\u0628\u0644", +"yen character": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u064a\u0646", +"yuan character": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u064a\u0648\u0627\u0646", +"yuan character, in hong kong and taiwan": "\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u064a\u0648\u0627\u0646 \u0641\u064a \u0647\u0648\u0646\u062c \u0643\u0648\u0646\u062c \u0648\u062a\u0627\u064a\u0648\u0627\u0646", +"yen\/yuan character variant one": "\u0627\u0644\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u0628\u062f\u064a\u0644\u0629 \u0644\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u064a\u0646\/\u0627\u0644\u064a\u0648\u0627\u0646", +"Loading emoticons...": "\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631...", +"Could not load emoticons": "\u062c\u0627\u0631\u064d \u062a\u062d\u0645\u064a\u0644 \u0631\u0645\u0648\u0632 \u0627\u0644\u0645\u0634\u0627\u0639\u0631", +"People": "\u0623\u0634\u062e\u0627\u0635", +"Animals and Nature": "\u0627\u0644\u062d\u064a\u0648\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u0637\u0628\u064a\u0639\u0629", +"Food and Drink": "\u0627\u0644\u0623\u0637\u0639\u0645\u0629 \u0648\u0627\u0644\u0645\u0634\u0631\u0648\u0628\u0627\u062a", +"Activity": "\u0627\u0644\u0646\u0634\u0627\u0637", +"Travel and Places": "\u0627\u0644\u0633\u0641\u0631 \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0633\u064a\u0627\u062d\u064a\u0629", +"Objects": "\u0643\u0627\u0626\u0646\u0627\u062a", +"Flags": "\u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062a", +"Characters": "\u0627\u0644\u0623\u062d\u0631\u0641", +"Characters (no spaces)": "\u0627\u0644\u0623\u062d\u0631\u0641 (\u062f\u0648\u0646 \u0627\u0644\u0645\u0633\u0627\u0641\u0627\u062a)", +"Error: Form submit field collision.": "\u0627\u0644\u062e\u0637\u0623: \u062a\u062c\u0646\u0628 \u062d\u0642\u0644 \u0625\u0631\u0633\u0627\u0644 \u0627\u0644\u0646\u0645\u0648\u0630\u062c", +"Error: No form element found.": "\u0627\u0644\u062e\u0637\u0623: \u0644\u0645 \u064a\u062a\u0645 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0639\u0646\u0635\u0631 \u0646\u0645\u0648\u0630\u062c.", +"Update": "\u062a\u062d\u062f\u064a\u062b", +"Color swatch": "\u0639\u064a\u0646\u0627\u062a \u0627\u0644\u0623\u0644\u0648\u0627\u0646", +"Turquoise": "\u0641\u064a\u0631\u0648\u0632\u064a", +"Green": "\u0623\u062e\u0636\u0631", +"Blue": "\u0623\u0632\u0631\u0642", +"Purple": "\u0628\u0646\u0641\u0633\u062c\u064a", +"Navy Blue": "\u0623\u0632\u0631\u0642 \u0646\u064a\u0644\u064a", +"Dark Turquoise": "\u0641\u064a\u0631\u0648\u0632\u064a \u062f\u0627\u0643\u0646", +"Dark Green": "\u0623\u062e\u0636\u0631 \u062f\u0627\u0643\u0646", +"Medium Blue": "\u0623\u0632\u0631\u0642 \u0645\u062a\u0648\u0633\u0637", +"Medium Purple": "\u0628\u0646\u0641\u0633\u062c\u064a \u0645\u062a\u0648\u0633\u0637", +"Midnight Blue": "\u0623\u0632\u0631\u0642 \u062f\u0627\u0643\u0646 \u062c\u062f\u0627\u064b", +"Yellow": "\u0623\u0635\u0641\u0631", +"Orange": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a", +"Red": "\u0623\u062d\u0645\u0631", +"Light Gray": "\u0631\u0645\u0627\u062f\u064a \u0641\u0627\u062a\u062d", +"Gray": "\u0631\u0645\u0627\u062f\u064a", +"Dark Yellow": "\u0623\u0635\u0641\u0631 \u062f\u0627\u0643\u0646", +"Dark Orange": "\u0628\u0631\u062a\u0642\u0627\u0644\u064a \u062f\u0627\u0643\u0646", +"Dark Red": "\u0623\u062d\u0645\u0631 \u062f\u0627\u0643\u0646", +"Medium Gray": "\u0631\u0645\u0627\u062f\u064a \u0645\u062a\u0648\u0633\u0637", +"Dark Gray": "\u0631\u0645\u0627\u062f\u064a \u062f\u0627\u0643\u0646", +"Black": "\u0623\u0633\u0648\u062f", +"White": "\u0623\u0628\u064a\u0636", +"Switch to or from fullscreen mode": "\u0627\u0644\u062a\u0628\u062f\u064a\u0644 \u0625\u0644\u0649 \u0623\u0648 \u0645\u0646 \u0648\u0636\u0639 \u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629", +"Open help dialog": "\u0627\u0641\u062a\u062d \u062d\u0648\u0627\u0631 \u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a", +"history": "\u0627\u0644\u0645\u062d\u0641\u0648\u0638\u0627\u062a", +"styles": "\u0627\u0644\u0623\u0646\u0645\u0627\u0637", +"formatting": "\u062a\u0646\u0633\u064a\u0642", +"alignment": "\u0645\u062d\u0627\u0630\u0627\u0629", +"indentation": "\u0645\u0633\u0627\u0641\u0629 \u0628\u0627\u062f\u0626\u0629", +"permanent pen": "\u0642\u0644\u0645 \u062b\u0627\u0628\u062a", +"comments": "\u0627\u0644\u062a\u0639\u0644\u064a\u0642\u0627\u062a", +"Anchor": "\u0645\u0631\u0633\u0627\u0629", +"Special character": "\u0631\u0645\u0632", +"Code sample": "\u0639\u064a\u0651\u0646\u0629 \u0639\u0646 \u0627\u0644\u0643\u0648\u062f \u0627\u0644\u0628\u0631\u0645\u062c\u064a", +"Color": "\u0627\u0644\u0644\u0648\u0646", +"Emoticons": "\u0627\u0644\u0631\u0645\u0648\u0632", +"Document properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0645\u0633\u062a\u0646\u062f", +"Image": "\u0627\u0644\u0635\u0648\u0631\u0629", +"Insert link": "\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637", +"Target": "\u0627\u0644\u0625\u0637\u0627\u0631 \u0627\u0644\u0647\u062f\u0641", +"Link": "\u0627\u0644\u0631\u0627\u0628\u0637", +"Poster": "\u0645\u0644\u0635\u0642", +"Media": "\u0627\u0644\u0648\u0633\u0627\u0626\u0637 \u0627\u0644\u0645\u062a\u0639\u062f\u062f\u0629", +"Print": "\u0637\u0628\u0627\u0639\u0629", +"Prev": "\u0627\u0644\u0633\u0627\u0628\u0642", +"Find and replace": "\u0628\u062d\u062b \u0648\u0627\u0633\u062a\u0628\u062f\u0627\u0644", +"Whole words": "\u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0628\u0627\u0644\u0643\u0627\u0645\u0644", +"Spellcheck": "\u062a\u062f\u0642\u064a\u0642 \u0625\u0645\u0644\u0627\u0626\u064a", +"Caption": "\u0634\u0631\u062d", +"Insert template": "\u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628", +"_dir": "rtl" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/bg_BG.js b/common/plugins/editors/tinymce/media/langs/bg_BG.js new file mode 100755 index 0000000000000000000000000000000000000000..8592aa1be53c938fc88fc8a31bc37a501aeeb41a --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/bg_BG.js @@ -0,0 +1,389 @@ +tinymce.addI18n('bg_BG',{ +"Redo": "\u041e\u0442\u043c\u0435\u043d\u044f\u043d\u0435", +"Undo": "\u0412\u0440\u044a\u0449\u0430\u043d\u0435", +"Cut": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435", +"Copy": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435", +"Paste": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435", +"Select all": "\u041c\u0430\u0440\u043a\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0446\u044f\u043b\u043e\u0442\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435", +"New document": "\u041d\u043e\u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", +"Ok": "\u0414\u043e\u0431\u0440\u0435", +"Cancel": "\u041e\u0442\u043a\u0430\u0437", +"Visual aids": "\u0412\u0438\u0437\u0443\u0430\u043b\u043d\u043e \u043e\u0442\u043a\u0440\u043e\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0438 \u0431\u0435\u0437 \u043a\u0430\u043d\u0442\u043e\u0432\u0435 (\u0440\u0430\u043c\u043a\u0438)", +"Bold": "\u0423\u0434\u0435\u0431\u0435\u043b\u0435\u043d (\u043f\u043e\u043b\u0443\u0447\u0435\u0440)", +"Italic": "\u041d\u0430\u043a\u043b\u043e\u043d\u0435\u043d (\u043a\u0443\u0440\u0441\u0438\u0432)", +"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043d\u0435", +"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u0442\u0430\u0432\u0430\u043d\u0435", +"Superscript": "\u0413\u043e\u0440\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441", +"Subscript": "\u0414\u043e\u043b\u0435\u043d \u0438\u043d\u0434\u0435\u043a\u0441", +"Clear formatting": "\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043d\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435\u0442\u043e", +"Align left": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u043b\u044f\u0432\u043e", +"Align center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u0435", +"Align right": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435 \u043e\u0442\u0434\u044f\u0441\u043d\u043e", +"Justify": "\u0414\u0432\u0443\u0441\u0442\u0440\u0430\u043d\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"Bullet list": "\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0432\u043e\u0434\u0430\u0447\u0438", +"Numbered list": "\u041d\u043e\u043c\u0435\u0440\u0438\u0440\u0430\u043d \u0441\u043f\u0438\u0441\u044a\u043a", +"Decrease indent": "\u041d\u0430\u043c\u0430\u043b\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430", +"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0430\u0432\u0430\u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0442\u044a\u043f\u0430", +"Close": "\u0417\u0430\u0442\u0432\u0430\u0440\u044f\u043d\u0435", +"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448\u0438\u044f\u0442 \u0431\u0440\u0430\u0443\u0437\u044a\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u044a\u0440\u0436\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0435\u043d \u0434\u043e\u0441\u0442\u044a\u043f \u0434\u043e \u043a\u043b\u0438\u043f\u0431\u043e\u0440\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0432\u0430 \u0438\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0439\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Ctrl+X (\u0437\u0430 \u0438\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435), Ctrl+C (\u0437\u0430 \u043a\u043e\u043f\u0438\u0440\u0430\u043d\u0435) \u0438 Ctrl+V (\u0437\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435).", +"Headers": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f", +"Header 1": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1", +"Header 2": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2", +"Header 3": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3", +"Header 4": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 4", +"Header 5": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 5", +"Header 6": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 6", +"Headings": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f", +"Heading 1": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 1", +"Heading 2": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 2", +"Heading 3": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 3", +"Heading 4": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 4", +"Heading 5": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 5", +"Heading 6": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 6", +"Preformatted": "\u041f\u0440\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d", +"Div": "\u0411\u043b\u043e\u043a", +"Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0435\u043d \u0442\u0435\u043a\u0441\u0442", +"Code": "\u041a\u043e\u0434", +"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444", +"Blockquote": "\u0426\u0438\u0442\u0430\u0442", +"Inline": "\u041d\u0430 \u0435\u0434\u0438\u043d \u0440\u0435\u0434", +"Blocks": "\u0411\u043b\u043e\u043a\u043e\u0432\u0435", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435\u0442\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435 \u0432 \u043e\u0431\u0438\u043a\u043d\u043e\u0432\u0435\u043d \u0440\u0435\u0436\u0438\u043c. \u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e \u0449\u0435 \u0431\u044a\u0434\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0435\u043d\u043e \u043a\u0430\u0442\u043e \u043d\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442, \u0434\u043e\u043a\u0430\u0442\u043e \u0438\u0437\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0442\u0430\u0437\u0438 \u043e\u043f\u0446\u0438\u044f.", +"Fonts": "\u0428\u0440\u0438\u0444\u0442\u043e\u0432\u0435", +"Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", +"Class": "\u041a\u043b\u0430\u0441", +"Browse for an image": "\u041f\u043e\u0442\u044a\u0440\u0441\u0435\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"OR": "\u0418\u041b\u0418", +"Drop an image here": "\u041f\u0443\u0441\u043d\u0435\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e \u0442\u0443\u043a", +"Upload": "\u041a\u0430\u0447\u0432\u0430\u043d\u0435", +"Block": "\u0411\u043b\u043e\u043a", +"Align": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"Default": "\u041f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043d\u0435", +"Circle": "\u041e\u043a\u0440\u044a\u0436\u043d\u043e\u0441\u0442\u0438", +"Disc": "\u041a\u0440\u044a\u0433\u0447\u0435\u0442\u0430", +"Square": "\u0417\u0430\u043f\u044a\u043b\u043d\u0435\u043d\u0438 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u0438", +"Lower Alpha": "\u041c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438", +"Lower Greek": "\u041c\u0430\u043b\u043a\u0438 \u0433\u0440\u044a\u0446\u043a\u0438 \u0431\u0443\u043a\u0432\u0438", +"Lower Roman": "\u0420\u0438\u043c\u0441\u043a\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u043c\u0430\u043b\u043a\u0438 \u0431\u0443\u043a\u0432\u0438", +"Upper Alpha": "\u0413\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438", +"Upper Roman": "\u0420\u0438\u043c\u0441\u043a\u0438 \u0447\u0438\u0441\u043b\u0430 \u0441 \u0433\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438", +"Anchor...": "\u041a\u043e\u0442\u0432\u0430...", +"Name": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435", +"Id": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 (id)", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 (id) \u0442\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0437\u0430\u043f\u043e\u0447\u0432\u0430 \u0441 \u0431\u0443\u043a\u0432\u0430, \u043f\u043e\u0441\u043b\u0435\u0434\u0432\u0430\u043d \u043e\u0442 \u0431\u0443\u043a\u0432\u0438, \u0447\u0438\u0444\u0440\u0438, \u0442\u0438\u0440\u0435\u0442\u0430, \u0442\u043e\u0447\u043a\u0438, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435 \u0438 \u0434\u043e\u043b\u043d\u043e \u0442\u0438\u0440\u0435.", +"You have unsaved changes are you sure you want to navigate away?": "\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0438\u043c\u0430 \u043d\u0435\u0437\u0430\u043f\u0430\u0437\u0435\u043d\u0438 \u043f\u0440\u043e\u043c\u0435\u043d\u0438. \u0429\u0435 \u043f\u0440\u043e\u0434\u044a\u043b\u0436\u0438\u0442\u0435 \u043b\u0438?", +"Restore last draft": "\u0412\u044a\u0437\u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0432\u0430\u043d\u0435 \u043d\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0430\u0442\u0430 \u0447\u0435\u0440\u043d\u043e\u0432\u0430", +"Special characters...": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u043d\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u0438...", +"Source code": "\u0418\u0437\u0445\u043e\u0434\u0435\u043d \u043a\u043e\u0434 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u0432 HTML", +"Insert\/Edit code sample": "\u0412\u043c\u044a\u043a\u043d\u0438\/ \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u0435\u043d \u043a\u043e\u0434", +"Language": "\u0415\u0437\u0438\u043a", +"Code sample...": "\u041f\u0440\u0438\u043c\u0435\u0440\u0435\u043d \u043a\u043e\u0434...", +"Color Picker": "\u0418\u0437\u0431\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0446\u0432\u044f\u0442", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u041e\u0442\u043b\u044f\u0432\u043e \u043d\u0430\u0434\u044f\u0441\u043d\u043e", +"Right to left": "\u041e\u0442\u0434\u044f\u0441\u043d\u043e \u043d\u0430\u043b\u044f\u0432\u043e", +"Emoticons...": "\u0415\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438...", +"Metadata and Document Properties": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Title": "\u041d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435", +"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0438 \u0434\u0443\u043c\u0438", +"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", +"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438 \u043d\u0430 \u0443\u0435\u0431 \u0442\u044a\u0440\u0441\u0430\u0447\u043a\u0438", +"Author": "\u0410\u0432\u0442\u043e\u0440", +"Encoding": "\u041a\u043e\u0434\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0437\u043d\u0430\u0446\u0438\u0442\u0435", +"Fullscreen": "\u041d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", +"Action": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435", +"Shortcut": "\u0411\u044a\u0440\u0437 \u043a\u043b\u0430\u0432\u0438\u0448", +"Help": "\u041f\u043e\u043c\u043e\u0449", +"Address": "\u0410\u0434\u0440\u0435\u0441", +"Focus to menubar": "Focus to menubar", +"Focus to toolbar": "Focus to toolbar", +"Focus to element path": "Focus to element path", +"Focus to contextual toolbar": "Focus to contextual toolbar", +"Insert link (if link plugin activated)": "\u041f\u043e\u0441\u0442\u0430\u0432\u0438 \u0432\u0440\u044a\u0437\u043a\u0430 (\u0430\u043a\u043e \u043f\u043b\u044a\u0433\u0438\u043d\u0430 \u0437\u0430 \u0432\u0440\u044a\u0437\u043a\u0438 \u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d)", +"Save (if save plugin activated)": "\u0417\u0430\u043f\u0438\u0448\u0438 (\u0430\u043a\u043e \u043f\u043b\u044a\u0433\u0438\u043d\u0430 \u0437\u0430 \u0437\u0430\u043f\u0438\u0441 \u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d)", +"Find (if searchreplace plugin activated)": "\u041d\u0430\u043c\u0435\u0440\u0438 (\u0430\u043a\u043e \u043f\u043b\u044a\u0433\u0438\u043d\u0430 \u0437\u0430 \u0442\u044a\u0440\u0441\u0435\u043d\u0435\/\u0437\u0430\u043c\u044f\u043d\u0430 \u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0430\u043d)", +"Plugins installed ({0}):": "\u0418\u043d\u0441\u0442\u0430\u043b\u0438\u0440\u0430\u043d\u0438 \u043f\u043b\u044a\u0433\u0438\u043d\u0438 ({0}):", +"Premium plugins:": "\u041f\u0440\u0435\u043c\u0438\u0439\u043d\u0438 \u043f\u043b\u044a\u0433\u0438\u043d\u0438:", +"Learn more...": "\u041d\u0430\u0443\u0447\u0435\u0442\u0435 \u043f\u043e\u0432\u0435\u0447\u0435...", +"You are using {0}": "\u0418\u0437\u043f\u043e\u043b\u0437\u0432\u0430\u0442\u0435 {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Handy Shortcuts", +"Horizontal line": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u0430 \u0447\u0435\u0440\u0442\u0430", +"Insert\/edit image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430", +"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", +"Source": "\u0410\u0434\u0440\u0435\u0441", +"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440", +"Constrain proportions": "\u0417\u0430\u0432\u0430\u0437\u043d\u0430\u0432\u0435 \u043d\u0430 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438\u0442\u0435", +"General": "\u041e\u0431\u0449\u043e", +"Advanced": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e", +"Style": "\u0421\u0442\u0438\u043b", +"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e", +"Horizontal space": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e", +"Border": "\u041a\u0430\u043d\u0442 (\u0440\u0430\u043c\u043a\u0430)", +"Insert image": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Image...": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435...", +"Image list": "\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438", +"Rotate counterclockwise": "\u0417\u0430\u0432\u044a\u0440\u0442\u0430\u043d\u0435 \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u043d\u0438\u043a\u0430", +"Rotate clockwise": "\u0417\u0430\u0432\u044a\u0440\u0442\u0430\u043d\u0435 \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043d\u0438\u043a\u0430", +"Flip vertically": "\u041e\u0431\u044a\u0440\u043d\u0438 \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e", +"Flip horizontally": "\u041e\u0431\u044a\u0440\u043d\u0438 \u0445\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e", +"Edit image": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", +"Image options": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", +"Zoom in": "\u041f\u0440\u0438\u0431\u043b\u0438\u0436\u0438", +"Zoom out": "\u041e\u0442\u0434\u0430\u043b\u0435\u0447\u0438", +"Crop": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435", +"Resize": "\u041f\u0440\u0435\u043e\u0440\u0430\u0437\u043c\u0435\u0440\u044f\u0432\u0430\u043d\u0435", +"Orientation": "\u041e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f", +"Brightness": "\u042f\u0440\u043a\u043e\u0441\u0442", +"Sharpen": "\u0418\u0437\u043e\u0441\u0442\u0440\u044f\u043d\u0435", +"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442", +"Color levels": "\u0426\u0432\u0435\u0442\u043d\u0438 \u043d\u0438\u0432\u0430", +"Gamma": "\u0413\u0430\u043c\u0430", +"Invert": "\u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f", +"Apply": "\u041f\u0440\u0438\u043b\u043e\u0436\u0438", +"Back": "\u041d\u0430\u0437\u0430\u0434", +"Insert date\/time": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0434\u0430\u0442\u0430\/\u0447\u0430\u0441", +"Date\/time": "\u0414\u0430\u0442\u0430\/\u0447\u0430\u0441", +"Insert\/Edit Link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)", +"Insert\/edit link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)", +"Text to display": "\u0422\u0435\u043a\u0441\u0442", +"Url": "\u0410\u0434\u0440\u0435\u0441 (URL)", +"Open link in...": "\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 \u0432...", +"Current window": "\u0422\u0435\u043a\u0443\u0449 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446", +"None": "\u0411\u0435\u0437", +"New window": "\u0412 \u043d\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 (\u043f\u043e\u0434\u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446)", +"Remove link": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430", +"Anchors": "\u041a\u043e\u0442\u0432\u0438", +"Link...": "\u0425\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430...", +"Paste or type a link": "\u041f\u043e\u0441\u0442\u0430\u0432\u0435\u0442\u0435 \u0438\u043b\u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u0442\u0435 \u0432\u0440\u044a\u0437\u043a\u0430(\u043b\u0438\u043d\u043a)", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL \u0430\u0434\u0440\u0435\u0441\u044a\u0442, \u043a\u043e\u0439\u0442\u043e \u0432\u044a\u0432\u0434\u043e\u0445\u0442\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u0430 \u043d\u0430 \u0435-\u043c\u0435\u0439\u043b \u0430\u0434\u0440\u0435\u0441. \u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438\u044f mailto: \u043f\u0440\u0435\u0444\u0438\u043a\u0441?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL \u0430\u0434\u0440\u0435\u0441\u044a\u0442, \u043a\u043e\u0439\u0442\u043e \u0432\u044a\u0432\u0434\u043e\u0445\u0442\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u0430 \u0432\u044a\u043d\u0448\u0435\u043d \u0430\u0434\u0440\u0435\u0441. \u0418\u0441\u043a\u0430\u0442\u0435 \u043b\u0438 \u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0438\u044f http:\/\/ \u043f\u0440\u0435\u0444\u0438\u043a\u0441?", +"Link list": "\u0421\u043f\u0438\u0441\u044a\u043a \u0441 \u0432\u0440\u044a\u0437\u043a\u0438", +"Insert video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e", +"Insert\/edit video": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u043a\u043e\u0440\u0435\u043a\u0446\u0438\u044f \u043d\u0430 \u0432\u0438\u0434\u0435\u043e", +"Insert\/edit media": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043c\u0435\u0434\u0438\u044f", +"Alternative source": "\u0410\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435\u043d \u0430\u0434\u0440\u0435\u0441", +"Alternative source URL": "\u0410\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0435\u043d \u0430\u0434\u0440\u0435\u0441 URL", +"Media poster (Image URL)": "\u041c\u0435\u0434\u0438\u0435\u043d \u043f\u043b\u0430\u043a\u0430\u0442 (\u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 URL)", +"Paste your embed code below:": "\u041f\u043e\u0441\u0442\u0430\u0432\u0435\u0442\u0435 \u043a\u043e\u0434\u0430 \u0437\u0430 \u0432\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435 \u0432 \u043f\u043e\u043b\u0435\u0442\u043e \u043f\u043e-\u0434\u043e\u043b\u0443:", +"Embed": "\u0412\u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0435", +"Media...": "\u041c\u0435\u0434\u0438\u044f...", +"Nonbreaking space": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Page break": "\u041d\u043e\u0432\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430", +"Paste as text": "\u041f\u043e\u0441\u0442\u0430\u0432\u0438 \u043a\u0430\u0442\u043e \u0442\u0435\u043a\u0441\u0442", +"Preview": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u0435\u043d \u0438\u0437\u0433\u043b\u0435\u0434", +"Print...": "\u041e\u0442\u043f\u0435\u0447\u0430\u0442\u0432\u0430\u043d\u0435...", +"Save": "\u0421\u044a\u0445\u0440\u0430\u043d\u044f\u0432\u0430\u043d\u0435", +"Find": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0437\u0430", +"Replace with": "\u0417\u0430\u043c\u044f\u043d\u0430 \u0441", +"Replace": "\u0417\u0430\u043c\u044f\u043d\u0430", +"Replace all": "\u0417\u0430\u043c\u044f\u043d\u0430 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u0438 \u0441\u0440\u0435\u0449\u0430\u043d\u0438\u044f", +"Previous": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d", +"Next": "\u0421\u043b\u0435\u0434\u0432\u0430\u0449", +"Find and replace...": "\u041d\u0430\u043c\u0438\u0440\u0430\u043d\u0435 \u0438 \u0437\u0430\u043c\u044f\u043d\u0430...", +"Could not find the specified string.": "\u0422\u044a\u0440\u0441\u0435\u043d\u0438\u044f\u0442 \u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d.", +"Match case": "\u0421\u044a\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u044a\u0440\u0430 (\u043c\u0430\u043b\u043a\u0438\/\u0433\u043b\u0430\u0432\u043d\u0438 \u0431\u0443\u043a\u0432\u0438)", +"Find whole words only": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0441\u0430\u043c\u043e \u043d\u0430 \u0446\u0435\u043b\u0438 \u0434\u0443\u043c\u0438", +"Spell check": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430", +"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435", +"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0432\u0441\u0438\u0447\u043a\u043e", +"Finish": "\u041a\u0440\u0430\u0439", +"Add to Dictionary": "\u0414\u043e\u0431\u0430\u0432\u0438 \u0432 \u0440\u0435\u0447\u043d\u0438\u043a\u0430", +"Insert table": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430", +"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", +"Delete table": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", +"Cell": "\u041a\u043b\u0435\u0442\u043a\u0430", +"Row": "\u0420\u0435\u0434", +"Column": "\u041a\u043e\u043b\u043e\u043d\u0430", +"Cell properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430", +"Merge cells": "\u0421\u043b\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435", +"Split cell": "\u0420\u0430\u0437\u0434\u0435\u043b\u044f\u043d\u0435 \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430", +"Insert row before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438", +"Insert row after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434", +"Delete row": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434\u0430", +"Row properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0440\u0435\u0434\u0430", +"Cut row": "\u0418\u0437\u0440\u044f\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", +"Copy row": "\u041a\u043e\u043f\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434", +"Paste row before": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u043f\u0440\u0435\u0434\u0438", +"Paste row after": "\u041f\u043e\u0441\u0442\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0440\u0435\u0434 \u0441\u043b\u0435\u0434", +"Insert column before": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u0438", +"Insert column after": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430 \u0441\u043b\u0435\u0434", +"Delete column": "\u0418\u0437\u0442\u0440\u0438\u0432\u0430\u043d\u0435 \u043d\u0430 \u043a\u043e\u043b\u043e\u043d\u0430\u0442\u0430", +"Cols": "\u041a\u043e\u043b\u043e\u043d\u0438", +"Rows": "\u0420\u0435\u0434\u043e\u0432\u0435", +"Width": "\u0428\u0438\u0440\u0438\u043d\u0430", +"Height": "\u0412\u0438\u0441\u043e\u0447\u0438\u043d\u0430", +"Cell spacing": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0435\u0442\u043a\u0438\u0442\u0435", +"Cell padding": "\u0420\u0430\u0437\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043e \u0441\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435\u0442\u043e", +"Show caption": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0430\u0434\u043f\u0438\u0441", +"Left": "\u041b\u044f\u0432\u043e", +"Center": "\u0426\u0435\u043d\u0442\u0440\u0438\u0440\u0430\u043d\u043e", +"Right": "\u0414\u044f\u0441\u043d\u043e", +"Cell type": "\u0422\u0438\u043f \u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430\u0442\u0430", +"Scope": "\u041e\u0431\u0445\u0432\u0430\u0442", +"Alignment": "\u041f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"H Align": "\u0425\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u043d\u043e \u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"Top": "\u0413\u043e\u0440\u0435", +"Middle": "\u041f\u043e \u0441\u0440\u0435\u0434\u0430\u0442\u0430", +"Bottom": "\u0414\u043e\u043b\u0443", +"Header cell": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u0430 \u043a\u043b\u0435\u0442\u043a\u0430 (\u0430\u043d\u0442\u0435\u0442\u043a\u0430)", +"Row group": "Row group", +"Column group": "Column group", +"Row type": "\u0422\u0438\u043f \u043d\u0430 \u0440\u0435\u0434\u0430", +"Header": "\u0413\u043e\u0440\u0435\u043d \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b (header)", +"Body": "\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435 (body)", +"Footer": "\u0414\u043e\u043b\u0435\u043d \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b (footer)", +"Border color": "\u0426\u0432\u044f\u0442 \u043d\u0430 \u0440\u0430\u043c\u043a\u0430\u0442\u0430", +"Insert template...": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d...", +"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438", +"Template": "\u0428\u0430\u0431\u043b\u043e\u043d", +"Text color": "\u0426\u0432\u044f\u0442 \u043d\u0430 \u0448\u0440\u0438\u0444\u0442\u0430", +"Background color": "\u0424\u043e\u043d\u043e\u0432 \u0446\u0432\u044f\u0442", +"Custom...": "\u0418\u0437\u0431\u0440\u0430\u043d...", +"Custom color": "\u0426\u0432\u044f\u0442 \u043f\u043e \u0438\u0437\u0431\u043e\u0440", +"No color": "\u0411\u0435\u0437 \u0446\u0432\u044f\u0442", +"Remove color": "\u041f\u0440\u0435\u043c\u0430\u0445\u0432\u0430\u043d\u0435 \u043d\u0430 \u0446\u0432\u0435\u0442\u0430", +"Table of Contents": "\u0421\u044a\u0434\u044a\u0440\u0436\u0430\u043d\u0438\u0435", +"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u0431\u043b\u043e\u043a\u043e\u0432\u0435\u0442\u0435", +"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0432\u0430\u043d\u0435 \u043d\u0430 \u043d\u0435\u043f\u0435\u0447\u0430\u0442\u0430\u0435\u043c\u0438 \u0437\u043d\u0430\u0446\u0438", +"Word count": "\u0411\u0440\u043e\u0435\u043d\u0435 \u043d\u0430 \u0434\u0443\u043c\u0438", +"Words: {0}": "\u0411\u0440\u043e\u0439 \u0434\u0443\u043c\u0438: {0}", +"{0} words": "{0} \u0431\u0440\u043e\u0439 \u0434\u0443\u043c\u0438", +"File": "\u0424\u0430\u0439\u043b", +"Edit": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0430\u043d\u0435", +"Insert": "\u0412\u043c\u044a\u043a\u0432\u0430\u043d\u0435", +"View": "\u0418\u0437\u0433\u043b\u0435\u0434", +"Format": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435", +"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", +"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438", +"Powered by {0}": "\u0421\u044a\u0437\u0434\u0430\u0434\u0435\u043d\u043e \u0441 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u041f\u043e\u043b\u0435 \u0437\u0430 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 Alt+F9 \u0437\u0430 \u043c\u0435\u043d\u044e; Alt+F10 \u0437\u0430 \u043b\u0435\u043d\u0442\u0430 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438; Alt+0 \u0437\u0430 \u043f\u043e\u043c\u043e\u0449.", +"Image title": "\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u0442\u043e", +"Border width": "\u0428\u0438\u0440\u0438\u043d\u0430 \u043d\u0430 \u0440\u0430\u043c\u043a\u0430\u0442\u0430", +"Border style": "\u0421\u0442\u0438\u043b \u043d\u0430 \u0440\u0430\u043c\u043a\u0430\u0442\u0430", +"Error": "\u0413\u0440\u0435\u0448\u043a\u0430", +"Warn": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", +"Valid": "\u0412\u0430\u043b\u0438\u0434\u043d\u043e", +"To open the popup, press Shift+Enter": "\u0417\u0430 \u0434\u0430 \u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u0438\u0437\u0441\u043a\u0430\u0447\u0430\u0449\u0438\u044f \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446, \u043d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u041f\u043e\u043b\u0435 \u0437\u0430 \u043e\u0431\u043e\u0433\u0430\u0442\u0435\u043d \u0442\u0435\u043a\u0441\u0442. \u041d\u0430\u0442\u0438\u0441\u043d\u0435\u0442\u0435 ALT+0 \u0437\u0430 \u043f\u043e\u043c\u043e\u0449.", +"System Font": "\u0421\u0438\u0441\u0442\u0435\u043c\u0435\u043d \u0448\u0440\u0438\u0444\u0442", +"Failed to upload image: {0}": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043a\u0430\u0447\u0432\u0430\u043d\u0435 \u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435: {0}", +"Failed to load plugin: {0} from url {1}": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u043f\u043b\u044a\u0433\u0438\u043d {0} \u043e\u0442 URL {1}", +"Failed to load plugin url: {0}": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 URL \u043d\u0430 \u043f\u043b\u044a\u0433\u0438\u043d: {0}", +"Failed to initialize plugin: {0}": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435 \u043d\u0430 \u043f\u043b\u044a\u0433\u0438\u043d: {0}", +"example": "\u043f\u0440\u0438\u043c\u0435\u0440", +"Search": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435", +"All": "\u0412\u0441\u0438\u0447\u043a\u0438", +"Currency": "\u0412\u0430\u043b\u0443\u0442\u0430", +"Text": "\u0422\u0435\u043a\u0441\u0442", +"Quotations": "\u0426\u0438\u0442\u0430\u0442\u0438", +"Mathematical": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438", +"Extended Latin": "\u0420\u0430\u0437\u0448\u0438\u0440\u0435\u043d\u0438 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438 \u0431\u0443\u043a\u0432\u0438", +"Symbols": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438", +"Arrows": "\u0421\u0442\u0440\u0435\u043b\u043a\u0438", +"User Defined": "\u0417\u0430\u0434\u0430\u0434\u0435\u043d\u0438 \u043e\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044f", +"dollar sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0434\u043e\u043b\u0430\u0440", +"currency sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0432\u0430\u043b\u0443\u0442\u0430", +"euro-currency sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0435\u0432\u0440\u043e \u0432\u0430\u043b\u0443\u0442\u0430", +"colon sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043a\u043e\u043b\u043e\u043d", +"cruzeiro sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e", +"french franc sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0444\u0440\u0435\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a", +"lira sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043b\u0438\u0440\u0430", +"mill sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043c\u0438\u043b", +"naira sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043d\u0430\u0439\u0440\u0430", +"peseta sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043f\u0435\u0441\u0435\u0442\u0430", +"rupee sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0440\u0443\u043f\u0438\u044f", +"won sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438 \u0432\u043e\u043d", +"new sheqel sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b", +"dong sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0432\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438 \u0434\u043e\u043d\u0433", +"kip sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f", +"tugrik sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438 \u0442\u0443\u0433\u0440\u0438\u043a", +"drachma sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0434\u0440\u0430\u0445\u043c\u0430", +"german penny symbol": "\u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430 \u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u043e \u043f\u0435\u043d\u0438", +"peso sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043f\u0435\u0441\u043e", +"guarani sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0433\u0443\u0430\u0440\u0430\u043d\u0438", +"austral sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0430\u0443\u0441\u0442\u0440\u0430\u043b", +"hryvnia sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0433\u0440\u0438\u0432\u043d\u044f", +"cedi sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0441\u0435\u0434\u0438", +"livre tournois sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043b\u0438\u0432\u0440 \u0442\u0443\u0440\u043d\u0443\u0430", +"spesmilo sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0441\u043f\u0435\u0441\u043c\u0438\u043b\u043e", +"tenge sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0442\u0435\u043d\u0433\u0435", +"indian rupee sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f", +"turkish lira sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0442\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430", +"nordic mark sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043d\u043e\u0440\u0434\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430", +"manat sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u043c\u0430\u043d\u0430\u0442", +"ruble sign": "\u0437\u043d\u0430\u043a \u0437\u0430 \u0440\u0443\u0431\u043b\u0430", +"yen character": "\u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430 \u0439\u0435\u043d\u0430", +"yuan character": "\u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430 \u044e\u0430\u043d", +"yuan character, in hong kong and taiwan": "\u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430 \u044e\u0430\u043d \u0432 \u0425\u043e\u043d\u043a\u043e\u043d\u0433 \u0438 \u0422\u0430\u0439\u0432\u0430\u043d", +"yen\/yuan character variant one": "\u0441\u0438\u043c\u0432\u043e\u043b \u0437\u0430 \u0439\u0435\u043d\u0430\/\u044e\u0430\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0435\u0434\u043d\u043e", +"Loading emoticons...": "\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438...", +"Could not load emoticons": "\u041d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0437\u0430\u0440\u0435\u0436\u0434\u0430\u043d\u0435 \u043d\u0430 \u0435\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438", +"People": "\u0425\u043e\u0440\u0430", +"Animals and Nature": "\u0416\u0438\u0432\u043e\u0442\u043d\u0438 \u0438 \u043f\u0440\u0438\u0440\u043e\u0434\u0430", +"Food and Drink": "\u0425\u0440\u0430\u043d\u0430 \u0438 \u043d\u0430\u043f\u0438\u0442\u043a\u0438", +"Activity": "\u0414\u0435\u0439\u043d\u043e\u0441\u0442\u0438", +"Travel and Places": "\u041f\u044a\u0442\u0443\u0432\u0430\u043d\u0435 \u0438 \u043c\u0435\u0441\u0442\u0430", +"Objects": "\u041f\u0440\u0435\u0434\u043c\u0435\u0442\u0438", +"Flags": "\u0417\u043d\u0430\u043c\u0435\u043d\u0430", +"Characters": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438", +"Characters (no spaces)": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438 (\u0431\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0438)", +"Error: Form submit field collision.": "\u0413\u0440\u0435\u0448\u043a\u0430: \u041d\u0435\u0441\u044a\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043d\u0430 \u043f\u043e\u043b\u0435 \u043f\u0440\u0438 \u0438\u0437\u043f\u0440\u0430\u0449\u0430\u043d\u0435 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u044f\u0440.", +"Error: No form element found.": "\u0413\u0440\u0435\u0448\u043a\u0430: \u041d\u0435 \u0435 \u043e\u0442\u043a\u0440\u0438\u0442 \u0435\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u044f\u0440\u0430.", +"Update": "\u0410\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u0430\u043d\u0435", +"Color swatch": "\u0426\u0432\u0435\u0442\u043d\u0430 \u043c\u043e\u0441\u0442\u0440\u0430", +"Turquoise": "\u0422\u044e\u0440\u043a\u043e\u0430\u0437\u0435\u043d\u043e", +"Green": "\u0417\u0435\u043b\u0435\u043d\u043e", +"Blue": "\u0421\u0438\u043d\u044c\u043e", +"Purple": "\u041b\u0438\u043b\u0430\u0432\u043e", +"Navy Blue": "\u041c\u043e\u0440\u0441\u043a\u043e\u0441\u0438\u043d\u044c\u043e", +"Dark Turquoise": "\u0422\u044a\u043c\u043d\u043e\u0442\u044e\u0440\u043a\u043e\u0430\u0437\u0435\u043d\u043e", +"Dark Green": "\u0422\u044a\u043c\u043d\u043e\u0437\u0435\u043b\u0435\u043d\u043e", +"Medium Blue": "\u0421\u0440\u0435\u0434\u043d\u043e\u0441\u0438\u043d\u044c\u043e", +"Medium Purple": "\u0421\u0440\u0435\u0434\u043d\u043e\u043b\u0438\u043b\u0430\u0432\u043e", +"Midnight Blue": "\u0421\u0440\u0435\u0434\u043d\u043e\u0449\u043d\u043e \u0441\u0438\u043d\u044c\u043e", +"Yellow": "\u0416\u044a\u043b\u0442\u043e", +"Orange": "\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u043e", +"Red": "\u0427\u0435\u0440\u0432\u0435\u043d\u043e", +"Light Gray": "\u0421\u0432\u0435\u0442\u043b\u043e\u0441\u0438\u0432\u043e", +"Gray": "\u0421\u0438\u0432\u043e", +"Dark Yellow": "\u0422\u044a\u043c\u043d\u043e\u0436\u044a\u043b\u0442\u043e", +"Dark Orange": "\u0422\u044a\u043c\u043d\u043e\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u043e", +"Dark Red": "\u0422\u044a\u043c\u043d\u043e\u0447\u0435\u0440\u0432\u0435\u043d\u043e", +"Medium Gray": "\u0421\u0440\u0435\u0434\u043d\u043e\u0441\u0438\u0432\u043e", +"Dark Gray": "\u0422\u044a\u043c\u043d\u043e\u0441\u0438\u0432\u043e", +"Black": "\u0427\u0435\u0440\u043d\u043e", +"White": "\u0411\u044f\u043b\u043e", +"Switch to or from fullscreen mode": "\u041f\u0440\u0435\u0432\u043a\u043b\u044e\u0447\u0432\u0430\u043d\u0435 \u043a\u044a\u043c \u0438\u043b\u0438 \u043e\u0442 \u0440\u0435\u0436\u0438\u043c \u043d\u0430 \u0446\u044f\u043b \u0435\u043a\u0440\u0430\u043d", +"Open help dialog": "\u041e\u0442\u0432\u0430\u0440\u044f\u043d\u0435 \u043d\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u043e\u0437\u043e\u0440\u0435\u0446 \u0437\u0430 \u043f\u043e\u043c\u043e\u0449", +"history": "\u0438\u0441\u0442\u043e\u0440\u0438\u044f", +"styles": "\u0441\u0442\u0438\u043b\u043e\u0432\u0435", +"formatting": "\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u0430\u043d\u0435", +"alignment": "\u043f\u043e\u0434\u0440\u0430\u0432\u043d\u044f\u0432\u0430\u043d\u0435", +"indentation": "\u043e\u0442\u0441\u0442\u044a\u043f", +"permanent pen": "\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430 \u0445\u0438\u043c\u0438\u043a\u0430\u043b\u043a\u0430", +"comments": "\u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u0438", +"Anchor": "\u041a\u043e\u0442\u0432\u0430 (\u0432\u0440\u044a\u0437\u043a\u0430 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430)", +"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u0435\u043d \u0437\u043d\u0430\u043a", +"Code sample": "\u041f\u0440\u0438\u043c\u0435\u0440\u0435\u043d \u043a\u043e\u0434", +"Color": "\u0426\u0432\u044f\u0442", +"Emoticons": "\u0415\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0438", +"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043d\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Image": "\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430", +"Insert link": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0445\u0438\u043f\u0435\u0440\u0432\u0440\u044a\u0437\u043a\u0430 (\u043b\u0438\u043d\u043a)", +"Target": "\u0426\u0435\u043b \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Link": "\u0412\u0440\u044a\u0437\u043a\u0430(\u043b\u0438\u043d\u043a)", +"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440", +"Media": "\u041c\u0435\u0434\u0438\u044f", +"Print": "\u041f\u0435\u0447\u0430\u0442", +"Prev": "\u041f\u0440\u0435\u0434\u0438\u0448\u0435\u043d", +"Find and replace": "\u0422\u044a\u0440\u0441\u0435\u043d\u0435 \u0438 \u0437\u0430\u043c\u044f\u043d\u0430", +"Whole words": "\u0421\u0430\u043c\u043e \u0446\u0435\u043b\u0438 \u0434\u0443\u043c\u0438", +"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430", +"Caption": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0437\u0430\u0433\u043b\u0430\u0432\u0438\u0435 \u043f\u0440\u0435\u0434\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0442\u0430", +"Insert template": "\u0414\u043e\u0431\u0430\u0432\u044f\u043d\u0435 \u043d\u0430 \u0448\u0430\u0431\u043b\u043e\u043d" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ca.js b/common/plugins/editors/tinymce/media/langs/ca.js new file mode 100755 index 0000000000000000000000000000000000000000..e17f9d5b3c9a38e483cf10da69c2f600271b7bf4 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ca.js @@ -0,0 +1,389 @@ +tinymce.addI18n('ca',{ +"Redo": "Refer", +"Undo": "Desfer", +"Cut": "Retalla", +"Copy": "Copia", +"Paste": "Enganxa", +"Select all": "Seleccionar-ho tot", +"New document": "Nou document", +"Ok": "Acceptar", +"Cancel": "Cancel\u00b7la", +"Visual aids": "Assist\u00e8ncia visual", +"Bold": "Negreta", +"Italic": "Cursiva", +"Underline": "Subratllat", +"Strikethrough": "Barrat", +"Superscript": "Super\u00edndex", +"Subscript": "Sub\u00edndex", +"Clear formatting": "Eliminar format", +"Align left": "Alinea a l'esquerra", +"Align center": "Alinea al centre", +"Align right": "Alinea a la dreta", +"Justify": "Justificat", +"Bullet list": "Llista no ordenada", +"Numbered list": "Llista enumerada", +"Decrease indent": "Disminuir sagnat", +"Increase indent": "Augmentar sagnat", +"Close": "Tancar", +"Formats": "Formats", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "El vostre navegador no suporta l'acc\u00e9s directe al portaobjectes. Si us plau, feu servir les dreceres de teclat Ctrl+X\/C\/V.", +"Headers": "Encap\u00e7alaments", +"Header 1": "Encap\u00e7alament 1", +"Header 2": "Encap\u00e7alament 2", +"Header 3": "Encap\u00e7alament 3", +"Header 4": "Encap\u00e7alament 4", +"Header 5": "Encap\u00e7alament 5", +"Header 6": "Encap\u00e7alament 6", +"Headings": "Encap\u00e7alaments", +"Heading 1": "Encap\u00e7alament 1", +"Heading 2": "Encap\u00e7alament 2", +"Heading 3": "Encap\u00e7alament 3", +"Heading 4": "Encap\u00e7alament 4", +"Heading 5": "Encap\u00e7alament 5", +"Heading 6": "Encap\u00e7alament 6", +"Preformatted": "Preformatat", +"Div": "Div", +"Pre": "Pre", +"Code": "Codi", +"Paragraph": "Par\u00e0graf", +"Blockquote": "Cita", +"Inline": "En l\u00ednia", +"Blocks": "Blocs", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Enganxar ara est\u00e0 en mode text pla. Els continguts s'enganxaran com a text pla fins que desactivis aquesta opci\u00f3. ", +"Fonts": "Fonts", +"Font Sizes": "Mides de la font", +"Class": "Classe", +"Browse for an image": "Explorar per cercar una imatge", +"OR": "O", +"Drop an image here": "Deixar anar una imatge aqu\u00ed", +"Upload": "Pujar", +"Block": "Bloc", +"Align": "Alinea", +"Default": "Per defecte", +"Circle": "Cercle", +"Disc": "Disc", +"Square": "Quadrat", +"Lower Alpha": "Alfa menor", +"Lower Greek": "Grec menor", +"Lower Roman": "Roman menor", +"Upper Alpha": "Alfa major", +"Upper Roman": "Roman major", +"Anchor...": "Ancoratge...", +"Name": "Nom", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "La Id ha de comen\u00e7ar amb una lletra, seguida d'altres lletres, n\u00fameros, punts, ratlles, comes, o guions baixos", +"You have unsaved changes are you sure you want to navigate away?": "Teniu canvis sense desar, esteu segur que voleu deixar-ho ara?", +"Restore last draft": "Restaurar l'\u00faltim esborrany", +"Special characters...": "Car\u00e0cters especials...", +"Source code": "Codi font", +"Insert\/Edit code sample": "Inserir\/Editar tros de codi", +"Language": "Idioma", +"Code sample...": "Mostra de codi...", +"Color Picker": "Selector de colors", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "D'esquerra a dreta", +"Right to left": "De dreta a esquerra", +"Emoticons...": "Emoticones...", +"Metadata and Document Properties": "Metadades i propietats del document", +"Title": "T\u00edtol", +"Keywords": "Paraules clau", +"Description": "Descripci\u00f3", +"Robots": "Robots", +"Author": "Autor", +"Encoding": "Codificaci\u00f3", +"Fullscreen": "Pantalla completa", +"Action": "Acci\u00f3", +"Shortcut": "Drecera", +"Help": "Ajuda", +"Address": "Adre\u00e7a", +"Focus to menubar": "Enfocar la barra de men\u00fa", +"Focus to toolbar": "Enfocar la barra d'eines", +"Focus to element path": "Enfocar la ruta d'elements", +"Focus to contextual toolbar": "Enfocar la barra d'eines contextual", +"Insert link (if link plugin activated)": "Inserir enlla\u00e7 (si el complement d'enlla\u00e7 est\u00e0 activat)", +"Save (if save plugin activated)": "Desar (si el complement desar est\u00e0 activat)", +"Find (if searchreplace plugin activated)": "Cercar (si el complement cercar-reempla\u00e7ar est\u00e0 activat)", +"Plugins installed ({0}):": "Complements instal\u00b7lats ({0}):", +"Premium plugins:": "Complements premium", +"Learn more...": "Apr\u00e8n m\u00e9s...", +"You are using {0}": "Est\u00e0s utilitzant {0}", +"Plugins": "Complements", +"Handy Shortcuts": "Dreceres a m\u00e0", +"Horizontal line": "L\u00ednia horitzontal", +"Insert\/edit image": "Inserir\/editar imatge", +"Image description": "Descripci\u00f3 de la imatge", +"Source": "Font", +"Dimensions": "Dimensions", +"Constrain proportions": "Mantenir proporcions", +"General": "General", +"Advanced": "Avan\u00e7at", +"Style": "Estil", +"Vertical space": "Espai vertical", +"Horizontal space": "Espai horitzontal", +"Border": "Vora", +"Insert image": "Inserir imatge", +"Image...": "Imatge...", +"Image list": "Llista d'imatges", +"Rotate counterclockwise": "Girar a l'esquerra", +"Rotate clockwise": "Girar a la dreta", +"Flip vertically": "Capgirar verticalment", +"Flip horizontally": "Capgirar horitzontalment", +"Edit image": "Editar imatge", +"Image options": "Opcions d'imatge", +"Zoom in": "Ampliar", +"Zoom out": "Empetitir", +"Crop": "Escap\u00e7ar", +"Resize": "Canviar mida", +"Orientation": "Orientaci\u00f3", +"Brightness": "Brillantor", +"Sharpen": "Remarcar vores", +"Contrast": "Contrast", +"Color levels": "Nivells de color", +"Gamma": "Gamma", +"Invert": "Invertir", +"Apply": "Aplicar", +"Back": "Tornar", +"Insert date\/time": "Inserir data\/hora", +"Date\/time": "Data\/hora", +"Insert\/Edit Link": "Inserir\/editar l'enlla\u00e7", +"Insert\/edit link": "Inserir\/editar enlla\u00e7", +"Text to display": "Text per mostrar", +"Url": "URL", +"Open link in...": "Obrir l'enlla\u00e7 a...", +"Current window": "Finestra actual", +"None": "Cap", +"New window": "Finestra nova", +"Remove link": "Treure enlla\u00e7", +"Anchors": "\u00c0ncores", +"Link...": "Enlla\u00e7...", +"Paste or type a link": "Enganxa o escriu un enlla\u00e7", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que has escrit sembla una adre\u00e7a de correu electr\u00f2nic. Vols afegir-li el prefix obligatori mailto: ?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que has escrit sembla un enlla\u00e7 extern. Vols afegir-li el prefix obligatori http:\/\/ ?", +"Link list": "Llista d'enlla\u00e7os", +"Insert video": "Inserir v\u00eddeo", +"Insert\/edit video": "Inserir\/editar v\u00eddeo", +"Insert\/edit media": "Inserir\/editar mitj\u00e0", +"Alternative source": "Font alternativa", +"Alternative source URL": "URL de font alternativa", +"Media poster (Image URL)": "Cartell de multim\u00e8dia (URL d'imatge)", +"Paste your embed code below:": "Enganxau el codi a sota:", +"Embed": "Incloure", +"Media...": "Multim\u00e8dia...", +"Nonbreaking space": "Espai fixe", +"Page break": "Salt de p\u00e0gina", +"Paste as text": "Enganxar com a text", +"Preview": "Previsualitzaci\u00f3", +"Print...": "Imprimir...", +"Save": "Desa", +"Find": "Buscar", +"Replace with": "Rempla\u00e7ar amb", +"Replace": "Rempla\u00e7ar", +"Replace all": "Rempla\u00e7ar-ho tot", +"Previous": "Anterior", +"Next": "Seg\u00fcent", +"Find and replace...": "Cercar i reempla\u00e7ar...", +"Could not find the specified string.": "No es pot trobar el text especificat.", +"Match case": "Coincidir maj\u00fascules", +"Find whole words only": "Cercar nom\u00e9s paraules completes", +"Spell check": "Corrector ortogr\u00e0fic", +"Ignore": "Ignorar", +"Ignore all": "Ignorar tots", +"Finish": "Finalitzar", +"Add to Dictionary": "Afegir al diccionari", +"Insert table": "Inserir taula", +"Table properties": "Propietats de taula", +"Delete table": "Esborrar taula", +"Cell": "Cel\u00b7la", +"Row": "Fila", +"Column": "Columna", +"Cell properties": "Propietats de cel\u00b7la", +"Merge cells": "Fusionar cel\u00b7les", +"Split cell": "Dividir cel\u00b7les", +"Insert row before": "Inserir fila a sobre", +"Insert row after": "Inserir fila a sota", +"Delete row": "Esborrar fila", +"Row properties": "Propietats de fila", +"Cut row": "Retallar fila", +"Copy row": "Copiar fila", +"Paste row before": "Enganxar fila a sobre", +"Paste row after": "Enganxar fila a sota", +"Insert column before": "Inserir columna abans", +"Insert column after": "Inserir columna despr\u00e9s", +"Delete column": "Esborrar columna", +"Cols": "Cols", +"Rows": "Files", +"Width": "Amplada", +"Height": "Al\u00e7ada", +"Cell spacing": "Espai entre cel\u00b7les", +"Cell padding": "Marge intern", +"Show caption": "Mostrar encap\u00e7alament", +"Left": "A l'esquerra", +"Center": "Centrat", +"Right": "A la dreta", +"Cell type": "Tipus de cel\u00b7la", +"Scope": "\u00c0mbit", +"Alignment": "Aliniament", +"H Align": "Al\u00edniament H", +"V Align": "Al\u00edniament V", +"Top": "Superior", +"Middle": "Mitj\u00e0", +"Bottom": "Inferior", +"Header cell": "Cel\u00b7la de cap\u00e7alera", +"Row group": "Grup de fila", +"Column group": "Grup de columna", +"Row type": "Tipus de fila", +"Header": "Cap\u00e7alera", +"Body": "Cos", +"Footer": "Peu", +"Border color": "Color de vora", +"Insert template...": "Inserir plantilla...", +"Templates": "Plantilles", +"Template": "Plantilla", +"Text color": "Color del text", +"Background color": "Color del fons", +"Custom...": "Personalitzar...", +"Custom color": "Personalitzar el color", +"No color": "Sense color", +"Remove color": "Eliminar el color", +"Table of Contents": "Taula de continguts", +"Show blocks": "Mostrar blocs", +"Show invisible characters": "Mostrar car\u00e0cters invisibles", +"Word count": "Recompte de paraules", +"Words: {0}": "Paraules: {0}", +"{0} words": "{0} paraules", +"File": "Arxiu", +"Edit": "Edici\u00f3", +"Insert": "Inserir", +"View": "Veure", +"Format": "Format", +"Table": "Taula", +"Tools": "Eines", +"Powered by {0}": "Impulsat per {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c0rea de text amb format. Premeu ALT-F9 per mostrar el men\u00fa, ALT F10 per la barra d'eines i ALT-0 per ajuda.", +"Image title": "T\u00edtol de la imatge", +"Border width": "Amplada de la vora", +"Border style": "Estil de la vora", +"Error": "Error", +"Warn": "Alerta", +"Valid": "V\u00e0lid", +"To open the popup, press Shift+Enter": "Per obrir la finestra emergent, premeu Maj.+Retorn", +"Rich Text Area. Press ALT-0 for help.": "\u00c0rea de Text enriquit. Premeu ALT-0 per obtenir ajuda.", +"System Font": "Font del sistema", +"Failed to upload image: {0}": "No s'ha pogut carregar la imatge: {0}", +"Failed to load plugin: {0} from url {1}": "No s'ha pogut carregar el complement: {0} de l\u2019URL {1}", +"Failed to load plugin url: {0}": "No s'ha pogut carregar l\u2019URL del complement: {0}", +"Failed to initialize plugin: {0}": "No s'ha pogut inicialitzar el complement: {0}", +"example": "exemple", +"Search": "Cerca", +"All": "Tot", +"Currency": "Moneda", +"Text": "Text", +"Quotations": "Cites", +"Mathematical": "S\u00edmbols matem\u00e0tics", +"Extended Latin": "Llat\u00ed ampliat", +"Symbols": "S\u00edmbols", +"Arrows": "Fletxes", +"User Defined": "Definit per l'usuari", +"dollar sign": "signe del d\u00f2lar", +"currency sign": "signe de la moneda", +"euro-currency sign": "signe de l'euro", +"colon sign": "signe del col\u00f3n", +"cruzeiro sign": "signe del cruzeiro", +"french franc sign": "signe del franc franc\u00e8s", +"lira sign": "signe de la lira", +"mill sign": "signe del mill", +"naira sign": "signe de la naira", +"peseta sign": "signe de la pesseta", +"rupee sign": "signe de la rupia", +"won sign": "signe del won", +"new sheqel sign": "signe del nou x\u00e9quel", +"dong sign": "signe del dong", +"kip sign": "signe del kip", +"tugrik sign": "signe del t\u00f6gr\u00f6g", +"drachma sign": "signe del dracma", +"german penny symbol": "signe del penic alemany", +"peso sign": "signe del peso", +"guarani sign": "signe del guaran\u00ed", +"austral sign": "signe de l\u2019austral", +"hryvnia sign": "signe de la hr\u00edvnia", +"cedi sign": "signe del cedi", +"livre tournois sign": "signe de la lliura tornesa", +"spesmilo sign": "signe de l\u2019spesmilo", +"tenge sign": "signe del tenge", +"indian rupee sign": "signe de la rupia \u00edndia", +"turkish lira sign": "signe de la lira turca", +"nordic mark sign": "signe del marc n\u00f2rdic", +"manat sign": "signe del manat", +"ruble sign": "signe del ruble", +"yen character": "signe del ien", +"yuan character": "signe del iuan", +"yuan character, in hong kong and taiwan": "signe del iuan en Hong Kong i Taiwan", +"yen\/yuan character variant one": "variaci\u00f3 1 del signe del ien\/iuan", +"Loading emoticons...": "Carregant les emoticones...", +"Could not load emoticons": "No s'han pogut carregar les emoticones", +"People": "Gent", +"Animals and Nature": "Animals i natura", +"Food and Drink": "Menjar i beure", +"Activity": "Activitat", +"Travel and Places": "Viatges i llocs", +"Objects": "Objectes", +"Flags": "Banderes", +"Characters": "Car\u00e0cters", +"Characters (no spaces)": "Car\u00e0cters (sense espais)", +"Error: Form submit field collision.": "Error: error en el camp d\u2019enviament del formulari.", +"Error: No form element found.": "Error: no s'ha trobat l'element del formulari.", +"Update": "Actualitzar", +"Color swatch": "Mostra de color", +"Turquoise": "Turquesa", +"Green": "Verd", +"Blue": "Blau", +"Purple": "Violeta", +"Navy Blue": "Blau mar\u00ed", +"Dark Turquoise": "Turquesa fosc", +"Dark Green": "Verd fosc", +"Medium Blue": "Blau mitj\u00e0", +"Medium Purple": "Violeta mitj\u00e0", +"Midnight Blue": "Blau mitjanit", +"Yellow": "Groc", +"Orange": "Taronja", +"Red": "Vermell", +"Light Gray": "Gris clar", +"Gray": "Gris", +"Dark Yellow": "Groc fosc", +"Dark Orange": "Taronja fosc", +"Dark Red": "Vermell fosc", +"Medium Gray": "Gris mitj\u00e0", +"Dark Gray": "Gris fosc", +"Black": "Negre", +"White": "Blanc", +"Switch to or from fullscreen mode": "Canviar a o del mode de pantalla completa", +"Open help dialog": "Obrir el quadre de di\u00e0leg d'ajuda", +"history": "historial", +"styles": "estils", +"formatting": "format", +"alignment": "alineaci\u00f3", +"indentation": "sagnat", +"permanent pen": "retolador permanent", +"comments": "comentaris", +"Anchor": "\u00c0ncora", +"Special character": "Car\u00e0cter especial", +"Code sample": "Mostra de codi", +"Color": "Color", +"Emoticons": "Emoticones", +"Document properties": "Propietats del document", +"Image": "Imatge", +"Insert link": "Inserir enlla\u00e7", +"Target": "Dest\u00ed", +"Link": "Enlla\u00e7", +"Poster": "P\u00f3ster", +"Media": "Mitjans", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Buscar i rempla\u00e7ar", +"Whole words": "Paraules senceres", +"Spellcheck": "Comprovar ortrografia", +"Caption": "Encap\u00e7alament", +"Insert template": "Inserir plantilla" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/cs.js b/common/plugins/editors/tinymce/media/langs/cs.js new file mode 100755 index 0000000000000000000000000000000000000000..8842ce706019efc75b8984c2ea9fbe5ca5bc6fb5 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/cs.js @@ -0,0 +1,389 @@ +tinymce.addI18n('cs',{ +"Redo": "Opakovat", +"Undo": "Zp\u011bt", +"Cut": "Vyjmout", +"Copy": "Kop\u00edrovat", +"Paste": "Vlo\u017eit", +"Select all": "Vybrat v\u0161e", +"New document": "Nov\u00fd dokument", +"Ok": "OK", +"Cancel": "Storno", +"Visual aids": "Vizu\u00e1ln\u00ed pom\u016fcky", +"Bold": "Tu\u010dn\u00e9", +"Italic": "Kurz\u00edva", +"Underline": "Podtr\u017een\u00ed", +"Strikethrough": "P\u0159e\u0161krtnut\u00e9", +"Superscript": "Horn\u00ed index", +"Subscript": "Doln\u00ed index", +"Clear formatting": "Vymazat form\u00e1tov\u00e1n\u00ed", +"Align left": "Zarovnat doleva", +"Align center": "Zarovnat na st\u0159ed", +"Align right": "Zarovnat doprava", +"Justify": "Zarovnat do bloku", +"Bullet list": "Odr\u00e1\u017eky", +"Numbered list": "\u010c\u00edslov\u00e1n\u00ed", +"Decrease indent": "Zmen\u0161it odsazen\u00ed", +"Increase indent": "Zv\u011bt\u0161it odsazen\u00ed", +"Close": "Zav\u0159\u00edt", +"Formats": "Form\u00e1ty", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prohl\u00ed\u017ee\u010d nepodporuje p\u0159\u00edm\u00fd p\u0159\u00edstup do schr\u00e1nky. Pou\u017eijte pros\u00edm kl\u00e1vesov\u00e9 zkratky Ctrl+X\/C\/V.", +"Headers": "Nadpisy", +"Header 1": "Nadpis 1", +"Header 2": "Nadpis 2", +"Header 3": "Nadpis 3", +"Header 4": "Nadpis 4", +"Header 5": "Nadpis 5", +"Header 6": "Nadpis 6", +"Headings": "Nadpisy", +"Heading 1": "Nadpis 1", +"Heading 2": "Nadpis 2", +"Heading 3": "Nadpis 3", +"Heading 4": "Nadpis 4", +"Heading 5": "Nadpis 5", +"Heading 6": "Nadpis 6", +"Preformatted": "P\u0159edform\u00e1tovan\u00fd text", +"Div": "Div", +"Pre": "Pre", +"Code": "K\u00f3d", +"Paragraph": "Odstavec", +"Blockquote": "Citace", +"Inline": "\u0158\u00e1dkov\u00e9 zobrazen\u00ed (inline)", +"Blocks": "Bloky", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Je zapnuto vkl\u00e1d\u00e1n\u00ed \u010dist\u00e9ho textu. Dokud nebude tato volba vypnuta, bude ve\u0161ker\u00fd obsah vlo\u017een jako \u010dist\u00fd text.", +"Fonts": "P\u00edsma", +"Font Sizes": "Velikost p\u00edsma", +"Class": "T\u0159\u00edda", +"Browse for an image": "Vyhledat obr\u00e1zek", +"OR": "nebo", +"Drop an image here": "P\u0159esu\u0148te obr\u00e1zek sem", +"Upload": "Nahr\u00e1t", +"Block": "Do bloku", +"Align": "Zarovnat", +"Default": "V\u00fdchoz\u00ed", +"Circle": "Kole\u010dko", +"Disc": "Punt\u00edk", +"Square": "\u010ctvere\u010dek", +"Lower Alpha": "Norm\u00e1ln\u00ed \u010d\u00edslov\u00e1n\u00ed", +"Lower Greek": "Mal\u00e9 p\u00edsmenkov\u00e1n\u00ed", +"Lower Roman": "Mal\u00e9 \u0159\u00edmsk\u00e9 \u010d\u00edslice", +"Upper Alpha": "velk\u00e9 p\u00edsmenkov\u00e1n\u00ed", +"Upper Roman": "\u0158\u00edmsk\u00e9 \u010d\u00edslice", +"Anchor...": "Kotva...", +"Name": "N\u00e1zev", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id by m\u011blo za\u010d\u00ednat p\u00edsmenem a d\u00e1le obsahovat pouze p\u00edsmena, \u010d\u00edsla, poml\u010dky, te\u010dky, dvojte\u010dky, nebo podtr\u017e\u00edtka.", +"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zm\u011bny. Opravdu chcete opustit str\u00e1nku?", +"Restore last draft": "Obnovit posledn\u00ed koncept", +"Special characters...": "Speci\u00e1ln\u00ed znaky...", +"Source code": "Zdrojov\u00fd k\u00f3d", +"Insert\/Edit code sample": "Vlo\u017eit \/ Upravit uk\u00e1zkov\u00fd k\u00f3d", +"Language": "Jazyk", +"Code sample...": "Uk\u00e1zkov\u00fd k\u00f3d...", +"Color Picker": "V\u00fdb\u011br barvy", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Zleva doprava", +"Right to left": "Zprava doleva", +"Emoticons...": "Emotikony...", +"Metadata and Document Properties": "Metadata a vlastnosti dokumentu", +"Title": "Titulek", +"Keywords": "Kl\u00ed\u010dov\u00e1 slova", +"Description": "Popis", +"Robots": "Roboti", +"Author": "Autor", +"Encoding": "K\u00f3dov\u00e1n\u00ed", +"Fullscreen": "Na celou obrazovku", +"Action": "Akce", +"Shortcut": "Kl\u00e1vesov\u00e1 zkratka", +"Help": "N\u00e1pov\u011bda", +"Address": "Blok s po\u0161tovn\u00ed adresou", +"Focus to menubar": "P\u0159ej\u00edt do menu", +"Focus to toolbar": "P\u0159ej\u00edt na panel n\u00e1stroj\u016f", +"Focus to element path": "P\u0159ej\u00edt na element path", +"Focus to contextual toolbar": "P\u0159ej\u00edt na kontextov\u00fd panel n\u00e1stroj\u016f", +"Insert link (if link plugin activated)": "Vlo\u017eit odkaz (pokud je aktivn\u00ed link plugin)", +"Save (if save plugin activated)": "Ulo\u017eit (pokud je aktivni save plugin)", +"Find (if searchreplace plugin activated)": "Hledat (pokud je aktivn\u00ed plugin searchreplace)", +"Plugins installed ({0}):": "Instalovan\u00e9 pluginy ({0}):", +"Premium plugins:": "Pr\u00e9miov\u00e9 pluginy:", +"Learn more...": "Zjistit v\u00edce...", +"You are using {0}": "Pou\u017e\u00edv\u00e1te {0}", +"Plugins": "Pluginy", +"Handy Shortcuts": "U\u017eite\u010dn\u00e9 kl\u00e1vesov\u00e9 zkratky", +"Horizontal line": "Vodorovn\u00e1 \u010d\u00e1ra", +"Insert\/edit image": "Vlo\u017eit \/ upravit obr\u00e1zek", +"Image description": "Popis obr\u00e1zku", +"Source": "URL", +"Dimensions": "Rozm\u011bry", +"Constrain proportions": "Zachovat proporce", +"General": "Obecn\u00e9", +"Advanced": "Pokro\u010dil\u00e9", +"Style": "Styl", +"Vertical space": "Vertik\u00e1ln\u00ed mezera", +"Horizontal space": "Horizont\u00e1ln\u00ed mezera", +"Border": "R\u00e1me\u010dek", +"Insert image": "Vlo\u017eit obr\u00e1zek", +"Image...": "Obr\u00e1zek...", +"Image list": "Seznam obr\u00e1zk\u016f", +"Rotate counterclockwise": "Oto\u010dit doleva", +"Rotate clockwise": "Oto\u010dit doprava", +"Flip vertically": "P\u0159evr\u00e1tit svisle", +"Flip horizontally": "P\u0159evr\u00e1tit vodorovn\u011b", +"Edit image": "Upravit obr\u00e1zek", +"Image options": "Vlastnosti obr\u00e1zku", +"Zoom in": "P\u0159ibl\u00ed\u017eit", +"Zoom out": "Odd\u00e1lit", +"Crop": "O\u0159\u00edznout", +"Resize": "Zm\u011bnit velikost", +"Orientation": "Transformovat", +"Brightness": "Jas", +"Sharpen": "Ostrost", +"Contrast": "Kontrast", +"Color levels": "\u00darovn\u011b barev", +"Gamma": "Gama", +"Invert": "Invertovat", +"Apply": "Pou\u017e\u00edt", +"Back": "Zp\u011bt", +"Insert date\/time": "Vlo\u017eit datum \/ \u010das", +"Date\/time": "Datum\/\u010das", +"Insert\/Edit Link": "P\u0159idat\/upravit odkaz", +"Insert\/edit link": "Vlo\u017eit \/ upravit odkaz", +"Text to display": "Text k zobrazen\u00ed", +"Url": "URL", +"Open link in...": "Otev\u0159\u00edt odkaz v...", +"Current window": "Aktu\u00e1ln\u00ed okno", +"None": "\u017d\u00e1dn\u00e9", +"New window": "Nov\u00e9 okno", +"Remove link": "Odstranit odkaz", +"Anchors": "Kotvy", +"Link...": "Odkaz...", +"Paste or type a link": "Vlo\u017eit nebo napsat odkaz", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Zadan\u00e9 URL vypad\u00e1 jako e-mailov\u00e1 adresa. Chcete doplnit povinn\u00fd prefix mailto:?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Zadan\u00e9 URL vypad\u00e1 jako odkaz na jin\u00fd web. Chcete doplnit povinn\u00fd prefix http:\/\/?", +"Link list": "Seznam odkaz\u016f", +"Insert video": "Vlo\u017eit video", +"Insert\/edit video": "Vlo\u017eit \/ upravit video", +"Insert\/edit media": "Vlo\u017eit \/ upravit m\u00e9dia", +"Alternative source": "Alternativn\u00ed zdroj", +"Alternative source URL": "Alternativn\u00ed zdrojov\u00e1 URL", +"Media poster (Image URL)": "Medi\u00e1ln\u00ed plak\u00e1t (URL obr\u00e1zku)", +"Paste your embed code below:": "Vlo\u017ete k\u00f3d pro vlo\u017een\u00ed n\u00ed\u017ee:", +"Embed": "Vlo\u017eit", +"Media...": "M\u00e9dium...", +"Nonbreaking space": "Pevn\u00e1 mezera", +"Page break": "Konec str\u00e1nky", +"Paste as text": "Vlo\u017eit jako \u010dist\u00fd text", +"Preview": "N\u00e1hled", +"Print...": "Tisk...", +"Save": "Ulo\u017eit", +"Find": "Naj\u00edt", +"Replace with": "Nahradit za", +"Replace": "Nahradit", +"Replace all": "Nahradit v\u0161e", +"Previous": "P\u0159edchoz\u00ed", +"Next": "Dal\u0161\u00ed", +"Find and replace...": "Naj\u00edt a nahradit...", +"Could not find the specified string.": "Zadan\u00fd \u0159et\u011bzec nebyl nalezen.", +"Match case": "Rozli\u0161ovat mal\u00e1 a velk\u00e1 p\u00edsmena", +"Find whole words only": "Hledat pouze cel\u00e1 slova", +"Spell check": "Kontrola pravopisu", +"Ignore": "Ignorovat", +"Ignore all": "Ignorovat v\u0161e", +"Finish": "Ukon\u010dit", +"Add to Dictionary": "P\u0159idat do slovn\u00edku", +"Insert table": "Vlo\u017eit tabulku", +"Table properties": "Vlastnosti tabulky", +"Delete table": "Smazat tabulku", +"Cell": "Bu\u0148ka", +"Row": "\u0158\u00e1dek", +"Column": "Sloupec", +"Cell properties": "Vlastnosti bu\u0148ky", +"Merge cells": "Slou\u010dit bu\u0148ky", +"Split cell": "Rozd\u011blit bu\u0148ky", +"Insert row before": "Vlo\u017eit \u0159\u00e1dek nad", +"Insert row after": "Vlo\u017eit \u0159\u00e1dek pod", +"Delete row": "Smazat \u0159\u00e1dek", +"Row properties": "Vlastnosti \u0159\u00e1dku", +"Cut row": "Vyjmout \u0159\u00e1dek", +"Copy row": "Kop\u00edrovat \u0159\u00e1dek", +"Paste row before": "Vlo\u017eit \u0159\u00e1dek nad", +"Paste row after": "Vlo\u017eit \u0159\u00e1dek pod", +"Insert column before": "Vlo\u017eit sloupec vlevo", +"Insert column after": "Vlo\u017eit sloupec vpravo", +"Delete column": "Smazat sloupec", +"Cols": "Sloupc\u016f", +"Rows": "\u0158\u00e1dek", +"Width": "\u0160\u00ed\u0159ka", +"Height": "V\u00fd\u0161ka", +"Cell spacing": "Vn\u011bj\u0161\u00ed okraj bun\u011bk", +"Cell padding": "Vnit\u0159n\u00ed okraj bun\u011bk", +"Show caption": "Zobrazit titulku", +"Left": "Vlevo", +"Center": "Na st\u0159ed", +"Right": "Vpravo", +"Cell type": "Typ bu\u0148ky", +"Scope": "Rozsah", +"Alignment": "Zarovn\u00e1n\u00ed", +"H Align": "Horizont\u00e1ln\u00ed zarovn\u00e1n\u00ed", +"V Align": "Vertik\u00e1ln\u00ed zarovn\u00e1n\u00ed", +"Top": "Nahoru", +"Middle": "Uprost\u0159ed", +"Bottom": "Dol\u016f", +"Header cell": "Hlavi\u010dkov\u00e1 bu\u0148ka", +"Row group": "Skupina \u0159\u00e1dk\u016f", +"Column group": "Skupina sloupc\u016f", +"Row type": "Typ \u0159\u00e1dku", +"Header": "Hlavi\u010dka", +"Body": "T\u011blo", +"Footer": "Pati\u010dka", +"Border color": "Barva r\u00e1me\u010dku", +"Insert template...": "Vlo\u017eit \u0161ablonu...", +"Templates": "\u0160ablony", +"Template": "\u0160ablona", +"Text color": "Barva p\u00edsma", +"Background color": "Barva pozad\u00ed", +"Custom...": "Vlastn\u00ed...", +"Custom color": "Vlastn\u00ed barva", +"No color": "Bez barvy", +"Remove color": "Odebrat barvu", +"Table of Contents": "Obsah", +"Show blocks": "Uk\u00e1zat bloky", +"Show invisible characters": "Zobrazit speci\u00e1ln\u00ed znaky", +"Word count": "Po\u010det slov", +"Words: {0}": "Po\u010det slov: {0}", +"{0} words": "Po\u010det slov: {0}", +"File": "Soubor", +"Edit": "\u00dapravy", +"Insert": "Vlo\u017eit", +"View": "Zobrazit", +"Format": "Form\u00e1t", +"Table": "Tabulka", +"Tools": "N\u00e1stroje", +"Powered by {0}": "Vytvo\u0159il {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Editor. Stiskn\u011bte ALT-F9 pro menu, ALT-F10 pro n\u00e1strojovou li\u0161tu a ALT-0 pro n\u00e1pov\u011bdu.", +"Image title": "N\u00e1zev obr\u00e1zku", +"Border width": "\u0160\u00ed\u0159ka ohrani\u010den\u00ed", +"Border style": "Styl ohrani\u010den\u00ed", +"Error": "Chyba", +"Warn": "Varov\u00e1n\u00ed", +"Valid": "Platn\u00fd", +"To open the popup, press Shift+Enter": "Vyskakovac\u00ed okno otev\u0159ete stisknut\u00edm Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Oblast Rich Text, stiskn\u011bte ALT-0 pro n\u00e1pov\u011bdu.", +"System Font": "Syst\u00e9mov\u00e9 p\u00edsmo", +"Failed to upload image: {0}": "Nahr\u00e1n\u00ed obr\u00e1zku selhalo: ", +"Failed to load plugin: {0} from url {1}": "Na\u010dten\u00ed z\u00e1suvn\u00e9ho modulu selhalo: {0} z URL {1}", +"Failed to load plugin url: {0}": "Na\u010dten\u00ed z\u00e1suvn\u00e9ho modulu URL selhalo: {0}", +"Failed to initialize plugin: {0}": "Inicializace z\u00e1suvn\u00e9ho modulu selhala: ", +"example": "p\u0159\u00edklad", +"Search": "Hledat", +"All": "V\u0161e", +"Currency": "M\u011bna", +"Text": "Text", +"Quotations": "Citace", +"Mathematical": "Matematick\u00e9 symboly", +"Extended Latin": "Roz\u0161\u00ed\u0159en\u00e9 Latin", +"Symbols": "Symboly", +"Arrows": "\u0160ipky", +"User Defined": "Definovan\u00e9 u\u017eivatelem", +"dollar sign": "znak dolaru", +"currency sign": "znak m\u011bny", +"euro-currency sign": "znak m\u011bny euro", +"colon sign": "znak dvojte\u010dky", +"cruzeiro sign": "znak cruzeiro", +"french franc sign": "znak francouzsk\u00e9ho franku", +"lira sign": "znak liry", +"mill sign": "znak mill", +"naira sign": "znak nairy", +"peseta sign": "znak pesety", +"rupee sign": "znak rupie", +"won sign": "znak wonu", +"new sheqel sign": "znak nov\u00e9ho \u0161ekelu", +"dong sign": "znak dongu", +"kip sign": "znak kipu", +"tugrik sign": "znak tugriku", +"drachma sign": "znak drachmy", +"german penny symbol": "znak n\u011bmeck\u00e9ho feniku", +"peso sign": "znak pesa", +"guarani sign": "znak guaran\u00ed", +"austral sign": "znak austral", +"hryvnia sign": "znak h\u0159ivny", +"cedi sign": "znak cedi", +"livre tournois sign": "znak tournois libry", +"spesmilo sign": "znak spesmilo", +"tenge sign": "znak tenge", +"indian rupee sign": "znak indick\u00e9 rupie", +"turkish lira sign": "znak tureck\u00e9 liry", +"nordic mark sign": "znak norsk\u00e9 marky", +"manat sign": "znak manatu", +"ruble sign": "znak rublu", +"yen character": "znak jenu", +"yuan character": "znak juanu", +"yuan character, in hong kong and taiwan": "znak juanu v hongkongu a tchaj-wanu", +"yen\/yuan character variant one": "znak jenu\/juanu, varianta 1", +"Loading emoticons...": "Na\u010d\u00edt\u00e1n\u00ed emotikon\u016f...", +"Could not load emoticons": "Nelze na\u010d\u00edst emotikony", +"People": "Lid\u00e9", +"Animals and Nature": "Zv\u00ed\u0159ata a p\u0159\u00edroda", +"Food and Drink": "J\u00eddlo a pit\u00ed", +"Activity": "Aktivita", +"Travel and Places": "Cestov\u00e1n\u00ed a m\u00edsta", +"Objects": "Objekty", +"Flags": "Vlajky", +"Characters": "Znaky", +"Characters (no spaces)": "Znaky (bez mezer)", +"Error: Form submit field collision.": "Chyba: Kolize odes\u00edlac\u00edho formul\u00e1\u0159ov\u00e9ho pole.", +"Error: No form element found.": "Chyba: Nebyl nalezen \u017e\u00e1dn\u00fd prvek formul\u00e1\u0159e.", +"Update": "Aktualizovat", +"Color swatch": "Vzorek barvy", +"Turquoise": "Tyrkysov\u00e1", +"Green": "Zelen\u00e1", +"Blue": "Modr\u00e1", +"Purple": "Fialov\u00e1", +"Navy Blue": "N\u00e1mo\u0159nick\u00e1 mod\u0159", +"Dark Turquoise": "Tmav\u011b tyrkysov\u00e1", +"Dark Green": "Tmav\u011b zelen\u00e1", +"Medium Blue": "St\u0159edn\u011b modr\u00e1", +"Medium Purple": "St\u0159edn\u011b fialov\u00e1", +"Midnight Blue": "P\u016flno\u010dn\u00ed modr\u00e1", +"Yellow": "\u017dlut\u00e1", +"Orange": "Oran\u017eov\u00e1", +"Red": "\u010cerven\u00e1", +"Light Gray": "Sv\u011btle \u0161ed\u00e1", +"Gray": "\u0160ed\u00e1", +"Dark Yellow": "Tmav\u011b \u017elut\u00e1", +"Dark Orange": "Tmav\u011b oran\u017eov\u00e1", +"Dark Red": "Tmav\u011b \u010derven\u00e1", +"Medium Gray": "St\u0159edn\u011b \u0161ed\u00e1", +"Dark Gray": "Tmav\u011b \u0161ed\u00e1", +"Black": "\u010cern\u00e1", +"White": "B\u00edl\u00e1", +"Switch to or from fullscreen mode": "P\u0159ep\u00edn\u00e1n\u00ed mezi re\u017eimem cel\u00e9 obrazovky", +"Open help dialog": "Otev\u0159\u00edt okno n\u00e1pov\u011bdy", +"history": "historie", +"styles": "styly", +"formatting": "form\u00e1tov\u00e1n\u00ed", +"alignment": "zarovn\u00e1n\u00ed", +"indentation": "odsazen\u00ed", +"permanent pen": "permanentn\u00ed pero", +"comments": "koment\u00e1\u0159e", +"Anchor": "Kotva", +"Special character": "Speci\u00e1ln\u00ed znak", +"Code sample": "Uk\u00e1zkov\u00fd k\u00f3d", +"Color": "Barva", +"Emoticons": "Emotikony", +"Document properties": "Vlastnosti dokumentu", +"Image": "Obr\u00e1zek", +"Insert link": "Vlo\u017eit odkaz", +"Target": "C\u00edl", +"Link": "Odkaz", +"Poster": "N\u00e1hled", +"Media": "M\u00e9dia", +"Print": "Tisk", +"Prev": "P\u0159edchoz\u00ed", +"Find and replace": "Naj\u00edt a nahradit", +"Whole words": "Pouze cel\u00e1 slova", +"Spellcheck": "Kontrola pravopisu", +"Caption": "Nadpis", +"Insert template": "Vlo\u017eit \u0161ablonu" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/cy.js b/common/plugins/editors/tinymce/media/langs/cy.js new file mode 100755 index 0000000000000000000000000000000000000000..b3d9f0125af46b35f8bf110ea210b77de71ce061 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/cy.js @@ -0,0 +1,388 @@ +tinymce.addI18n('cy',{ +"Redo": "Ailwneud", +"Undo": "Dadwneud", +"Cut": "Torri", +"Copy": "Cop\u00efo", +"Paste": "Gludo", +"Select all": "Dewis popeth", +"New document": "Dogfen newydd", +"Ok": "Iawn", +"Cancel": "Canslo", +"Visual aids": "Cymorth gweledol", +"Bold": "Bras", +"Italic": "Italig", +"Underline": "Tanlinellu", +"Strikethrough": "Llinell drwodd", +"Superscript": "Uwchsgript", +"Subscript": "Is-sgript", +"Clear formatting": "Clirio pob fformat", +"Align left": "Aliniad chwith", +"Align center": "Aliniad canol", +"Align right": "Aliniad de", +"Justify": "Unioni", +"Bullet list": "Rhestr fwled", +"Numbered list": "Rhestr rifol", +"Decrease indent": "Lleihau mewnoliad", +"Increase indent": "Cynyddu mewnoliad", +"Close": "Cau", +"Formats": "Fformatau", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Dyw eich porwr ddim yn cynnal mynediad uniongyrchol i'r clipfwrdd. Yn hytrach defnyddiwch y bysellau llwybrau byr Ctrl+X\/C\/V.", +"Headers": "Penawdau", +"Header 1": "Pennawd 1", +"Header 2": "Pennawd 2", +"Header 3": "Pennawd 3", +"Header 4": "Pennawd 4", +"Header 5": "Pennawd 5", +"Header 6": "Pennawd 6", +"Headings": "Penawdau", +"Heading 1": "Pennawd 1", +"Heading 2": "Pennawd 2", +"Heading 3": "Pennawd 3", +"Heading 4": "Pennawd 4", +"Heading 5": "Pennawd 5", +"Heading 6": "Pennawd 6", +"Preformatted": "Wedi ei rag-fformatio", +"Div": "Div", +"Pre": "Pre", +"Code": "Cod", +"Paragraph": "Paragraff", +"Blockquote": "Dyfyniad bloc", +"Inline": "Mewnlin", +"Blocks": "Blociau", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Mae gludo nawr yn gweithio yn y modd testun plaen. Caiff testun plaen ei ludo nawr tan gaiff yr opsiwn ei doglo i'w ddiffodd.", +"Fonts": "Ffontau", +"Font Sizes": "Meintiau Ffont", +"Class": "Dosbarth", +"Browse for an image": "Pori am ddelwedd", +"OR": "NEU", +"Drop an image here": "Gollwng delwedd yma", +"Upload": "Uwchlwytho", +"Block": "Bloc", +"Align": "Alinio", +"Default": "Diofyn", +"Circle": "Cylch", +"Disc": "Disg", +"Square": "Sgw\u00e2r", +"Lower Alpha": "Alffa Is", +"Lower Greek": "Groeg Is", +"Lower Roman": "Rhufeinig Is", +"Upper Alpha": "Alffa Uwch", +"Upper Roman": "Rhufeinig Uwch", +"Anchor...": "Angor...", +"Name": "Enw", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Dylai Id gychwyn gyda llythyren ac yna dim ond llythrennau, rhifau, llinellau toriad,dotiau, colonau neu danlinellau.", +"You have unsaved changes are you sure you want to navigate away?": "Mae newidiadau heb eu cadw - ydych chi wir am symud i ffwrdd?", +"Restore last draft": "Adfer y drafft olaf", +"Special characters...": "Nodau arbennig...", +"Source code": "Cod gwreiddiol", +"Insert\/Edit code sample": "Mewnosod\/golygu sampl cod", +"Language": "Iaith", +"Code sample...": "Sampl cod...", +"Color Picker": "Dewisydd Lliw", +"R": "C", +"G": "Gw", +"B": "Gl", +"Left to right": "Chwith i'r dde", +"Right to left": "De i'r chwith", +"Emoticons...": "Gwenogluniau...", +"Metadata and Document Properties": "Metaddata a Priodweddau'r ddogfen", +"Title": "Teitl", +"Keywords": "Allweddeiriau", +"Description": "Disgrifiad", +"Robots": "Robotiaid", +"Author": "Awdur", +"Encoding": "Amgodiad", +"Fullscreen": "Sgrin llawn", +"Action": "Gweithred", +"Shortcut": "Llwybr Byr", +"Help": "Help", +"Address": "Cyfeiriad", +"Focus to menubar": "Ffocws i'r bar dewislen", +"Focus to toolbar": "Ffocws i'r bar offer", +"Focus to element path": "Ffocws i lwybr elfen", +"Focus to contextual toolbar": "Ffocws i far offer y cyd-destun", +"Insert link (if link plugin activated)": "Mewnosod dolen (os yw'r ategyn dolen yn weithredol)", +"Save (if save plugin activated)": "Cadw (os yw'r ategyn cadw yn weithredol)", +"Find (if searchreplace plugin activated)": "Canfod (os yw'r ategyn chwilio ac amnewid yn weithredol)", +"Plugins installed ({0}):": "Ategio wedi eu gosod ({0}):", +"Premium plugins:": "Ategion premiwm:", +"Learn more...": "Dysgu Mwy...", +"You are using {0}": "Rydych yn defnyddio {0}", +"Plugins": "Ategion", +"Handy Shortcuts": "Llwybrau byr cyfleus", +"Horizontal line": "Llinell lorweddol", +"Insert\/edit image": "Mewnosod\/golygu delwedd", +"Image description": "Disgrifiad y ddelwedd", +"Source": "Ffynhonnell", +"Dimensions": "Dimensiynau", +"Constrain proportions": "Gorfodi cyfrannedd", +"General": "Cyffredinol", +"Advanced": "Uwch", +"Style": "Arddull", +"Vertical space": "Gofod fertigol", +"Horizontal space": "Gofod llorweddol", +"Border": "Border", +"Insert image": "Mewnosod delwedd", +"Image...": "Delwedd...", +"Image list": "Rhestr delweddau", +"Rotate counterclockwise": "Troi gwrthgloc", +"Rotate clockwise": "Troi clocwedd", +"Flip vertically": "Fflipio fertigol", +"Flip horizontally": "Fflipio llorweddol", +"Edit image": "Golygu delwedd", +"Image options": "Dewisiadau delwedd", +"Zoom in": "Chwyddo mewn", +"Zoom out": "Chwyddo allan", +"Crop": "Tocio", +"Resize": "Ailfeintio", +"Orientation": "Cyfeiriadaeth", +"Brightness": "Disgleirdeb", +"Sharpen": "Hogi", +"Contrast": "Cyferbynnedd", +"Color levels": "Lefelau Lliw", +"Gamma": "Gamma", +"Invert": "Gwrthdroi", +"Apply": "Rhoi ar waith", +"Back": "Nol", +"Insert date\/time": "Mewnosod dyddiad\/amser", +"Date\/time": "Dyddiad\/amser", +"Insert\/Edit Link": "Mewnosod\/Golygu dolen", +"Insert\/edit link": "Mewnosod\/golygu dolen", +"Text to display": "Testun i'w ddangos", +"Url": "Url", +"Open link in...": "Agor dolen yn...", +"Current window": "Ffenestr gyfredol", +"None": "Dim", +"New window": "Ffenest newydd", +"Remove link": "Tynnu dolen", +"Anchors": "Angorau", +"Link...": "Dolen...", +"Paste or type a link": "Pastio neu deipio dolen", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Mae'n debyg mai cyfeiriad e-bost yw'r URL hwn. Ydych chi am ychwanegu'r rhagddoddiad mailto:?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Mae'n debyg mai dolen allanol yw'r URL hwn. Ydych chi am ychwanegu'r rhagddodiad http:\/\/ ?", +"Link list": "Rhestr dolenni", +"Insert video": "Mewnosod fideo", +"Insert\/edit video": "Mewnosod\/golygu fideo", +"Insert\/edit media": "Mewnosod\/golygu cyfrwng", +"Alternative source": "Ffynhonnell amgen", +"Alternative source URL": "Alternative source URL", +"Media poster (Image URL)": "Poster cyfrwng (URL delwedd)", +"Paste your embed code below:": "Gludwch eich cod mewnosod isod:", +"Embed": "Mewnosod", +"Media...": "Cyfrwng...", +"Nonbreaking space": "Bwlch heb dorri", +"Page break": "Toriad tudalen", +"Paste as text": "Gludo fel testun", +"Preview": "Rhagolwg", +"Print...": "Argraffu...", +"Save": "Cadw", +"Find": "Chwilio", +"Replace with": "Amnewid gyda", +"Replace": "Amnewid", +"Replace all": "Amnewid y cwbl", +"Previous": "Blaenorol", +"Next": "Nesaf", +"Find and replace...": "Chwilio ac amnewid", +"Could not find the specified string.": "Methu ffeindio'r llinyn hwnnw.", +"Match case": "Cas yn cyfateb", +"Find whole words only": "Canfod geiriau llawn yn unig", +"Spell check": "Gwirwr sillafu", +"Ignore": "Anwybyddu", +"Ignore all": "Amwybyddu pob", +"Finish": "Gorffen", +"Add to Dictionary": "Adio i'r Geiriadur", +"Insert table": "Mewnosod tabl", +"Table properties": "Priodweddau tabl", +"Delete table": "Dileu'r tabl", +"Cell": "Cell", +"Row": "Rhes", +"Column": "Colofn", +"Cell properties": "Priodweddau'r gell", +"Merge cells": "Cyfuno celloedd", +"Split cell": "Hollti celloedd", +"Insert row before": "Mewnosod rhes cyn", +"Insert row after": "Mewnosod rhes ar \u00f4l", +"Delete row": "Dileu rhes", +"Row properties": "Priodweddau rhes", +"Cut row": "Torri rhes", +"Copy row": "Cop\u00efo rhes", +"Paste row before": "Gludo rhes cyn", +"Paste row after": "Gludo rhes ar \u00f4l", +"Insert column before": "Mewnosod colofn cyn", +"Insert column after": "Mewnosod colofn ar \u00f4l", +"Delete column": "Dileu colofn", +"Cols": "Colofnau", +"Rows": "Rhesi", +"Width": "Lled", +"Height": "Uchder", +"Cell spacing": "Bylchiad celloedd", +"Cell padding": "Padio celloedd", +"Show caption": "Dangos capsiwn", +"Left": "Chwith", +"Center": "Canol", +"Right": "De", +"Cell type": "Math y gell", +"Scope": "Cwmpas", +"Alignment": "Aliniad", +"H Align": "Aliniad Ll", +"V Align": "Aliniad F", +"Top": "Brig", +"Middle": "Canol", +"Bottom": "Gwaelod", +"Header cell": "Cell bennawd", +"Row group": "Gr\u0175p rhes", +"Column group": "Gr\u0175p colofn", +"Row type": "Math y rhes", +"Header": "Pennyn", +"Body": "Corff", +"Footer": "Troedyn", +"Border color": "Lliw Border", +"Insert template...": "Mewnosod templed...", +"Templates": "Templedi", +"Template": "Templed", +"Text color": "Lliw testun", +"Background color": "Lliw cefndir", +"Custom...": "Personol...", +"Custom color": "Lliw personol", +"No color": "Dim Lliw", +"Remove color": "Tynnu lliw", +"Table of Contents": "Tabl Cynnwys", +"Show blocks": "Dangos blociau", +"Show invisible characters": "Dangos nodau anweledig", +"Word count": "Cyfri geiriau", +"Words: {0}": "Geiriau: {0}", +"{0} words": "{0} o eiriau", +"File": "Ffeil", +"Edit": "Golygu", +"Insert": "Mewnosod", +"View": "Dangos", +"Format": "Fformat", +"Table": "Tabl", +"Tools": "Offer", +"Powered by {0}": "Gyrrir gan {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Ardal Testun Uwch. Pwyswch ALT-F9 ar gyfer y ddewislen, Pwyswch ALT-F10 ar gyfer y bar offer. Pwyswch ALT-0 am gymorth", +"Image title": "Teitl delwedd", +"Border width": "Lled border", +"Border style": "Steil border", +"Error": "Gwall", +"Warn": "Rhybuddio", +"Valid": "Dilys", +"To open the popup, press Shift+Enter": "I agor y llamlen, pwyswch Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Ardal testun cyfoethog. Pwyswch ALT-0 am help.", +"System Font": "Ffont system", +"Failed to upload image: {0}": "Wedi methu uwchlwytho'r ddelwedd: {0}", +"Failed to load plugin: {0} from url {1}": "Wedi methu llwytho'r ategyn: {0} o'r url {1}", +"Failed to load plugin url: {0}": "Wedi methu llwytho url yr ategyn: {0}", +"Failed to initialize plugin: {0}": "Wedi methu ymgychwyn yr ategyn: {0}", +"example": "enghraifft", +"Search": "Chwilio", +"All": "Y cwbl", +"Currency": "Arian cyfred", +"Text": "Testun", +"Quotations": "Dyfyniadau", +"Mathematical": "Mathemategol", +"Extended Latin": "Lladin estynedig", +"Symbols": "Symbolau", +"Arrows": "Saethau", +"User Defined": "Diffinir gan y defnyddiwr", +"dollar sign": "Arwydd dolar", +"currency sign": "Arwydd arian cyfred", +"euro-currency sign": "Arwydd euro", +"colon sign": "Arwydd colon", +"cruzeiro sign": "Arwydd cruzeiro", +"french franc sign": "Arwydd ffranc Ffrengig", +"lira sign": "Arwydd lira", +"mill sign": "arwydd mill", +"naira sign": "arwydd naira", +"peseta sign": "arwydd peseta", +"rupee sign": "arwydd rupee", +"won sign": "arwydd won", +"new sheqel sign": "arwydd sheqel newydd", +"dong sign": "arwydd dong", +"kip sign": "arwydd kip", +"tugrik sign": "arwydd tugrik", +"drachma sign": "arwydd drachma", +"german penny symbol": "arwydd ceiniog almaenig", +"peso sign": "arwydd peso", +"guarani sign": "arwydd quarani", +"austral sign": "arwydd austral", +"hryvnia sign": "arwydd hryvnia", +"cedi sign": "arwydd cedi", +"livre tournois sign": "arwydd punt tournois", +"spesmilo sign": "arwydd spesmilo", +"tenge sign": "arwydd tenge", +"indian rupee sign": "arwydd rupee india", +"turkish lira sign": "arwydd lira twrcaidd", +"nordic mark sign": "arwydd marc nordig", +"manat sign": "arwydd manat", +"ruble sign": "arwydd ruble", +"yen character": "nod yen", +"yuan character": "nod yuan", +"yuan character, in hong kong and taiwan": "nod yuan yn Hong Kong a Taiwan", +"yen\/yuan character variant one": "nod yen\/yuan amrywiad un", +"Loading emoticons...": "Yn llwytho gwenogluniau", +"Could not load emoticons": "Wedi methu llwytho gwenogluniau", +"People": "Pobl", +"Animals and Nature": "Anifeiliaid a Natur", +"Food and Drink": "Bwyd a Diod", +"Activity": "Gweithgaredd", +"Travel and Places": "Teithio a lleoedd", +"Objects": "Gwrthrychau", +"Flags": "Baneri", +"Characters": "Nodau", +"Characters (no spaces)": "Nodau (dim gofod)", +"Error: Form submit field collision.": "Gwall: Gwrthdrawiad maes cyflwyno ffurflen", +"Error: No form element found.": "Gwall: Ni chafwyd elfen ffurflen", +"Update": "Diweddaru", +"Color swatch": "Casgliad lliwiau", +"Turquoise": "Gwyrddlas", +"Green": "Gwyrdd", +"Blue": "Glas", +"Purple": "Porffor", +"Navy Blue": "Dulas", +"Dark Turquoise": "Gwyrddlas tywyll", +"Dark Green": "Gwyrdd tywyll", +"Medium Blue": "Glas canolig", +"Medium Purple": "Porffor canolig", +"Midnight Blue": "Glas y nos", +"Yellow": "Melyn", +"Orange": "Oren", +"Red": "Coch", +"Light Gray": "Llwyd golau", +"Gray": "d", +"Dark Yellow": "Melyn tywyll", +"Dark Orange": "Oren tywyll", +"Dark Red": "Coch tywyll", +"Medium Gray": "Llwyd canolig", +"Dark Gray": "Llwyd tywyll", +"Black": "Du", +"White": "Gwyn", +"Switch to or from fullscreen mode": "Newid i neu o'r modd sgr\u00een llawn", +"Open help dialog": "Agor y ddeialog gymorth", +"history": "hanes", +"styles": "steiliau", +"formatting": "fformatio", +"alignment": "aliniad", +"indentation": "mewnoli", +"permanent pen": "pen sefydlog", +"comments": "Sylwadau", +"Anchor": "Angor", +"Special character": "Nod arbennig", +"Color": "Lliw", +"Emoticons": "Gwenogluniau", +"Document properties": "Priodweddau'r ddogfen", +"Image": "Delwedd", +"Insert link": "Mewnosod dolen", +"Link": "Dolen", +"Target": "Targed", +"Media": "Cyfrwng", +"Poster": "Poster", +"Print": "Argraffu", +"Whole words": "Geiriau cyfan", +"Find and replace": "Chwilio ac amnewid", +"Prev": "Blaenorol", +"Spellcheck": "Sillafydd", +"Caption": "Pennawd", +"Insert template": "Mewnosod templed" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/da.js b/common/plugins/editors/tinymce/media/langs/da.js new file mode 100755 index 0000000000000000000000000000000000000000..2076d0ff687dc225d4be74fe01d4c1436b2fd29d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/da.js @@ -0,0 +1,389 @@ +tinymce.addI18n('da',{ +"Redo": "Gendan", +"Undo": "Fortryd", +"Cut": "Klip", +"Copy": "Kopier", +"Paste": "S\u00e6t ind", +"Select all": "V\u00e6lg alle", +"New document": "Nyt dokument", +"Ok": "Ok", +"Cancel": "Annuller", +"Visual aids": "Visuel hj\u00e6lp", +"Bold": "Fed", +"Italic": "Kursiv", +"Underline": "Understreget", +"Strikethrough": "Gennemstreget", +"Superscript": "H\u00e6vet skrift", +"Subscript": "S\u00e6nket skrift", +"Clear formatting": "Nulstil formattering", +"Align left": "Opstil til venstre", +"Align center": "Centrer", +"Align right": "Opstil til h\u00f8jre", +"Justify": "Justering", +"Bullet list": "Punktopstillet liste", +"Numbered list": "Nummereret liste", +"Decrease indent": "Formindsk indrykning", +"Increase indent": "For\u00f8g indrykning", +"Close": "Luk", +"Formats": "Formater", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din browser underst\u00f8tter ikke direkte adgang til udklipsholder. Benyt Ctrl+X\/C\/ tastaturgenveje i stedet for.", +"Headers": "Overskrifter", +"Header 1": "Overskrift 1", +"Header 2": "Overskrift 2", +"Header 3": "Overskrift 3", +"Header 4": "Overskrift 4", +"Header 5": "Overskrift 5", +"Header 6": "Overskrift 6", +"Headings": "Overskrifter", +"Heading 1": "Overskrift 1", +"Heading 2": "Overskrift 2", +"Heading 3": "Overskrift 3", +"Heading 4": "Overskrift 4", +"Heading 5": "Overskrift 5", +"Heading 6": "Overskrift 6", +"Preformatted": "Forudformateret", +"Div": "Div", +"Pre": "Pre", +"Code": "Kode", +"Paragraph": "Afsnit", +"Blockquote": "Blockquote", +"Inline": "Inline", +"Blocks": "Blokke", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "S\u00e6t ind er indstillet til at inds\u00e6tte som ren tekst. Indhold bliver nu indsat uden formatering indtil du \u00e6ndrer indstillingen.", +"Fonts": "Skrifttyper", +"Font Sizes": "Skriftst\u00f8rrelse", +"Class": "Class", +"Browse for an image": "S\u00f8g efter et billede", +"OR": "ELLER", +"Drop an image here": "Slip et billede her", +"Upload": "Upload", +"Block": "Blok\u00e9r", +"Align": "Align", +"Default": "Standard", +"Circle": "Cirkel", +"Disc": "Disk", +"Square": "Kvadrat", +"Lower Alpha": "Lower Alpha", +"Lower Greek": "Lower Gr\u00e6sk", +"Lower Roman": "Lower Roman", +"Upper Alpha": "Upper Alpha", +"Upper Roman": "Upper Roman", +"Anchor...": "Anker...", +"Name": "Navn", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id b\u00f8r starte med et bogstav, efterfulgt af bogstaver, tal, bindestreger, punktummer, koloner eller underscores.", +"You have unsaved changes are you sure you want to navigate away?": "Du har ikke gemte \u00e6ndringer. Er du sikker p\u00e5 at du vil forts\u00e6tte?", +"Restore last draft": "Genopret sidste kladde", +"Special characters...": "Specielle tegn...", +"Source code": "Kildekode", +"Insert\/Edit code sample": "Inds\u00e6t\/Ret kodeeksempel", +"Language": "Sprog", +"Code sample...": "Kodeeksempel...", +"Color Picker": "Farvev\u00e6lger", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Venstre til h\u00f8jre", +"Right to left": "H\u00f8jre til venstre", +"Emoticons...": "Emotikoner...", +"Metadata and Document Properties": "Metadata og dokumentegenskaber", +"Title": "Titel", +"Keywords": "S\u00f8geord", +"Description": "Beskrivelse", +"Robots": "Robotter", +"Author": "Forfatter", +"Encoding": "Kodning", +"Fullscreen": "Fuldsk\u00e6rm", +"Action": "Handling", +"Shortcut": "Genvej", +"Help": "Hj\u00e6lp", +"Address": "Adresse", +"Focus to menubar": "Fokus p\u00e5 menulinjen", +"Focus to toolbar": "Fokus p\u00e5 v\u00e6rkt\u00f8jslinjen", +"Focus to element path": "Fokuser p\u00e5 elementvej", +"Focus to contextual toolbar": "Fokuser p\u00e5 kontekstuelle v\u00e6rkt\u00f8jslinje", +"Insert link (if link plugin activated)": "Inds\u00e6t link (hvis link plugin er aktiveret)", +"Save (if save plugin activated)": "Gem (hvis save plugin er aktiveret)", +"Find (if searchreplace plugin activated)": "Find (hvis searchreplace plugin er aktiveret)", +"Plugins installed ({0}):": "Installerede plugins ({0}):", +"Premium plugins:": "Premium plugins:", +"Learn more...": "L\u00e6r mere...", +"You are using {0}": "Du benytter {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Praktiske Genveje", +"Horizontal line": "Vandret linie", +"Insert\/edit image": "Inds\u00e6t\/ret billede", +"Image description": "Billede beskrivelse", +"Source": "Kilde", +"Dimensions": "Dimensioner", +"Constrain proportions": "Behold propertioner", +"General": "Generet", +"Advanced": "Avanceret", +"Style": "Stil", +"Vertical space": "Lodret afstand", +"Horizontal space": "Vandret afstand", +"Border": "Kant", +"Insert image": "Inds\u00e6t billede", +"Image...": "Billede...", +"Image list": "Billede liste", +"Rotate counterclockwise": "Drej modsat urets retning", +"Rotate clockwise": "Drej med urets retning", +"Flip vertically": "Flip vertikalt", +"Flip horizontally": "Flip horisontalt", +"Edit image": "Rediger billede", +"Image options": "Billede indstillinger", +"Zoom in": "Zoom ind", +"Zoom out": "Zoom ud", +"Crop": "Besk\u00e6r", +"Resize": "Skaler", +"Orientation": "Retning", +"Brightness": "Lysstyrke", +"Sharpen": "G\u00f8r skarpere", +"Contrast": "Kontrast", +"Color levels": "Farve niveauer", +"Gamma": "Gamma", +"Invert": "Inverter", +"Apply": "Anvend", +"Back": "Tilbage", +"Insert date\/time": "Inds\u00e6t dato\/klokkeslet", +"Date\/time": "Dato\/klokkeslet", +"Insert\/Edit Link": "Inds\u00e6t\/rediger link", +"Insert\/edit link": "Inds\u00e6t\/ret link", +"Text to display": "Vis tekst", +"Url": "Url", +"Open link in...": "\u00c5bn link med...", +"Current window": "Aktuelle vindue", +"None": "Ingen", +"New window": "Nyt vindue", +"Remove link": "Fjern link", +"Anchors": "Ankre", +"Link...": "Link...", +"Paste or type a link": "Inds\u00e6t eller skriv et link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URLen som du angav ser ud til at v\u00e6re en email adresse. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks mailto: ?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URLen som du angav ser ud til at v\u00e6re et eksternt link. \u00d8nsker du at tilf\u00f8je det kr\u00e6vede prefiks http:\/\/ ?", +"Link list": "Link liste", +"Insert video": "Inds\u00e6t video", +"Insert\/edit video": "Inds\u00e6t\/ret video", +"Insert\/edit media": "Inds\u00e6t\/ret medier", +"Alternative source": "Alternativ kilde", +"Alternative source URL": "Alternativ kilde URL", +"Media poster (Image URL)": "Medieplakat (billede URL)", +"Paste your embed code below:": "Inds\u00e6t din embed kode herunder:", +"Embed": "Integrer", +"Media...": "Medie...", +"Nonbreaking space": "H\u00e5rdt mellemrum", +"Page break": "Sideskift", +"Paste as text": "Inds\u00e6t som ren tekst", +"Preview": "Forh\u00e5ndsvisning", +"Print...": "Udskriv...", +"Save": "Gem", +"Find": "Find", +"Replace with": "Erstat med", +"Replace": "Erstat", +"Replace all": "Erstat alt", +"Previous": "Forrige", +"Next": "N\u00e6ste", +"Find and replace...": "Find og erstat...", +"Could not find the specified string.": "Kunne ikke finde s\u00f8getekst", +"Match case": "STORE og sm\u00e5 bogstaver", +"Find whole words only": "Find kun hele ord", +"Spell check": "Stavekontrol", +"Ignore": "Ignorer", +"Ignore all": "Ignorer alt", +"Finish": "F\u00e6rdig", +"Add to Dictionary": "Tilf\u00f8j til ordbog", +"Insert table": "Inds\u00e6t tabel", +"Table properties": "Tabel egenskaber", +"Delete table": "Slet tabel", +"Cell": "Celle", +"Row": "R\u00e6kke", +"Column": "Kolonne", +"Cell properties": "Celle egenskaber", +"Merge cells": "Flet celler", +"Split cell": "Split celle", +"Insert row before": "Inds\u00e6t r\u00e6kke f\u00f8r", +"Insert row after": "Inds\u00e6t r\u00e6kke efter", +"Delete row": "Slet r\u00e6kke", +"Row properties": "R\u00e6kke egenskaber", +"Cut row": "Klip r\u00e6kke", +"Copy row": "Kopier r\u00e6kke", +"Paste row before": "Inds\u00e6t r\u00e6kke f\u00f8r", +"Paste row after": "Inds\u00e6t r\u00e6kke efter", +"Insert column before": "Inds\u00e6t kolonne f\u00f8r", +"Insert column after": "Inds\u00e6t kolonne efter", +"Delete column": "Slet kolonne", +"Cols": "Kolonne", +"Rows": "R\u00e6kker", +"Width": "Bredde", +"Height": "H\u00f8jde", +"Cell spacing": "Celle afstand", +"Cell padding": "Celle padding", +"Show caption": "Vis overskrift", +"Left": "Venstre", +"Center": "Centrering", +"Right": "H\u00f8jre", +"Cell type": "Celle type", +"Scope": "Anvendelsesomr\u00e5de", +"Alignment": "Tilpasning", +"H Align": "H juster", +"V Align": "V juster", +"Top": "Top", +"Middle": "Midt", +"Bottom": "Bund", +"Header cell": "Sidehoved celle", +"Row group": "R\u00e6kke gruppe", +"Column group": "Kolonne gruppe", +"Row type": "R\u00e6kke type", +"Header": "Sidehoved", +"Body": "Krop", +"Footer": "Sidefod", +"Border color": "Kant farve", +"Insert template...": "Inds\u00e6t skabelon...", +"Templates": "Skabeloner", +"Template": "Skabelon", +"Text color": "Tekst farve", +"Background color": "Baggrunds farve", +"Custom...": "Brugerdefineret...", +"Custom color": "Brugerdefineret farve", +"No color": "Ingen farve", +"Remove color": "Fjern farve", +"Table of Contents": "Indholdsfortegnelse", +"Show blocks": "Vis klokke", +"Show invisible characters": "Vis usynlige tegn", +"Word count": "Optalte ord", +"Words: {0}": "Ord: {0}", +"{0} words": "{0} ord", +"File": "Fil", +"Edit": "Rediger", +"Insert": "Inds\u00e6t", +"View": "Vis", +"Format": "Format", +"Table": "Tabel", +"Tools": "V\u00e6rkt\u00f8j", +"Powered by {0}": "Drevet af {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text omr\u00e5de. Tryk ALT-F9 for menu. Tryk ALT-F10 for toolbar. Tryk ALT-0 for hj\u00e6lp", +"Image title": "Billedtitel", +"Border width": "Kantbredde", +"Border style": "Kantstil", +"Error": "Fejl", +"Warn": "Advar", +"Valid": "Gyldig", +"To open the popup, press Shift+Enter": "Tryk skift + enter for at \u00e5bne pop op", +"Rich Text Area. Press ALT-0 for help.": "Rich tekst omr\u00e5de. Tryk p\u00e5 ALT-0 for hj\u00e6lp.", +"System Font": "Systemskrifttype", +"Failed to upload image: {0}": "Mislykket billed-upload: ", +"Failed to load plugin: {0} from url {1}": "Mislykket plugin indl\u00e6sning: {0} fra url {1}", +"Failed to load plugin url: {0}": "Mislykket indl\u00e6sning af plugin-url: {0}", +"Failed to initialize plugin: {0}": "Mislykket initiering a plugin: {0}", +"example": "eksempel", +"Search": "S\u00f8g", +"All": "Alle", +"Currency": "Valuta", +"Text": "Tekst", +"Quotations": "Anf\u00f8rselstegn", +"Mathematical": "Matematiske tegn", +"Extended Latin": "Udvidet Latin", +"Symbols": "Symboler", +"Arrows": "Pile", +"User Defined": "Brugerdefineret", +"dollar sign": "dollartegn", +"currency sign": "valutategn", +"euro-currency sign": "euro-tegn", +"colon sign": "kolontegn", +"cruzeiro sign": "cruzeiro-tegn", +"french franc sign": "fransk frank-tegn", +"lira sign": "lira-tegn", +"mill sign": "mill-tegn", +"naira sign": "naira-tegn", +"peseta sign": "peseta-tegn", +"rupee sign": "rupee-tegn", +"won sign": "won-tegn", +"new sheqel sign": "ny sheqel-tegn", +"dong sign": "dong-tegn", +"kip sign": "kip-tegn", +"tugrik sign": "tugrik-tegn", +"drachma sign": "drakmer-tegn", +"german penny symbol": "tysk penny-symbol", +"peso sign": "peso-tegn", +"guarani sign": "guarani-tegn", +"austral sign": "austral-tegn", +"hryvnia sign": "hryvnia-tegn", +"cedi sign": "cedi-tegn", +"livre tournois sign": "livre tournois-tegn", +"spesmilo sign": "spesmilo-tegn", +"tenge sign": "tenge-tegn", +"indian rupee sign": "indisk rupee-tegn", +"turkish lira sign": "tyrkisk lira-tegn", +"nordic mark sign": "nordisk mark-tegn", +"manat sign": "manat-tegn", +"ruble sign": "rubel-tegn", +"yen character": "yen-tegn", +"yuan character": "yuan-tegn", +"yuan character, in hong kong and taiwan": "yuan-tegn, i hong kong og taiwan", +"yen\/yuan character variant one": "yen\/yuan-tegn variant en", +"Loading emoticons...": "Indl\u00e6ser emotikoner...", +"Could not load emoticons": "Kunne ikke indl\u00e6se emotikoner", +"People": "Folk", +"Animals and Nature": "Dyr og natur", +"Food and Drink": "F\u00f8de og drikke", +"Activity": "Aktivitet", +"Travel and Places": "Rejser og steder", +"Objects": "Objekter", +"Flags": "Flag", +"Characters": "Tegn", +"Characters (no spaces)": "Tegn (uden mellemrum)", +"Error: Form submit field collision.": "Fejl: Form submit felt kollision", +"Error: No form element found.": "Fejl: Ingen form element fundet.", +"Update": "Opdater", +"Color swatch": "Farvepr\u00f8ve", +"Turquoise": "Turkis", +"Green": "Gr\u00f8n", +"Blue": "Bl\u00e5", +"Purple": "Lilla", +"Navy Blue": "Marinebl\u00e5", +"Dark Turquoise": "M\u00f8rketurkis", +"Dark Green": "M\u00f8rkegr\u00f8n", +"Medium Blue": "Medium bl\u00e5", +"Medium Purple": "Medium lilla", +"Midnight Blue": "Midnatsbl\u00e5", +"Yellow": "Gul", +"Orange": "Orange", +"Red": "R\u00f8d", +"Light Gray": "Lysegr\u00e5", +"Gray": "Gr\u00e5", +"Dark Yellow": "M\u00f8rkegul", +"Dark Orange": "M\u00f8rkeorange", +"Dark Red": "M\u00f8rker\u00f8d", +"Medium Gray": "Mellemgr\u00e5", +"Dark Gray": "M\u00f8rkegr\u00e5", +"Black": "Sort", +"White": "Hvid", +"Switch to or from fullscreen mode": "Skift til eller fra fuldsk\u00e6rmstilstand", +"Open help dialog": "\u00c5bn hj\u00e6lpedialog", +"history": "historie", +"styles": "stile", +"formatting": "formatering", +"alignment": "justering", +"indentation": "indrykning", +"permanent pen": "permanent pen", +"comments": "kommentarer", +"Anchor": "Anchor", +"Special character": "Specielle tegn", +"Code sample": "Kodepr\u00f8ve", +"Color": "Farve", +"Emoticons": "Emot-ikoner", +"Document properties": "Dokument egenskaber", +"Image": "Billede", +"Insert link": "Inds\u00e6t link", +"Target": "Target", +"Link": "Link", +"Poster": "Poster", +"Media": "Medier", +"Print": "Udskriv", +"Prev": "Forrige", +"Find and replace": "Find og erstat", +"Whole words": "Hele ord", +"Spellcheck": "Stavekontrol", +"Caption": "Tekst", +"Insert template": "Inds\u00e6t skabelon" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/de.js b/common/plugins/editors/tinymce/media/langs/de.js new file mode 100755 index 0000000000000000000000000000000000000000..f7a5b0040ef2a9ff481101f309c9747d7f65cb45 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/de.js @@ -0,0 +1,389 @@ +tinymce.addI18n('de',{ +"Redo": "Wiederholen", +"Undo": "R\u00fcckg\u00e4ngig machen", +"Cut": "Ausschneiden", +"Copy": "Kopieren", +"Paste": "Einf\u00fcgen", +"Select all": "Alles ausw\u00e4hlen", +"New document": "Neues Dokument", +"Ok": "Ok", +"Cancel": "Abbrechen", +"Visual aids": "Visuelle Hilfen", +"Bold": "Fett", +"Italic": "Kursiv", +"Underline": "Unterstrichen", +"Strikethrough": "Durchgestrichen", +"Superscript": "Hochgestellt", +"Subscript": "Tiefgestellt", +"Clear formatting": "Formatierung entfernen", +"Align left": "Linksb\u00fcndig ausrichten", +"Align center": "Zentrieren", +"Align right": "Rechtsb\u00fcndig ausrichten", +"Justify": "Blocksatz", +"Bullet list": "Aufz\u00e4hlung", +"Numbered list": "Nummerierte Liste", +"Decrease indent": "Einzug verkleinern", +"Increase indent": "Einzug vergr\u00f6\u00dfern", +"Close": "Schlie\u00dfen", +"Formats": "Formate", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Ihr Browser unterst\u00fctzt leider keinen direkten Zugriff auf die Zwischenablage. Bitte benutzen Sie die Tastenkombinationen Strg+X\/C\/V.", +"Headers": "\u00dcberschriften", +"Header 1": "\u00dcberschrift 1", +"Header 2": "\u00dcberschrift 2", +"Header 3": "\u00dcberschrift 3", +"Header 4": "\u00dcberschrift 4", +"Header 5": "\u00dcberschrift 5", +"Header 6": "\u00dcberschrift 6", +"Headings": "\u00dcberschriften", +"Heading 1": "Kopfzeile 1", +"Heading 2": "Kopfzeile 2", +"Heading 3": "Kopfzeile 3", +"Heading 4": "Kopfzeile 4", +"Heading 5": "Kopfzeile 5", +"Heading 6": "Kopfzeile 6", +"Preformatted": "Vorformatiert", +"Div": "Div", +"Pre": "Pre", +"Code": "Code", +"Paragraph": "Absatz", +"Blockquote": "Blockquote", +"Inline": "Zeichenformate", +"Blocks": "Bl\u00f6cke", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Einf\u00fcgen ist nun im einfachen Textmodus. Inhalte werden ab jetzt als unformatierter Text eingef\u00fcgt, bis Sie diese Einstellung wieder ausschalten!", +"Fonts": "Schriftarten", +"Font Sizes": "Schriftgr\u00f6\u00dfe", +"Class": "Klasse", +"Browse for an image": "Bild...", +"OR": "ODER", +"Drop an image here": "Bild hier ablegen", +"Upload": "Hochladen", +"Block": "Blocksatz", +"Align": "Ausrichten", +"Default": "Standard", +"Circle": "Kreis", +"Disc": "Punkt", +"Square": "Quadrat", +"Lower Alpha": "Kleinbuchstaben", +"Lower Greek": "Griechische Kleinbuchstaben", +"Lower Roman": "R\u00f6mische Zahlen (Kleinbuchstaben)", +"Upper Alpha": "Gro\u00dfbuchstaben", +"Upper Roman": "R\u00f6mische Zahlen (Gro\u00dfbuchstaben)", +"Anchor...": "Textmarke", +"Name": "Name", +"Id": "Kennung", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Die Kennung sollte mit einem Buchstaben anfangen. Nachfolgend nur Buchstaben, Zahlen, Striche (Minus), Punkte, Kommas und Unterstriche.", +"You have unsaved changes are you sure you want to navigate away?": "Die \u00c4nderungen wurden noch nicht gespeichert, sind Sie sicher, dass Sie diese Seite verlassen wollen?", +"Restore last draft": "Letzten Entwurf wiederherstellen", +"Special characters...": "Sonderzeichen...", +"Source code": "Quelltext", +"Insert\/Edit code sample": "Codebeispiel einf\u00fcgen\/bearbeiten", +"Language": "Sprache", +"Code sample...": "Codebeispiel...", +"Color Picker": "Farbwahl", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Von links nach rechts", +"Right to left": "Von rechts nach links", +"Emoticons...": "Emoticons...", +"Metadata and Document Properties": "Dokument-Eigenschaften und -Metadaten", +"Title": "Titel", +"Keywords": "Sch\u00fcsselw\u00f6rter", +"Description": "Beschreibung", +"Robots": "Robots", +"Author": "Verfasser", +"Encoding": "Zeichenkodierung", +"Fullscreen": "Vollbild", +"Action": "Aktion", +"Shortcut": "Shortcut", +"Help": "Hilfe", +"Address": "Adresse", +"Focus to menubar": "Fokus auf Men\u00fcleiste", +"Focus to toolbar": "Fokus auf Werkzeugleiste", +"Focus to element path": "Fokus auf Elementpfad", +"Focus to contextual toolbar": "Fokus auf kontextbezogene Werkzeugleiste", +"Insert link (if link plugin activated)": "Link einf\u00fcgen (wenn Link-Plugin aktiviert ist)", +"Save (if save plugin activated)": "Speichern (wenn Save-Plugin aktiviert ist)", +"Find (if searchreplace plugin activated)": "Suchen einf\u00fcgen (wenn Suchen\/Ersetzen-Plugin aktiviert ist)", +"Plugins installed ({0}):": "installierte Plugins ({0}):", +"Premium plugins:": "Premium Plugins:", +"Learn more...": "Erfahren Sie mehr dazu...", +"You are using {0}": "Sie verwenden {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Praktische Tastenkombinationen", +"Horizontal line": "Horizontale Linie", +"Insert\/edit image": "Bild einf\u00fcgen\/bearbeiten", +"Image description": "Bildbeschreibung", +"Source": "Quelle", +"Dimensions": "Abmessungen", +"Constrain proportions": "Seitenverh\u00e4ltnis beibehalten", +"General": "Allgemein", +"Advanced": "Erweitert", +"Style": "Stil", +"Vertical space": "Vertikaler Abstand", +"Horizontal space": "Horizontaler Abstand", +"Border": "Rahmen", +"Insert image": "Bild einf\u00fcgen", +"Image...": "Bild...", +"Image list": "Bildliste", +"Rotate counterclockwise": "Gegen den Uhrzeigersinn drehen", +"Rotate clockwise": "Im Uhrzeigersinn drehen", +"Flip vertically": "Vertikal spiegeln", +"Flip horizontally": "Horizontal spiegeln", +"Edit image": "Bild bearbeiten", +"Image options": "Bildeigenschaften", +"Zoom in": "Ansicht vergr\u00f6\u00dfern", +"Zoom out": "Ansicht verkleinern", +"Crop": "Bescheiden", +"Resize": "Skalieren", +"Orientation": "Ausrichtung", +"Brightness": "Helligkeit", +"Sharpen": "Sch\u00e4rfen", +"Contrast": "Kontrast", +"Color levels": "Farbwerte", +"Gamma": "Gamma", +"Invert": "Invertieren", +"Apply": "Anwenden", +"Back": "Zur\u00fcck", +"Insert date\/time": "Datum\/Uhrzeit einf\u00fcgen ", +"Date\/time": "Datum\/Uhrzeit", +"Insert\/Edit Link": "Link einf\u00fcgen\/bearbeiten", +"Insert\/edit link": "Link einf\u00fcgen\/bearbeiten", +"Text to display": "Anzuzeigender Text", +"Url": "URL", +"Open link in...": "Link \u00f6ffnen in...", +"Current window": "Aktuelles Fenster", +"None": "Keine", +"New window": "Neues Fenster", +"Remove link": "Link entfernen", +"Anchors": "Textmarken", +"Link...": "Link...", +"Paste or type a link": "Link einf\u00fcgen oder eintippen", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Diese Adresse scheint eine E-Mail-Adresse zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"mailto:\" voranstellen?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Diese Adresse scheint ein externer Link zu sein. M\u00f6chten Sie das dazu ben\u00f6tigte \"http:\/\/\" voranstellen?", +"Link list": "Linkliste", +"Insert video": "Video einf\u00fcgen", +"Insert\/edit video": "Video einf\u00fcgen\/bearbeiten", +"Insert\/edit media": "Medien einf\u00fcgen\/bearbeiten", +"Alternative source": "Alternative Quelle", +"Alternative source URL": "URL der alternativen Quelle", +"Media poster (Image URL)": "Medienposter (Bild-URL)", +"Paste your embed code below:": "F\u00fcgen Sie Ihren Einbettungscode hier ein:", +"Embed": "Einbetten", +"Media...": "Medien...", +"Nonbreaking space": "Gesch\u00fctztes Leerzeichen", +"Page break": "Seitenumbruch", +"Paste as text": "Als Text einf\u00fcgen", +"Preview": "Vorschau", +"Print...": "Drucken...", +"Save": "Speichern", +"Find": "Suchen", +"Replace with": "Ersetzen durch", +"Replace": "Ersetzen", +"Replace all": "Alles ersetzen", +"Previous": "Vorherige", +"Next": "Weiter", +"Find and replace...": "Suchen und ersetzen...", +"Could not find the specified string.": "Die Zeichenfolge wurde nicht gefunden.", +"Match case": "Gro\u00df-\/Kleinschreibung beachten", +"Find whole words only": "Nur ganze W\u00f6rter suchen", +"Spell check": "Rechschreibpr\u00fcfung", +"Ignore": "Ignorieren", +"Ignore all": "Alles Ignorieren", +"Finish": "Ende", +"Add to Dictionary": "Zum W\u00f6rterbuch hinzuf\u00fcgen", +"Insert table": "Tabelle einf\u00fcgen", +"Table properties": "Tabelleneigenschaften", +"Delete table": "Tabelle l\u00f6schen", +"Cell": "Zelle", +"Row": "Zeile", +"Column": "Spalte", +"Cell properties": "Zelleneigenschaften", +"Merge cells": "Zellen verbinden", +"Split cell": "Zelle aufteilen", +"Insert row before": "Neue Zeile davor einf\u00fcgen ", +"Insert row after": "Neue Zeile danach einf\u00fcgen", +"Delete row": "Zeile l\u00f6schen", +"Row properties": "Zeileneigenschaften", +"Cut row": "Zeile ausschneiden", +"Copy row": "Zeile kopieren", +"Paste row before": "Zeile davor einf\u00fcgen", +"Paste row after": "Zeile danach einf\u00fcgen", +"Insert column before": "Neue Spalte davor einf\u00fcgen", +"Insert column after": "Neue Spalte danach einf\u00fcgen", +"Delete column": "Spalte l\u00f6schen", +"Cols": "Spalten", +"Rows": "Zeilen", +"Width": "Breite", +"Height": "H\u00f6he", +"Cell spacing": "Zellenabstand", +"Cell padding": "Zelleninnenabstand", +"Show caption": "Beschriftung anzeigen", +"Left": "Linksb\u00fcndig", +"Center": "Zentriert", +"Right": "Rechtsb\u00fcndig", +"Cell type": "Zellentyp", +"Scope": "G\u00fcltigkeitsbereich", +"Alignment": "Ausrichtung", +"H Align": "Horizontale Ausrichtung", +"V Align": "Vertikale Ausrichtung", +"Top": "Oben", +"Middle": "Mitte", +"Bottom": "Unten", +"Header cell": "Kopfzelle", +"Row group": "Zeilengruppe", +"Column group": "Spaltengruppe", +"Row type": "Zeilentyp", +"Header": "Kopfzeile", +"Body": "Inhalt", +"Footer": "Fu\u00dfzeile", +"Border color": "Rahmenfarbe", +"Insert template...": "Vorlage einf\u00fcgen...", +"Templates": "Vorlagen", +"Template": "Vorlage", +"Text color": "Textfarbe", +"Background color": "Hintergrundfarbe", +"Custom...": "Benutzerdefiniert...", +"Custom color": "Benutzerdefinierte Farbe", +"No color": "Keine Farbe", +"Remove color": "Farbauswahl aufheben", +"Table of Contents": "Inhaltsverzeichnis", +"Show blocks": "Bl\u00f6cke anzeigen", +"Show invisible characters": "Unsichtbare Zeichen anzeigen", +"Word count": "Anzahl der W\u00f6rter", +"Words: {0}": "W\u00f6rter: {0}", +"{0} words": "{0} W\u00f6rter", +"File": "Datei", +"Edit": "Bearbeiten", +"Insert": "Einf\u00fcgen", +"View": "Ansicht", +"Format": "Format", +"Table": "Tabelle", +"Tools": "Werkzeuge", +"Powered by {0}": "Betrieben von {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich-Text- Area. Dr\u00fccken Sie ALT-F9 f\u00fcr das Men\u00fc. Dr\u00fccken Sie ALT-F10 f\u00fcr Symbolleiste. Dr\u00fccken Sie ALT-0 f\u00fcr Hilfe", +"Image title": "Bildtitel", +"Border width": "Rahmenbreite", +"Border style": "Rahmenstil", +"Error": "Fehler", +"Warn": "Warnung", +"Valid": "G\u00fcltig", +"To open the popup, press Shift+Enter": "Dr\u00fccken Sie Umschalt+Eingabe, um das Popup-Fenster zu \u00f6ffnen.", +"Rich Text Area. Press ALT-0 for help.": "Rich-Text-Bereich. Dr\u00fccken Sie Alt+0 f\u00fcr Hilfe.", +"System Font": "Betriebssystemschriftart", +"Failed to upload image: {0}": "Bild konnte nicht hochgeladen werden: {0}", +"Failed to load plugin: {0} from url {1}": "Plugin konnte nicht geladen werden: {0} von URL {1}", +"Failed to load plugin url: {0}": "Plugin-URL konnte nicht geladen werden: {0}", +"Failed to initialize plugin: {0}": "Plugin konnte nicht initialisiert werden: {0}", +"example": "Beispiel", +"Search": "Suchen", +"All": "Alles", +"Currency": "W\u00e4hrung", +"Text": "Text", +"Quotations": "Anf\u00fchrungszeichen", +"Mathematical": "Mathematisch", +"Extended Latin": "Erweitertes Latein", +"Symbols": "Symbole", +"Arrows": "Pfeile", +"User Defined": "Benutzerdefiniert", +"dollar sign": "Dollarzeichen", +"currency sign": "W\u00e4hrungssymbol", +"euro-currency sign": "Eurozeichen", +"colon sign": "Doppelpunkt", +"cruzeiro sign": "Cruzeirozeichen", +"french franc sign": "Franczeichen", +"lira sign": "Lirezeichen", +"mill sign": "Millzeichen", +"naira sign": "Nairazeichen", +"peseta sign": "Pesetazeichen", +"rupee sign": "Rupiezeichen", +"won sign": "Wonzeichen", +"new sheqel sign": "Schekelzeichen", +"dong sign": "Dongzeichen", +"kip sign": "Kipzeichen", +"tugrik sign": "Tugrikzeichen", +"drachma sign": "Drachmezeichen", +"german penny symbol": "Pfennigzeichen", +"peso sign": "Pesozeichen", +"guarani sign": "Guaranizeichen", +"austral sign": "Australzeichen", +"hryvnia sign": "Hrywnjazeichen", +"cedi sign": "Cedizeichen", +"livre tournois sign": "Livrezeichen", +"spesmilo sign": "Spesmilozeichen", +"tenge sign": "Tengezeichen", +"indian rupee sign": "Indisches Rupiezeichen", +"turkish lira sign": "T\u00fcrkisches Lirazeichen", +"nordic mark sign": "Zeichen nordische Mark", +"manat sign": "Manatzeichen", +"ruble sign": "Rubelzeichen", +"yen character": "Yenzeichen", +"yuan character": "Yuanzeichen", +"yuan character, in hong kong and taiwan": "Yuanzeichen in Hongkong und Taiwan", +"yen\/yuan character variant one": "Yen-\/Yuanzeichen Variante 1", +"Loading emoticons...": "Emoticons werden geladen...", +"Could not load emoticons": "Emoticons konnten nicht geladen werden", +"People": "Menschen", +"Animals and Nature": "Tiere und Natur", +"Food and Drink": "Essen und Trinken", +"Activity": "Aktivit\u00e4t", +"Travel and Places": "Reisen und Orte", +"Objects": "Objekte", +"Flags": "Flaggen", +"Characters": "Zeichen", +"Characters (no spaces)": "Zeichen (ohne Leerzeichen)", +"Error: Form submit field collision.": "Fehler: Kollision der Formularbest\u00e4tigungsfelder.", +"Error: No form element found.": "Fehler: Kein Formularelement gefunden.", +"Update": "Aktualisieren", +"Color swatch": "Farbpalette", +"Turquoise": "T\u00fcrkis", +"Green": "Gr\u00fcn", +"Blue": "Blau", +"Purple": "Violett", +"Navy Blue": "Marineblau", +"Dark Turquoise": "Dunkelt\u00fcrkis", +"Dark Green": "Dunkelgr\u00fcn", +"Medium Blue": "Mittleres Blau", +"Medium Purple": "Mittelviolett", +"Midnight Blue": "Mitternachtsblau", +"Yellow": "Gelb", +"Orange": "Orange", +"Red": "Rot", +"Light Gray": "Hellgrau", +"Gray": "Grau", +"Dark Yellow": "Dunkelgelb", +"Dark Orange": "Dunkelorange", +"Dark Red": "Dunkelrot", +"Medium Gray": "Mittelgrau", +"Dark Gray": "Dunkelgrau", +"Black": "Schwarz", +"White": "Wei\u00df", +"Switch to or from fullscreen mode": "Vollbildmodus umschalten", +"Open help dialog": "Hilfe-Dialog \u00f6ffnen", +"history": "Historie", +"styles": "Stile", +"formatting": "Formatierung", +"alignment": "Ausrichtung", +"indentation": "Einr\u00fcckungen", +"permanent pen": "Textmarker", +"comments": "Anmerkungen", +"Anchor": "Textmarke", +"Special character": "Sonderzeichen", +"Code sample": "Codebeispiel", +"Color": "Farbe", +"Emoticons": "Emoticons", +"Document properties": "Dokumenteigenschaften", +"Image": "Bild", +"Insert link": "Link einf\u00fcgen", +"Target": "Ziel", +"Link": "Link", +"Poster": "Poster", +"Media": "Medium", +"Print": "Drucken", +"Prev": "Zur\u00fcck", +"Find and replace": "Suchen und ersetzen", +"Whole words": "Nur ganze W\u00f6rter", +"Spellcheck": "Rechtschreibpr\u00fcfung", +"Caption": "Beschriftung", +"Insert template": "Vorlage einf\u00fcgen " +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/el.js b/common/plugins/editors/tinymce/media/langs/el.js new file mode 100755 index 0000000000000000000000000000000000000000..b5f840da873f5d1731d7d0f554d6c1f0be6ee74e --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/el.js @@ -0,0 +1,261 @@ +tinymce.addI18n('el',{ +"Redo": "\u0395\u03c0\u03b1\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7", +"Undo": "\u0391\u03bd\u03b1\u03af\u03c1\u03b5\u03c3\u03b7", +"Cut": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae", +"Copy": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae", +"Paste": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7", +"Select all": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ae \u03cc\u03bb\u03c9\u03bd", +"New document": "\u039d\u03ad\u03bf \u03ad\u03b3\u03b3\u03c1\u03b1\u03c6\u03bf", +"Ok": "\u0395\u03bd\u03c4\u03ac\u03be\u03b5\u03b9", +"Cancel": "\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7", +"Visual aids": "O\u03c0\u03c4\u03b9\u03ba\u03ac \u03b2\u03bf\u03b7\u03b8\u03ae\u03bc\u03b1\u03c4\u03b1 ", +"Bold": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b7", +"Italic": "\u03a0\u03bb\u03ac\u03b3\u03b9\u03b1", +"Underline": "\u03a5\u03c0\u03bf\u03b3\u03c1\u03ac\u03bc\u03bc\u03b9\u03c3\u03b7", +"Strikethrough": "\u0394\u03b9\u03b1\u03ba\u03c1\u03b9\u03c4\u03ae \u03b4\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae", +"Superscript": "\u0395\u03ba\u03b8\u03ad\u03c4\u03b7\u03c2", +"Subscript": "\u0394\u03b5\u03af\u03ba\u03c4\u03b7\u03c2", +"Clear formatting": "\u0391\u03c0\u03b1\u03bb\u03bf\u03b9\u03c6\u03ae \u03bc\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7\u03c2", +"Align left": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac", +"Align center": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03c3\u03c4\u03bf \u03ba\u03ad\u03bd\u03c4\u03c1\u03bf", +"Align right": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7 \u03b4\u03b5\u03be\u03b9\u03ac", +"Justify": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03c3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7", +"Bullet list": "\u039b\u03af\u03c3\u03c4\u03b1 \u03bc\u03b5 \u03ba\u03bf\u03c5\u03ba\u03ba\u03af\u03b4\u03b5\u03c2", +"Numbered list": "\u0391\u03c1\u03b9\u03b8\u03bc\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bb\u03af\u03c3\u03c4\u03b1", +"Decrease indent": "\u039c\u03b5\u03af\u03c9\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2", +"Increase indent": "\u0391\u03cd\u03be\u03b7\u03c3\u03b7 \u03b5\u03c3\u03bf\u03c7\u03ae\u03c2", +"Close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf", +"Formats": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u039f \u03c0\u03b5\u03c1\u03b9\u03b7\u03b3\u03b7\u03c4\u03ae\u03c2 \u03c3\u03b1\u03c2 \u03b4\u03b5\u03bd \u03c5\u03c0\u03bf\u03c3\u03c4\u03b7\u03c1\u03af\u03b6\u03b5\u03b9 \u03ac\u03bc\u03b5\u03c3\u03b7 \u03c0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf \u03c0\u03c1\u03cc\u03c7\u03b5\u03b9\u03c1\u03bf. \u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03ce \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2 \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03af\u03bf\u03c5 Ctrl+X\/C\/V.", +"Headers": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2", +"Header 1": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 1", +"Header 2": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 2", +"Header 3": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 3", +"Header 4": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 4", +"Header 5": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 5", +"Header 6": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 6", +"Headings": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b5\u03c2", +"Heading 1": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 1", +"Heading 2": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 2", +"Heading 3": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 3", +"Heading 4": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 4", +"Heading 5": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 5", +"Heading 6": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1 6", +"Preformatted": "\u03a0\u03c1\u03bf\u03b4\u03b9\u03b1\u03bc\u03bf\u03c1\u03c6\u03c9\u03bc\u03ad\u03bd\u03bf", +"Div": "Div", +"Pre": "Pre", +"Code": "\u039a\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2", +"Paragraph": "\u03a0\u03b1\u03c1\u03ac\u03b3\u03c1\u03b1\u03c6\u03bf\u03c2", +"Blockquote": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u03c0\u03b1\u03c1\u03ac\u03b8\u03b5\u03c3\u03b7\u03c2", +"Inline": "\u0395\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03ad\u03bd\u03b7", +"Blocks": "\u03a4\u03bc\u03ae\u03bc\u03b1\u03c4\u03b1", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0397 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b5\u03af\u03bd\u03b1\u03b9 \u03c4\u03ce\u03c1\u03b1 \u03c3\u03b5 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c0\u03bb\u03bf\u03cd \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5. \u03a4\u03b1 \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03b1 \u03bc\u03b9\u03b1\u03c2 \u03b5\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7\u03c2 \u03b8\u03b1 \u03b5\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03bf\u03cd\u03bd\u03c4\u03b1\u03b9 \u03c9\u03c2 \u03b1\u03c0\u03bb\u03cc \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03cc\u03c3\u03bf \u03b7 \u03bb\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1 \u03b1\u03c5\u03c4\u03ae \u03c0\u03b1\u03c1\u03b1\u03bc\u03ad\u03bd\u03b5\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03ae.", +"Font Family": "\u0393\u03c1\u03b1\u03bc\u03bc\u03b1\u03c4\u03bf\u03c3\u03b5\u03b9\u03c1\u03ac", +"Font Sizes": "\u039c\u03ad\u03b3\u03b5\u03b8\u03bf\u03c2", +"Class": "\u039a\u03bb\u03ac\u03c3\u03b7", +"Browse for an image": "\u0391\u03bd\u03b1\u03b6\u03b7\u03c4\u03ae\u03c3\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1", +"OR": "\u0389", +"Drop an image here": "\u03a1\u03af\u03be\u03c4\u03b5 \u03bc\u03b9\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b5\u03b4\u03ce", +"Upload": "\u039c\u03b5\u03c4\u03b1\u03c6\u03cc\u03c1\u03c4\u03c9\u03c3\u03b7", +"Block": "\u03a4\u03bc\u03ae\u03bc\u03b1", +"Align": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7", +"Default": "\u03a0\u03c1\u03bf\u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf", +"Circle": "\u039a\u03cd\u03ba\u03bb\u03bf\u03c2", +"Disc": "\u0394\u03af\u03c3\u03ba\u03bf\u03c2", +"Square": "\u03a4\u03b5\u03c4\u03c1\u03ac\u03b3\u03c9\u03bd\u03bf", +"Lower Alpha": "\u03a0\u03b5\u03b6\u03ac \u03bb\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac", +"Lower Greek": "\u03a0\u03b5\u03b6\u03ac \u03b5\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac", +"Lower Roman": "\u03a0\u03b5\u03b6\u03ac \u03c1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac", +"Upper Alpha": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u03bb\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac", +"Upper Roman": "\u039a\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03b1 \u03c1\u03c9\u03bc\u03b1\u03ca\u03ba\u03ac", +"Anchor": "\u0391\u03b3\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7", +"Name": "\u038c\u03bd\u03bf\u03bc\u03b1", +"Id": "\u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u039f \u039a\u03c9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b1\u03c1\u03c7\u03af\u03b6\u03b5\u03b9 \u03bc\u03b5 \u03ad\u03bd\u03b1 \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1, \u03b1\u03ba\u03bf\u03bb\u03bf\u03c5\u03b8\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03bc\u03cc\u03bd\u03bf \u03b1\u03c0\u03cc \u03b3\u03c1\u03ac\u03bc\u03bc\u03b1\u03c4\u03b1, \u03b1\u03c1\u03b9\u03b8\u03bc\u03bf\u03cd\u03c2, \u03c0\u03b1\u03cd\u03bb\u03b5\u03c2, \u03c4\u03b5\u03bb\u03b5\u03af\u03b5\u03c2, \u03ac\u03bd\u03c9 \u03c4\u03b5\u03bb\u03b5\u03af\u03b1 \u03ae \u03c5\u03c0\u03bf\u03b3\u03c1\u03b1\u03bc\u03bc\u03af\u03c3\u03b5\u03b9\u03c2.", +"You have unsaved changes are you sure you want to navigate away?": "\u0388\u03c7\u03b5\u03c4\u03b5 \u03bc\u03b7 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b5\u03c2 \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2. \u0395\u03af\u03c3\u03c4\u03b5 \u03b2\u03ad\u03b2\u03b1\u03b9\u03bf\u03b9 \u03cc\u03c4\u03b9 \u03b8\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c6\u03cd\u03b3\u03b5\u03c4\u03b5 \u03b1\u03c0\u03cc \u03c4\u03b7\u03bd \u03c3\u03b5\u03bb\u03af\u03b4\u03b1;", +"Restore last draft": "\u0395\u03c0\u03b1\u03bd\u03b1\u03c6\u03bf\u03c1\u03ac \u03c4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03bf\u03c5 \u03c3\u03c7\u03b5\u03b4\u03af\u03bf\u03c5", +"Special character": "\u0395\u03b9\u03b4\u03b9\u03ba\u03cc\u03c2 \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03b1\u03c2", +"Source code": "\u03a0\u03b7\u03b3\u03b1\u03af\u03bf\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1\u03c2", +"Insert\/Edit code sample": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03bf\u03c2 \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1", +"Language": "\u0393\u03bb\u03ce\u03c3\u03c3\u03b1", +"Code sample": "\u0394\u03b5\u03af\u03b3\u03bc\u03b1 \u039a\u03ce\u03b4\u03b9\u03ba\u03b1", +"Color": "\u03a7\u03c1\u03ce\u03bc\u03b1", +"R": "\u03ba", +"G": "\u03a0", +"B": "\u039c", +"Left to right": "\u0391\u03c0\u03cc \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b4\u03b5\u03be\u03b9\u03ac", +"Right to left": "\u0391\u03c0\u03cc \u03b4\u03b5\u03be\u03b9\u03ac \u03c0\u03c1\u03bf\u03c2 \u03c4\u03b1 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac", +"Emoticons": "\u03a6\u03b1\u03c4\u03c3\u03bf\u03cd\u03bb\u03b5\u03c2", +"Document properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b5\u03b3\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5", +"Title": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2", +"Keywords": "\u039b\u03ad\u03be\u03b5\u03b9\u03c2 \u03ba\u03bb\u03b5\u03b9\u03b4\u03b9\u03ac", +"Description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae", +"Robots": "\u03a1\u03bf\u03bc\u03c0\u03cc\u03c4", +"Author": "\u03a3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2", +"Encoding": "\u039a\u03c9\u03b4\u03b9\u03ba\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", +"Fullscreen": "\u03a0\u03bb\u03ae\u03c1\u03b7\u03c2 \u03bf\u03b8\u03cc\u03bd\u03b7", +"Action": "\u0395\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b1", +"Shortcut": "\u03a3\u03c5\u03bd\u03c4\u03cc\u03bc\u03b5\u03c5\u03c3\u03b7", +"Help": "\u0392\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1", +"Address": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7", +"Focus to menubar": "\u0395\u03c3\u03c4\u03af\u03b1\u03c3\u03b7 \u03c3\u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd", +"Focus to toolbar": "\u0395\u03c3\u03c4\u03af\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd", +"Focus to element path": "\u0395\u03c3\u03c4\u03af\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03b4\u03b9\u03b1\u03b4\u03c1\u03bf\u03bc\u03ae \u03c3\u03c4\u03bf\u03b9\u03c7\u03b5\u03af\u03bf\u03c5", +"Focus to contextual toolbar": "\u0395\u03c3\u03c4\u03af\u03b1\u03c3\u03b7 \u03c3\u03c4\u03b7 \u03c3\u03c5\u03bd\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd", +"Insert link (if link plugin activated)": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5 (\u03b5\u03ac\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf \u03c4\u03bf \u03c0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03bf \u03c4\u03bf\u03c5 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5)", +"Save (if save plugin activated)": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 (\u03b5\u03ac\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf \u03c4\u03bf \u03c0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03bf \u03c4\u03b7\u03c2 \u03b1\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7\u03c2)", +"Find (if searchreplace plugin activated)": "\u0395\u03cd\u03c1\u03b5\u03c3\u03b7 (\u03b5\u03ac\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03bf \u03c4\u03bf \u03c0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03bf \u03c4\u03b7\u03c2 \u03b1\u03bd\u03b1\u03b6\u03ae\u03c4\u03b7\u03c3\u03b7\u03c2)", +"Plugins installed ({0}):": "\u0395\u03b3\u03ba\u03b1\u03c4\u03b5\u03c3\u03c4\u03b7\u03bc\u03ad\u03bd\u03b1 \u03c0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03b1 ({0}):", +"Premium plugins:": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03b1 \u03c5\u03c8\u03b7\u03bb\u03ae\u03c2 \u03c0\u03bf\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1\u03c2:", +"Learn more...": "\u039c\u03ac\u03b8\u03b5\u03c4\u03b5 \u03c0\u03b5\u03c1\u03b9\u03c3\u03c3\u03cc\u03c4\u03b5\u03c1\u03b1...", +"You are using {0}": "\u03a7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03b9\u03b5\u03af\u03c4\u03b5 {0}", +"Plugins": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c4\u03b1", +"Handy Shortcuts": "\u03a7\u03c1\u03ae\u03c3\u03b9\u03bc\u03b5\u03c2 \u03c3\u03c5\u03bd\u03c4\u03bf\u03bc\u03b5\u03cd\u03c3\u03b5\u03b9\u03c2", +"Horizontal line": "\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae", +"Insert\/edit image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", +"Image description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", +"Source": "\u03a0\u03b7\u03b3\u03ae", +"Dimensions": "\u0394\u03b9\u03b1\u03c3\u03c4\u03ac\u03c3\u03b5\u03b9\u03c2", +"Constrain proportions": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2 \u03b1\u03bd\u03b1\u03bb\u03bf\u03b3\u03b9\u03ce\u03bd", +"General": "\u0393\u03b5\u03bd\u03b9\u03ba\u03ac", +"Advanced": "\u0393\u03b9\u03b1 \u03a0\u03c1\u03bf\u03c7\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2", +"Style": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7", +"Vertical space": "\u039a\u03ac\u03b8\u03b5\u03c4\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1", +"Horizontal space": "\u039f\u03c1\u03b9\u03b6\u03cc\u03bd\u03c4\u03b9\u03bf \u03b4\u03b9\u03ac\u03c3\u03c4\u03b7\u03bc\u03b1", +"Border": "\u03a0\u03bb\u03b1\u03af\u03c3\u03b9\u03bf", +"Insert image": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", +"Image": "\u0395\u03b9\u03ba\u03cc\u03bd\u03b1", +"Image list": "\u039b\u03af\u03c3\u03c4\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03c9\u03bd", +"Rotate counterclockwise": "\u03a0\u03b5\u03c1\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03cc\u03c3\u03c4\u03c1\u03bf\u03c6\u03b1", +"Rotate clockwise": "\u03a0\u03b5\u03c1\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03b4\u03b5\u03be\u03b9\u03cc\u03c3\u03c4\u03c1\u03bf\u03c6\u03b1", +"Flip vertically": "\u0391\u03bd\u03b1\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03ba\u03b1\u03b8\u03ad\u03c4\u03c9\u03c2", +"Flip horizontally": "\u0391\u03bd\u03b1\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae \u03bf\u03c1\u03b9\u03b6\u03bf\u03bd\u03c4\u03af\u03c9\u03c2", +"Edit image": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", +"Image options": "\u0395\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1\u03c2", +"Zoom in": "\u039c\u03b5\u03b3\u03ad\u03b8\u03c5\u03bd\u03c3\u03b7", +"Zoom out": "\u03a3\u03bc\u03af\u03ba\u03c1\u03c5\u03bd\u03c3\u03b7", +"Crop": "\u03a0\u03b5\u03c1\u03b9\u03ba\u03bf\u03c0\u03ae", +"Resize": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03bc\u03b5\u03b3\u03ad\u03b8\u03bf\u03c5\u03c2", +"Orientation": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03c3\u03bc\u03cc\u03c2", +"Brightness": "\u03a6\u03c9\u03c4\u03b5\u03b9\u03bd\u03cc\u03c4\u03b7\u03c4\u03b1", +"Sharpen": "\u038c\u03be\u03c5\u03bd\u03c3\u03b7", +"Contrast": "\u0391\u03bd\u03c4\u03af\u03b8\u03b5\u03c3\u03b7", +"Color levels": "\u0395\u03c0\u03af\u03c0\u03b5\u03b4\u03b1 \u03c7\u03c1\u03ce\u03bc\u03b1\u03c4\u03bf\u03c2", +"Gamma": "\u0393\u03ac\u03bc\u03bc\u03b1", +"Invert": "\u0391\u03bd\u03c4\u03b9\u03c3\u03c4\u03c1\u03bf\u03c6\u03ae", +"Apply": "\u0395\u03c6\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae", +"Back": "\u03a0\u03af\u03c3\u03c9", +"Insert date\/time": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1\u03c2\/\u03ce\u03c1\u03b1\u03c2", +"Date\/time": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1\/\u03ce\u03c1\u03b1", +"Insert link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5", +"Insert\/edit link": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5", +"Text to display": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03b3\u03b9\u03b1 \u03b5\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7", +"Url": "URL", +"Target": "\u03a0\u03c1\u03bf\u03bf\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2", +"None": "\u039a\u03b1\u03bc\u03af\u03b1", +"New window": "\u039d\u03ad\u03bf \u03c0\u03b1\u03c1\u03ac\u03b8\u03c5\u03c1\u03bf", +"Remove link": "\u0391\u03c6\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5", +"Anchors": "\u0386\u03b3\u03ba\u03c5\u03c1\u03b5\u03c2", +"Link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2", +"Paste or type a link": "\u0395\u03c0\u03b9\u03ba\u03bf\u03bb\u03bb\u03ae\u03c3\u03c4\u03b5 \u03ae \u03c0\u03bb\u03b7\u03ba\u03c4\u03c1\u03bf\u03bb\u03bf\u03b3\u03ae\u03c3\u03c4\u03b5 \u03ad\u03bd\u03b1 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03c0\u03bf\u03c5 \u03b5\u03b9\u03c3\u03ac\u03c7\u03b8\u03b7\u03ba\u03b5 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 email. \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03cc\u03b8\u03b7\u03bc\u03b1 mailto:;", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0397 \u03b4\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL \u03c0\u03bf\u03c5 \u03b5\u03b9\u03c3\u03ac\u03c7\u03b8\u03b7\u03ba\u03b5 \u03c0\u03b9\u03b8\u03b1\u03bd\u03ce\u03c2 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b5\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc\u03c2 \u03c3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2. \u0398\u03ad\u03bb\u03b5\u03c4\u03b5 \u03bd\u03b1 \u03c0\u03c1\u03bf\u03c3\u03b8\u03ad\u03c3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03b1\u03c0\u03b1\u03b9\u03c4\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03c0\u03c1\u03cc\u03b8\u03b7\u03bc\u03b1 http:\/\/;", +"Link list": "\u039b\u03af\u03c3\u03c4\u03b1 \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03c9\u03bd", +"Insert video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b2\u03af\u03bd\u03c4\u03b5\u03bf", +"Insert\/edit video": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 \u03b2\u03af\u03bd\u03c4\u03b5\u03bf", +"Insert\/edit media": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae\/\u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1 media", +"Alternative source": "\u0395\u03bd\u03b1\u03bb\u03bb\u03b1\u03ba\u03c4\u03b9\u03ba\u03ae \u03c0\u03c1\u03bf\u03ad\u03bb\u03b5\u03c5\u03c3\u03b7", +"Poster": "\u0391\u03c6\u03af\u03c3\u03b1", +"Paste your embed code below:": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf\u03bd \u03b5\u03bd\u03c3\u03c9\u03bc\u03b1\u03c4\u03c9\u03bc\u03ad\u03bd\u03bf \u03ba\u03ce\u03b4\u03b9\u03ba\u03b1 \u03c0\u03b1\u03c1\u03b1\u03ba\u03ac\u03c4\u03c9:", +"Embed": "\u0395\u03bd\u03c3\u03c9\u03bc\u03ac\u03c4\u03c9\u03c3\u03b7", +"Media": "\u039c\u03ad\u03c3\u03b1 (\u03bc\u03af\u03bd\u03c4\u03b9\u03b1)", +"Nonbreaking space": "\u039a\u03b5\u03bd\u03cc \u03c7\u03c9\u03c1\u03af\u03c2 \u03b4\u03b9\u03b1\u03ba\u03bf\u03c0\u03ae", +"Page break": "\u0391\u03bb\u03bb\u03b1\u03b3\u03ae \u03c3\u03b5\u03bb\u03af\u03b4\u03b1\u03c2", +"Paste as text": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03c9\u03c2 \u03ba\u03b5\u03af\u03bc\u03b5\u03bd\u03bf", +"Preview": "\u03a0\u03c1\u03bf\u03b5\u03c0\u03b9\u03c3\u03ba\u03cc\u03c0\u03b7\u03c3\u03b7", +"Print": "\u0395\u03ba\u03c4\u03cd\u03c0\u03c9\u03c3\u03b7", +"Save": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7", +"Find": "\u0395\u03cd\u03c1\u03b5\u03c3\u03b7", +"Replace with": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03bc\u03b5", +"Replace": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7", +"Replace all": "\u0391\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 \u03cc\u03bb\u03c9\u03bd", +"Prev": "\u03a0\u03c1\u03bf\u03b7\u03b3.", +"Next": "\u0395\u03c0\u03cc\u03bc.", +"Find and replace": "\u0395\u03cd\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b1\u03b9 \u03b1\u03bd\u03c4\u03b9\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7", +"Could not find the specified string.": "\u0394\u03b5\u03bd \u03ae\u03c4\u03b1\u03bd \u03b4\u03c5\u03bd\u03b1\u03c4\u03ae \u03b7 \u03b5\u03cd\u03c1\u03b5\u03c3\u03b7 \u03c4\u03bf\u03c5 \u03ba\u03b1\u03b8\u03bf\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf\u03c5 \u03b1\u03bb\u03c6\u03b1\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03bf\u03cd.", +"Match case": "\u03a4\u03b1\u03af\u03c1\u03b9\u03b1\u03c3\u03bc\u03b1 \u03c0\u03b5\u03b6\u03ce\u03bd\/\u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03c9\u03bd", +"Whole words": "\u039f\u03bb\u03cc\u03ba\u03bb\u03b7\u03c1\u03b5\u03c2 \u03bb\u03ad\u03be\u03b5\u03b9\u03c2", +"Spellcheck": "\u039f\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03b9\u03ba\u03cc\u03c2 \u03ad\u03bb\u03b5\u03b3\u03c7\u03bf\u03c2 ", +"Ignore": "\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7", +"Ignore all": "\u03a0\u03b1\u03c1\u03ac\u03b2\u03bb\u03b5\u03c8\u03b7 \u03cc\u03bb\u03c9\u03bd", +"Finish": "\u03a4\u03ad\u03bb\u03bf\u03c2", +"Add to Dictionary": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c3\u03c4\u03bf \u039b\u03b5\u03be\u03b9\u03ba\u03cc", +"Insert table": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", +"Table properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", +"Delete table": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c0\u03af\u03bd\u03b1\u03ba\u03b1", +"Cell": "\u039a\u03b5\u03bb\u03af", +"Row": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ae", +"Column": "\u03a3\u03c4\u03ae\u03bb\u03b7", +"Cell properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd", +"Merge cells": "\u03a3\u03c5\u03b3\u03c7\u03ce\u03bd\u03b5\u03c5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd", +"Split cell": "\u0394\u03b9\u03b1\u03af\u03c1\u03b5\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd", +"Insert row before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03b5\u03c0\u03ac\u03bd\u03c9", +"Insert row after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03ba\u03ac\u03c4\u03c9", +"Delete row": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", +"Row properties": "\u0399\u03b4\u03b9\u03cc\u03c4\u03b7\u03c4\u03b5\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", +"Cut row": "\u0391\u03c0\u03bf\u03ba\u03bf\u03c0\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", +"Copy row": "\u0391\u03bd\u03c4\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", +"Paste row before": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03b5\u03c0\u03ac\u03bd\u03c9", +"Paste row after": "\u0395\u03c0\u03b9\u03ba\u03cc\u03bb\u03bb\u03b7\u03c3\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2 \u03ba\u03ac\u03c4\u03c9", +"Insert column before": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03b1\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac", +"Insert column after": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2 \u03b4\u03b5\u03be\u03b9\u03ac", +"Delete column": "\u0394\u03b9\u03b1\u03b3\u03c1\u03b1\u03c6\u03ae \u03c3\u03c4\u03ae\u03bb\u03b7\u03c2", +"Cols": "\u03a3\u03c4\u03ae\u03bb\u03b5\u03c2", +"Rows": "\u0393\u03c1\u03b1\u03bc\u03bc\u03ad\u03c2", +"Width": "\u03a0\u03bb\u03ac\u03c4\u03bf\u03c2", +"Height": "\u038e\u03c8\u03bf\u03c2", +"Cell spacing": "\u0391\u03c0\u03cc\u03c3\u03c4\u03b1\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd", +"Cell padding": "\u0391\u03bd\u03b1\u03c0\u03bb\u03ae\u03c1\u03c9\u03c3\u03b7 \u03ba\u03b5\u03bb\u03b9\u03ce\u03bd", +"Caption": "\u039b\u03b5\u03b6\u03ac\u03bd\u03c4\u03b1", +"Left": "\u0391\u03c1\u03b9\u03c3\u03c4\u03b5\u03c1\u03ac", +"Center": "\u039a\u03b5\u03bd\u03c4\u03c1\u03b1\u03c1\u03b9\u03c3\u03bc\u03ad\u03bd\u03b7", +"Right": "\u0394\u03b5\u03be\u03b9\u03ac", +"Cell type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03ba\u03b5\u03bb\u03b9\u03bf\u03cd", +"Scope": "\u0388\u03ba\u03c4\u03b1\u03c3\u03b7", +"Alignment": "\u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7", +"H Align": "\u039f\u03c1. \u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7", +"V Align": "\u039a. \u03a3\u03c4\u03bf\u03af\u03c7\u03b9\u03c3\u03b7", +"Top": "\u039a\u03bf\u03c1\u03c5\u03c6\u03ae", +"Middle": "\u039c\u03ad\u03c3\u03b7", +"Bottom": "\u039a\u03ac\u03c4\u03c9", +"Header cell": "\u039a\u03b5\u03bb\u03af-\u03ba\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1", +"Row group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ce\u03bd", +"Column group": "\u039f\u03bc\u03ac\u03b4\u03b1 \u03c3\u03c4\u03b7\u03bb\u03ce\u03bd", +"Row type": "\u03a4\u03cd\u03c0\u03bf\u03c2 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae\u03c2", +"Header": "\u039a\u03b5\u03c6\u03b1\u03bb\u03af\u03b4\u03b1", +"Body": "\u03a3\u03ce\u03bc\u03b1", +"Footer": "\u03a5\u03c0\u03bf\u03c3\u03ad\u03bb\u03b9\u03b4\u03bf", +"Border color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03c0\u03bb\u03b1\u03b9\u03c3\u03af\u03bf\u03c5", +"Insert template": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae \u03c0\u03c1\u03bf\u03c4\u03cd\u03c0\u03bf\u03c5 ", +"Templates": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03b1", +"Template": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf", +"Text color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03ba\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5 ", +"Background color": "\u03a7\u03c1\u03ce\u03bc\u03b1 \u03c6\u03cc\u03bd\u03c4\u03bf\u03c5", +"Custom...": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03b3\u03ae...", +"Custom color": "\u03a0\u03c1\u03bf\u03c3\u03b1\u03c1\u03bc\u03bf\u03c3\u03bc\u03ad\u03bd\u03bf \u03c7\u03c1\u03ce\u03bc\u03b1", +"No color": "\u03a7\u03c9\u03c1\u03af\u03c2 \u03c7\u03c1\u03ce\u03bc\u03b1", +"Table of Contents": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2 \u03a0\u03b5\u03c1\u03b9\u03b5\u03c7\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd", +"Show blocks": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03c4\u03bc\u03b7\u03bc\u03ac\u03c4\u03c9\u03bd", +"Show invisible characters": "\u0395\u03bc\u03c6\u03ac\u03bd\u03b9\u03c3\u03b7 \u03ba\u03c1\u03c5\u03c6\u03ce\u03bd \u03c7\u03b1\u03c1\u03b1\u03ba\u03c4\u03ae\u03c1\u03c9\u03bd", +"Words: {0}": "\u039b\u03ad\u03be\u03b5\u03b9\u03c2: {0}", +"{0} words": "{0} \u03bb\u03ad\u03be\u03b5\u03b9\u03c2", +"File": "\u0391\u03c1\u03c7\u03b5\u03af\u03bf", +"Edit": "\u0395\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1", +"Insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae", +"View": "\u03a0\u03c1\u03bf\u03b2\u03bf\u03bb\u03ae", +"Format": "\u039c\u03bf\u03c1\u03c6\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b7", +"Table": "\u03a0\u03af\u03bd\u03b1\u03ba\u03b1\u03c2", +"Tools": "\u0395\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03b1", +"Powered by {0}": "\u03a4\u03c1\u03bf\u03c6\u03bf\u03b4\u03bf\u03c4\u03b5\u03af\u03c4\u03b1\u03b9 \u03b1\u03c0\u03cc {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u0395\u03bc\u03c0\u03bb\u03bf\u03c5\u03c4\u03b9\u03c3\u03bc\u03ad\u03bd\u03bf \u039a\u03b5\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-F9 \u03b3\u03b9\u03b1 \u03c4\u03bf \u03bc\u03b5\u03bd\u03bf\u03cd. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-F10 \u03b3\u03b9\u03b1 \u03c4\u03b7 \u03b3\u03c1\u03b1\u03bc\u03bc\u03ae \u03b5\u03c1\u03b3\u03b1\u03bb\u03b5\u03af\u03c9\u03bd. \u03a0\u03b1\u03c4\u03ae\u03c3\u03c4\u03b5 ALT-0 \u03b3\u03b9\u03b1 \u03b2\u03bf\u03ae\u03b8\u03b5\u03b9\u03b1" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/es.js b/common/plugins/editors/tinymce/media/langs/es.js new file mode 100755 index 0000000000000000000000000000000000000000..1a697bcc17edab04026c1232afe6279487d529fa --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/es.js @@ -0,0 +1,389 @@ +tinymce.addI18n('es',{ +"Redo": "Rehacer", +"Undo": "Deshacer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Pegar", +"Select all": "Seleccionar todo", +"New document": "Nuevo documento", +"Ok": "Ok", +"Cancel": "Cancelar", +"Visual aids": "Ayudas visuales", +"Bold": "Negrita", +"Italic": "Cursiva", +"Underline": "Subrayado", +"Strikethrough": "Tachado", +"Superscript": "Super\u00edndice", +"Subscript": "Sub\u00edndice", +"Clear formatting": "Limpiar formato", +"Align left": "Alinear a la izquierda", +"Align center": "Alinear al centro", +"Align right": "Alinear a la derecha", +"Justify": "Justificar", +"Bullet list": "Lista de vi\u00f1etas", +"Numbered list": "Lista numerada", +"Decrease indent": "Disminuir sangr\u00eda", +"Increase indent": "Incrementar sangr\u00eda", +"Close": "Cerrar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X\/C\/V de su teclado.", +"Headers": "Encabezados", +"Header 1": "Encabezado 1", +"Header 2": "Encabezado 2", +"Header 3": "Encabezado 3", +"Header 4": "Encabezado 4", +"Header 5": "Encabezado 5", +"Header 6": "Encabezado 6", +"Headings": "Encabezados", +"Heading 1": "Encabezado 1", +"Heading 2": "Encabezado 2", +"Heading 3": "Encabezado 3", +"Heading 4": "Encabezado 4", +"Heading 5": "Encabezado 5", +"Heading 6": "Encabezado 6", +"Preformatted": "Con formato previo", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "P\u00e1rrafo", +"Blockquote": "Blockquote", +"Inline": "Alineado", +"Blocks": "Bloques", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.", +"Fonts": "Fuentes", +"Font Sizes": "Tama\u00f1os de fuente", +"Class": "Clase", +"Browse for an image": "Buscar una imagen", +"OR": "O", +"Drop an image here": "Arrastre una imagen aqu\u00ed", +"Upload": "Cargar", +"Block": "Bloque", +"Align": "Alinear", +"Default": "Por defecto", +"Circle": "C\u00edrculo", +"Disc": "Disco", +"Square": "Cuadrado", +"Lower Alpha": "Inferior Alfa", +"Lower Greek": "Inferior Griega", +"Lower Roman": "Inferior Romana", +"Upper Alpha": "Superior Alfa", +"Upper Roman": "Superior Romana", +"Anchor...": "Anclaje...", +"Name": "Nombre", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Deber\u00eda comenzar por una letra, seguida solo de letras, n\u00fameros, guiones, puntos, dos puntos o guiones bajos.", +"You have unsaved changes are you sure you want to navigate away?": "Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?", +"Restore last draft": "Restaurar el \u00faltimo borrador", +"Special characters...": "Caracteres especiales...", +"Source code": "C\u00f3digo fuente", +"Insert\/Edit code sample": "Insertar\/editar c\u00f3digo de prueba", +"Language": "Idioma", +"Code sample...": "Ejemplo de c\u00f3digo...", +"Color Picker": "Selector de colores", +"R": "R", +"G": "V", +"B": "A", +"Left to right": "De izquierda a derecha", +"Right to left": "De derecha a izquierda", +"Emoticons...": "Emoticones...", +"Metadata and Document Properties": "Metadatos y propiedades del documento", +"Title": "T\u00edtulo", +"Keywords": "Palabras clave", +"Description": "Descripci\u00f3n", +"Robots": "Robots", +"Author": "Autor", +"Encoding": "Codificaci\u00f3n", +"Fullscreen": "Pantalla completa", +"Action": "Acci\u00f3n", +"Shortcut": "Atajo", +"Help": "Ayuda", +"Address": "Direcci\u00f3n", +"Focus to menubar": "Enfocar la barra del men\u00fa", +"Focus to toolbar": "Enfocar la barra de herramientas", +"Focus to element path": "Enfocar la ruta del elemento", +"Focus to contextual toolbar": "Enfocar la barra de herramientas contextual", +"Insert link (if link plugin activated)": "Insertar enlace (si el complemento de enlace est\u00e1 activado)", +"Save (if save plugin activated)": "Guardar (si el componente de salvar est\u00e1 activado)", +"Find (if searchreplace plugin activated)": "Buscar (si el complemento buscar-remplazar est\u00e1 activado)", +"Plugins installed ({0}):": "Plugins instalados ({0}):", +"Premium plugins:": "Complementos premium:", +"Learn more...": "Aprende m\u00e1s...", +"You are using {0}": "Estas usando {0}", +"Plugins": "Complementos", +"Handy Shortcuts": "Accesos directos", +"Horizontal line": "L\u00ednea horizontal", +"Insert\/edit image": "Insertar\/editar imagen", +"Image description": "Descripci\u00f3n de la imagen", +"Source": "Enlace", +"Dimensions": "Dimensiones", +"Constrain proportions": "Restringir proporciones", +"General": "General", +"Advanced": "Avanzado", +"Style": "Estilo", +"Vertical space": "Espacio vertical", +"Horizontal space": "Espacio horizontal", +"Border": "Borde", +"Insert image": "Insertar imagen", +"Image...": "Imagen...", +"Image list": "Lista de im\u00e1genes", +"Rotate counterclockwise": "Girar a la izquierda", +"Rotate clockwise": "Girar a la derecha", +"Flip vertically": "Invertir verticalmente", +"Flip horizontally": "Invertir horizontalmente", +"Edit image": "Editar imagen", +"Image options": "Opciones de imagen", +"Zoom in": "Acercar", +"Zoom out": "Alejar", +"Crop": "Recortar", +"Resize": "Redimensionar", +"Orientation": "Orientaci\u00f3n", +"Brightness": "Brillo", +"Sharpen": "Forma", +"Contrast": "Contraste", +"Color levels": "Niveles de color", +"Gamma": "Gamma", +"Invert": "Invertir", +"Apply": "Aplicar", +"Back": "Atr\u00e1s", +"Insert date\/time": "Insertar fecha\/hora", +"Date\/time": "Fecha\/hora", +"Insert\/Edit Link": "Insertar\/editar enlace", +"Insert\/edit link": "Insertar\/editar enlace", +"Text to display": "Texto para mostrar", +"Url": "URL", +"Open link in...": "Abrir enlace en...", +"Current window": "Ventana actual", +"None": "Ninguno", +"New window": "Nueva ventana", +"Remove link": "Quitar enlace", +"Anchors": "Anclas", +"Link...": "Enlace...", +"Paste or type a link": "Pega o introduce un enlace", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "El enlace que has introducido no parece ser una direcci\u00f3n de correo electr\u00f3nico. Quieres a\u00f1adir el prefijo necesario mailto: ?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "El enlace que has introducido no parece ser una enlace externo. Quieres a\u00f1adir el prefijo necesario http:\/\/ ?", +"Link list": "Lista de enlaces", +"Insert video": "Insertar video", +"Insert\/edit video": "Insertar\/editar video", +"Insert\/edit media": "Insertar\/editar medio", +"Alternative source": "Enlace alternativo", +"Alternative source URL": "Origen de URL alternativo", +"Media poster (Image URL)": "P\u00f3ster de medio (URL de imagen)", +"Paste your embed code below:": "Pega tu c\u00f3digo embebido debajo", +"Embed": "Incrustado", +"Media...": "Medios...", +"Nonbreaking space": "Espacio fijo", +"Page break": "Salto de p\u00e1gina", +"Paste as text": "Pegar como texto", +"Preview": "Previsualizar", +"Print...": "Imprimir...", +"Save": "Guardar", +"Find": "Buscar", +"Replace with": "Reemplazar con", +"Replace": "Reemplazar", +"Replace all": "Reemplazar todo", +"Previous": "Anterior", +"Next": "Siguiente", +"Find and replace...": "Buscar y reemplazar...", +"Could not find the specified string.": "No se encuentra la cadena de texto especificada", +"Match case": "Coincidencia exacta", +"Find whole words only": "Solo palabras completas", +"Spell check": "Revisar ortograf\u00eda", +"Ignore": "Ignorar", +"Ignore all": "Ignorar todos", +"Finish": "Finalizar", +"Add to Dictionary": "A\u00f1adir al Diccionario", +"Insert table": "Insertar tabla", +"Table properties": "Propiedades de la tabla", +"Delete table": "Eliminar tabla", +"Cell": "Celda", +"Row": "Fila", +"Column": "Columna", +"Cell properties": "Propiedades de la celda", +"Merge cells": "Combinar celdas", +"Split cell": "Dividir celdas", +"Insert row before": "Insertar fila antes", +"Insert row after": "Insertar fila despu\u00e9s ", +"Delete row": "Eliminar fila", +"Row properties": "Propiedades de la fila", +"Cut row": "Cortar fila", +"Copy row": "Copiar fila", +"Paste row before": "Pegar la fila antes", +"Paste row after": "Pegar la fila despu\u00e9s", +"Insert column before": "Insertar columna antes", +"Insert column after": "Insertar columna despu\u00e9s", +"Delete column": "Eliminar columna", +"Cols": "Columnas", +"Rows": "Filas", +"Width": "Ancho", +"Height": "Alto", +"Cell spacing": "Espacio entre celdas", +"Cell padding": "Relleno de celda", +"Show caption": "Mostrar t\u00edtulo", +"Left": "Izquierda", +"Center": "Centrado", +"Right": "Derecha", +"Cell type": "Tipo de celda", +"Scope": "\u00c1mbito", +"Alignment": "Alineaci\u00f3n", +"H Align": "Alineamiento Horizontal", +"V Align": "Alineamiento Vertical", +"Top": "Arriba", +"Middle": "Centro", +"Bottom": "Abajo", +"Header cell": "Celda de la cebecera", +"Row group": "Grupo de filas", +"Column group": "Grupo de columnas", +"Row type": "Tipo de fila", +"Header": "Cabecera", +"Body": "Cuerpo", +"Footer": "Pie de p\u00e1gina", +"Border color": "Color del borde", +"Insert template...": "Insertar plantilla...", +"Templates": "Plantillas", +"Template": "Plantilla", +"Text color": "Color del texto", +"Background color": "Color de fondo", +"Custom...": "Personalizar...", +"Custom color": "Color personalizado", +"No color": "Sin color", +"Remove color": "Quitar color", +"Table of Contents": "Tabla de contenidos", +"Show blocks": "Mostrar bloques", +"Show invisible characters": "Mostrar caracteres invisibles", +"Word count": "Contar palabras", +"Words: {0}": "Palabras: {0}", +"{0} words": "{0} palabras", +"File": "Archivo", +"Edit": "Editar", +"Insert": "Insertar", +"View": "Ver", +"Format": "Formato", +"Table": "Tabla", +"Tools": "Herramientas", +"Powered by {0}": "Desarrollado por {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda", +"Image title": "Titulo de imagen", +"Border width": "Ancho de borde", +"Border style": "Estilo de borde", +"Error": "Error", +"Warn": "Advertencia", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir el elemento emergente, pulse May\u00fas+Intro", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.", +"System Font": "Fuente de sistema", +"Failed to upload image: {0}": "Fallo al cargar imagen: {0}", +"Failed to load plugin: {0} from url {1}": "Fallo al cargar complemento: {0} desde URL {1}", +"Failed to load plugin url: {0}": "Fallo al cargar URL del complemento: {0}", +"Failed to initialize plugin: {0}": "Fallo al iniciar el complemento: {0}", +"example": "ejemplo", +"Search": "Buscar", +"All": "Todo", +"Currency": "Divisa", +"Text": "Texto", +"Quotations": "Comillas", +"Mathematical": "S\u00edmbolo matem\u00e1tico", +"Extended Latin": "Latino extendido A", +"Symbols": "S\u00edmbolos", +"Arrows": "Flechas", +"User Defined": "Definido por el usuario", +"dollar sign": "signo de d\u00f3lar", +"currency sign": "signo de divisa", +"euro-currency sign": "signo de euro", +"colon sign": "signo de dos puntos", +"cruzeiro sign": "signo de cruceiro", +"french franc sign": "signo de franco franc\u00e9s", +"lira sign": "signo de lira", +"mill sign": "signo de mill", +"naira sign": "signo de naira", +"peseta sign": "signo de peseta", +"rupee sign": "signo de rupia", +"won sign": "signo de won", +"new sheqel sign": "signo de nuevo s\u00e9quel", +"dong sign": "signo de dong", +"kip sign": "signo de kip", +"tugrik sign": "signo de tugrik", +"drachma sign": "signo de dracma", +"german penny symbol": "signo de penique alem\u00e1n", +"peso sign": "signo de peso", +"guarani sign": "signo de guaran\u00ed", +"austral sign": "signo de austral", +"hryvnia sign": "signo de grivna", +"cedi sign": "signo de cedi", +"livre tournois sign": "signo de libra tornesa", +"spesmilo sign": "signo de spesmilo", +"tenge sign": "signo de tenge", +"indian rupee sign": "signo de rupia india", +"turkish lira sign": "signo de lira turca", +"nordic mark sign": "signo de marco n\u00f3rdico", +"manat sign": "signo de manat", +"ruble sign": "signo de rublo", +"yen character": "car\u00e1cter de yen", +"yuan character": "car\u00e1cter de yuan", +"yuan character, in hong kong and taiwan": "car\u00e1cter de yuan en Hong Kong y Taiw\u00e1n", +"yen\/yuan character variant one": "Variante uno de car\u00e1cter de yen\/yuan", +"Loading emoticons...": "Cargando emoticonos...", +"Could not load emoticons": "No se han podido cargar los emoticonos", +"People": "Personas", +"Animals and Nature": "Animales y naturaleza", +"Food and Drink": "Comida y bebida", +"Activity": "Actividad", +"Travel and Places": "Viajes y lugares", +"Objects": "Objetos", +"Flags": "Banderas", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sin espacios)", +"Error: Form submit field collision.": "Error: Colisi\u00f3n de campo al enviar formulario.", +"Error: No form element found.": "Error: No se encuentra ning\u00fan elemento de formulario.", +"Update": "Actualizar", +"Color swatch": "Muestrario de colores", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "P\u00farpura", +"Navy Blue": "Azul marino", +"Dark Turquoise": "Turquesa oscuro", +"Dark Green": "Verde oscuro", +"Medium Blue": "Azul medio", +"Medium Purple": "P\u00farpura medio", +"Midnight Blue": "Azul medio", +"Yellow": "Amarillo", +"Orange": "Naranja", +"Red": "Rojo", +"Light Gray": "Gris claro", +"Gray": "Gris", +"Dark Yellow": "Amarillo oscuro", +"Dark Orange": "Naranja oscuro", +"Dark Red": "Rojo oscuro", +"Medium Gray": "Gris medio", +"Dark Gray": "Gris oscuro", +"Black": "Negro", +"White": "Blanco", +"Switch to or from fullscreen mode": "Activar o desactivar modo pantalla completa", +"Open help dialog": "Abrir di\u00e1logo de ayuda", +"history": "historial", +"styles": "estilos", +"formatting": "formato", +"alignment": "alineaci\u00f3n", +"indentation": "sangr\u00eda", +"permanent pen": "bol\u00edgrafo permanente", +"comments": "comentarios", +"Anchor": "Ancla", +"Special character": "Car\u00e1cter especial", +"Code sample": "Ejemplo de c\u00f3digo", +"Color": "Color", +"Emoticons": "Emoticonos", +"Document properties": "Propiedades del documento", +"Image": "Imagen", +"Insert link": "Insertar enlace", +"Target": "Destino", +"Link": "Enlace", +"Poster": "Miniatura", +"Media": "Media", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Buscar y reemplazar", +"Whole words": "Palabras completas", +"Spellcheck": "Corrector ortogr\u00e1fico", +"Caption": "Subt\u00edtulo", +"Insert template": "Insertar plantilla" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/es_ES.js b/common/plugins/editors/tinymce/media/langs/es_ES.js new file mode 100755 index 0000000000000000000000000000000000000000..a10b46d71547ee56bf15f8caf1f6539c04b098b9 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/es_ES.js @@ -0,0 +1,370 @@ +tinymce.addI18n('es_ES',{ +"Redo": "Rehacer", +"Undo": "Deshacer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Pegar", +"Select all": "Seleccionar todo", +"New document": "Nuevo documento", +"Ok": "Ok", +"Cancel": "Cancelar", +"Visual aids": "Ayudas visuales", +"Bold": "Negrita", +"Italic": "Cursiva", +"Underline": "Subrayado", +"Strikethrough": "Tachado", +"Superscript": "Super\u00edndice", +"Subscript": "Sub\u00edndice", +"Clear formatting": "Limpiar formato", +"Align left": "Alinear a la izquierda", +"Align center": "Alinear al centro", +"Align right": "Alinear a la derecha", +"Justify": "Justificar", +"Bullet list": "Lista de vi\u00f1etas", +"Numbered list": "Lista numerada", +"Decrease indent": "Disminuir sangr\u00eda", +"Increase indent": "Incrementar sangr\u00eda", +"Close": "Cerrar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X\/C\/V de su teclado.", +"Headers": "Encabezados", +"Header 1": "Encabezado 1", +"Header 2": "Encabezado 2", +"Header 3": "Encabezado 3", +"Header 4": "Encabezado 4", +"Header 5": "Encabezado 5", +"Header 6": "Encabezado 6", +"Headings": "Encabezados", +"Heading 1": "Encabezado 1", +"Heading 2": "Encabezado 2", +"Heading 3": "Encabezado 3", +"Heading 4": "Encabezado 4", +"Heading 5": "Encabezado 5", +"Heading 6": "Encabezado 6", +"Preformatted": "Con formato previo", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "P\u00e1rrafo", +"Blockquote": "Blockquote", +"Inline": "Alineado", +"Blocks": "Bloques", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Pegar est\u00e1 ahora en modo de texto sin formato. El contenido se pegar\u00e1 ahora como texto sin formato hasta que desactive esta opci\u00f3n.", +"Fonts": "Fuentes", +"Font Sizes": "Tama\u00f1os de fuente", +"Class": "Clase", +"Browse for an image": "Buscar una imagen", +"OR": "O", +"Drop an image here": "Arrastre una imagen aqu\u00ed", +"Upload": "Cargar", +"Block": "Bloque", +"Align": "Alinear", +"Default": "Por defecto", +"Circle": "C\u00edrculo", +"Disc": "Disco", +"Square": "Cuadrado", +"Lower Alpha": "Letras min\u00fasculas", +"Lower Greek": "Griego en min\u00fasculas", +"Lower Roman": "Romano en min\u00fasculas", +"Upper Alpha": "Letras may\u00fasculas", +"Upper Roman": "Romano en may\u00fasculas", +"Anchor...": "Anclaje...", +"Name": "Nombre", +"Id": "Id.", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "El Id. debe comenzar por una letra, seguida solo de letras, n\u00fameros, guiones, puntos, dos puntos o guiones bajos.", +"You have unsaved changes are you sure you want to navigate away?": "Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?", +"Restore last draft": "Restaurar el \u00faltimo borrador", +"Special characters...": "Caracteres especiales...", +"Source code": "C\u00f3digo fuente", +"Insert\/Edit code sample": "Insertar\/editar ejemplo de c\u00f3digo", +"Language": "Idioma", +"Code sample...": "Ejemplo de c\u00f3digo...", +"Color Picker": "Selector de colores", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Izquierda a derecha", +"Right to left": "Derecha a izquierda", +"Emoticons...": "Emoticones...", +"Metadata and Document Properties": "Metadatos y propiedades del documento", +"Title": "T\u00edtulo", +"Keywords": "Palabras clave", +"Description": "Descripci\u00f3n", +"Robots": "Robots", +"Author": "Autor", +"Encoding": "Codificaci\u00f3n", +"Fullscreen": "Pantalla completa", +"Action": "Acci\u00f3n", +"Shortcut": "Acceso directo", +"Help": "Ayuda", +"Address": "Direcci\u00f3n", +"Focus to menubar": "Enfocar la barra del men\u00fa", +"Focus to toolbar": "Enfocar la barra de herramientas", +"Focus to element path": "Enfocar la ruta del elemento", +"Focus to contextual toolbar": "Enfocar la barra de herramientas contextual", +"Insert link (if link plugin activated)": "Insertar enlace (si el complemento de enlace est\u00e1 activado)", +"Save (if save plugin activated)": "Guardar (si el complemento de guardar est\u00e1 activado)", +"Find (if searchreplace plugin activated)": "Buscar (si el complemento buscar-reemplazar est\u00e1 activado)", +"Plugins installed ({0}):": "Complementos instalados ({0}):", +"Premium plugins:": "Complementos premium:", +"Learn more...": "M\u00e1s informaci\u00f3n...", +"You are using {0}": "Est\u00e1 usando {0}", +"Plugins": "Complementos", +"Handy Shortcuts": "Accesos pr\u00e1cticos", +"Horizontal line": "L\u00ednea horizontal", +"Insert\/edit image": "Insertar\/editar imagen", +"Image description": "Descripci\u00f3n de la imagen", +"Source": "C\u00f3digo fuente", +"Dimensions": "Dimensiones", +"Constrain proportions": "Restringir proporciones", +"General": "General", +"Advanced": "Avanzado", +"Style": "Estilo", +"Vertical space": "Espacio vertical", +"Horizontal space": "Espacio horizontal", +"Border": "Borde", +"Insert image": "Insertar imagen", +"Image...": "Imagen...", +"Image list": "Lista de im\u00e1genes", +"Rotate counterclockwise": "Girar a la izquierda", +"Rotate clockwise": "Girar a la derecha", +"Flip vertically": "Invertir verticalmente", +"Flip horizontally": "Invertir horizontalmente", +"Edit image": "Editar imagen", +"Image options": "Opciones de imagen", +"Zoom in": "Acercar", +"Zoom out": "Alejar", +"Crop": "Recortar", +"Resize": "Redimensionar", +"Orientation": "Orientaci\u00f3n", +"Brightness": "Brillo", +"Sharpen": "Enfocar", +"Contrast": "Contraste", +"Color levels": "Niveles de color", +"Gamma": "Gama", +"Invert": "Invertir", +"Apply": "Aplicar", +"Back": "Atr\u00e1s", +"Insert date\/time": "Insertar fecha\/hora", +"Date\/time": "Fecha\/hora", +"Insert\/Edit Link": "Insertar\/editar enlace", +"Insert\/edit link": "Insertar\/editar enlace", +"Text to display": "Texto que mostrar", +"Url": "URL", +"Open link in...": "Abrir enlace en...", +"Current window": "Ventana actual", +"None": "Ninguno", +"New window": "Nueva ventana", +"Remove link": "Quitar enlace", +"Anchors": "Anclajes", +"Link...": "Enlace...", +"Paste or type a link": "Pegue o escriba un enlace", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "La URL que ha introducido parece ser una direcci\u00f3n de correo electr\u00f3nico. \u00bfQuiere a\u00f1adir el prefijo necesario mailto:?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "La URL que ha introducido parece ser un enlace externo. \u00bfQuiere a\u00f1adir el prefijo necesario http:\/\/?", +"Link list": "Lista de enlaces", +"Insert video": "Insertar v\u00eddeo", +"Insert\/edit video": "Insertar\/editar v\u00eddeo", +"Insert\/edit media": "Insertar\/editar medio", +"Alternative source": "Enlace alternativo", +"Alternative source URL": "Origen de URL alternativo", +"Media poster (Image URL)": "P\u00f3ster de medio (URL de imagen)", +"Paste your embed code below:": "Pegue el c\u00f3digo para insertar a continuaci\u00f3n:", +"Embed": "Insertar", +"Media...": "Medios...", +"Nonbreaking space": "Espacio de no separaci\u00f3n", +"Page break": "Salto de p\u00e1gina", +"Paste as text": "Pegar como texto", +"Preview": "Previsualizar", +"Print...": "Imprimir...", +"Save": "Guardar", +"Find": "Buscar", +"Replace with": "Reemplazar por", +"Replace": "Reemplazar", +"Replace all": "Reemplazar todo", +"Previous": "Anterior", +"Next": "Siguiente", +"Find and replace...": "Buscar y reemplazar...", +"Could not find the specified string.": "No se encuentra la cadena especificada.", +"Match case": "Coincidir may\u00fasculas y min\u00fasculas", +"Find whole words only": "Solo palabras completas", +"Spell check": "Revisar ortograf\u00eda", +"Ignore": "Ignorar", +"Ignore all": "Ignorar todo", +"Finish": "Fin\u00e9s", +"Add to Dictionary": "A\u00f1adir al Diccionario", +"Insert table": "Insertar tabla", +"Table properties": "Propiedades de la tabla", +"Delete table": "Eliminar tabla", +"Cell": "Celda", +"Row": "Fila", +"Column": "Columna", +"Cell properties": "Propiedades de la celda", +"Merge cells": "Combinar celdas", +"Split cell": "Dividir celda", +"Insert row before": "Insertar fila antes", +"Insert row after": "Insertar fila despu\u00e9s", +"Delete row": "Eliminar fila", +"Row properties": "Propiedades de la fila", +"Cut row": "Cortar fila", +"Copy row": "Copiar fila", +"Paste row before": "Pegar la fila antes", +"Paste row after": "Pegar la fila despu\u00e9s", +"Insert column before": "Insertar columna antes", +"Insert column after": "Insertar columna despu\u00e9s", +"Delete column": "Eliminar columna", +"Cols": "Columnas", +"Rows": "Filas", +"Width": "Ancho", +"Height": "Altura", +"Cell spacing": "Espacio entre celdas", +"Cell padding": "Relleno de celda", +"Show caption": "Mostrar t\u00edtulo", +"Left": "Izquierda", +"Center": "Centro", +"Right": "Derecha", +"Cell type": "Tipo de celda", +"Scope": "\u00c1mbito", +"Alignment": "Alineaci\u00f3n", +"H Align": "Alineaci\u00f3n horizontal", +"V Align": "Alineaci\u00f3n vertical", +"Top": "Superior", +"Middle": "Central", +"Bottom": "Inferior", +"Header cell": "Celda de encabezado", +"Row group": "Grupo de filas", +"Column group": "Grupo de columnas", +"Row type": "Tipo de fila", +"Header": "Encabezado", +"Body": "Cuerpo", +"Footer": "Pie de p\u00e1gina", +"Border color": "Color de borde", +"Insert template...": "Insertar plantilla...", +"Templates": "Plantillas", +"Template": "Plantilla", +"Text color": "Color del texto", +"Background color": "Color de fondo", +"Custom...": "Personalizado...", +"Custom color": "Color personalizado", +"No color": "Sin color", +"Remove color": "Quitar color", +"Table of Contents": "Tabla de contenido", +"Show blocks": "Mostrar bloques", +"Show invisible characters": "Mostrar caracteres invisibles", +"Word count": "Contar palabras", +"Words: {0}": "Palabras: {0}", +"{0} words": "{0} palabras", +"File": "Archivo", +"Edit": "Editar", +"Insert": "Insertar", +"View": "Ver", +"Format": "Formato", +"Table": "Tabla", +"Tools": "Herramientas", +"Powered by {0}": "Con tecnolog\u00eda de {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto enriquecido. Pulse ALT-F9 para el men\u00fa. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para la ayuda.", +"Image title": "Titulo de imagen", +"Border width": "Ancho de borde", +"Border style": "Estilo de borde", +"Error": "Error", +"Warn": "Advertencia", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir el elemento emergente, pulse May\u00fas+Intro", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.", +"System Font": "Fuente de sistema", +"Failed to upload image: {0}": "Fallo al cargar imagen: {0}", +"Failed to load plugin: {0} from url {1}": "Fallo al cargar complemento: {0} desde URL {1}", +"Failed to load plugin url: {0}": "Fallo al cargar URL del complemento: {0}", +"Failed to initialize plugin: {0}": "Fallo al iniciar el complemento: {0}", +"example": "ejemplo", +"Search": "Buscar", +"All": "Todo", +"Currency": "Divisa", +"Text": "Texto", +"Quotations": "Comillas", +"Mathematical": "S\u00edmbolo matem\u00e1tico", +"Extended Latin": "Latino extendido A", +"Symbols": "S\u00edmbolos", +"Arrows": "Flechas", +"User Defined": "Definido por el usuario", +"dollar sign": "signo de d\u00f3lar", +"currency sign": "signo de divisa", +"euro-currency sign": "signo de euro", +"colon sign": "signo de dos puntos", +"cruzeiro sign": "signo de cruceiro", +"french franc sign": "signo de franco franc\u00e9s", +"lira sign": "signo de lira", +"mill sign": "signo de mill", +"naira sign": "signo de naira", +"peseta sign": "signo de peseta", +"rupee sign": "signo de rupia", +"won sign": "signo de won", +"new sheqel sign": "signo de nuevo s\u00e9quel", +"dong sign": "signo de dong", +"kip sign": "signo de kip", +"tugrik sign": "signo de tugrik", +"drachma sign": "signo de dracma", +"german penny symbol": "signo de penique alem\u00e1n", +"peso sign": "signo de peso", +"guarani sign": "signo de guaran\u00ed", +"austral sign": "signo de austral", +"hryvnia sign": "signo de grivna", +"cedi sign": "signo de cedi", +"livre tournois sign": "signo de libra tornesa", +"spesmilo sign": "signo de spesmilo", +"tenge sign": "signo de tenge", +"indian rupee sign": "signo de rupia india", +"turkish lira sign": "signo de lira turca", +"nordic mark sign": "signo de marco n\u00f3rdico", +"manat sign": "signo de manat", +"ruble sign": "signo de rublo", +"yen character": "car\u00e1cter de yen", +"yuan character": "car\u00e1cter de yuan", +"yuan character, in hong kong and taiwan": "car\u00e1cter de yuan en Hong Kong y Taiw\u00e1n", +"yen\/yuan character variant one": "Variante uno de car\u00e1cter de yen\/yuan", +"Loading emoticons...": "Cargando emoticonos...", +"Could not load emoticons": "No se han podido cargar los emoticonos", +"People": "Personas", +"Animals and Nature": "Animales y naturaleza", +"Food and Drink": "Comida y bebida", +"Activity": "Actividad", +"Travel and Places": "Viajes y lugares", +"Objects": "Objetos", +"Flags": "Banderas", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sin espacios)", +"Error: Form submit field collision.": "Error: Colisi\u00f3n de campo al enviar formulario.", +"Error: No form element found.": "Error: No se encuentra ning\u00fan elemento de formulario.", +"Update": "Actualizar", +"Color swatch": "Muestrario de colores", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "P\u00farpura", +"Navy Blue": "Azul marino", +"Dark Turquoise": "Turquesa oscuro", +"Dark Green": "Verde oscuro", +"Medium Blue": "Azul medio", +"Medium Purple": "P\u00farpura medio", +"Midnight Blue": "Azul medio", +"Yellow": "Amarillo", +"Orange": "Naranja", +"Red": "Rojo", +"Light Gray": "Gris claro", +"Gray": "Gris", +"Dark Yellow": "Amarillo oscuro", +"Dark Orange": "Naranja oscuro", +"Dark Red": "Rojo oscuro", +"Medium Gray": "Gris medio", +"Dark Gray": "Gris oscuro", +"Black": "Negro", +"White": "Blanco", +"Switch to or from fullscreen mode": "Activar o desactivar modo pantalla completa", +"Open help dialog": "Abrir di\u00e1logo de ayuda", +"history": "historial", +"styles": "estilos", +"formatting": "formato", +"alignment": "alineaci\u00f3n", +"indentation": "sangr\u00eda", +"permanent pen": "bol\u00edgrafo permanente", +"comments": "comentarios" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/es_MX.js b/common/plugins/editors/tinymce/media/langs/es_MX.js new file mode 100755 index 0000000000000000000000000000000000000000..5b112d501d027d2b8578e7ac249b77e457fb2aab --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/es_MX.js @@ -0,0 +1,389 @@ +tinymce.addI18n('es_MX',{ +"Redo": "Rehacer", +"Undo": "Deshacer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Pegar", +"Select all": "Seleccionar todo", +"New document": "Nuevo documento", +"Ok": "Aceptar", +"Cancel": "Cancelar", +"Visual aids": "Ayudas visuales", +"Bold": "Negrita", +"Italic": "Cursiva", +"Underline": "Subrayado", +"Strikethrough": "Tachado", +"Superscript": "Super\u00edndice", +"Subscript": "Sub\u00edndice", +"Clear formatting": "Borrar formato", +"Align left": "Alinear a la izquierda", +"Align center": "Alinear al centro", +"Align right": "Alinear a la derecha", +"Justify": "Justificar", +"Bullet list": "Lista de vi\u00f1etas", +"Numbered list": "Lista numerada", +"Decrease indent": "Reducir sangr\u00eda", +"Increase indent": "Aumentar sangr\u00eda", +"Close": "Cerrar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Su navegador no admite el acceso directo al portapapeles. Utilice los m\u00e9todos abreviados de teclado Ctrl+ X\/C\/V.", +"Headers": "Encabezados", +"Header 1": "Encabezado 1", +"Header 2": "Encabezado 2", +"Header 3": "Encabezado 3", +"Header 4": "Encabezado 4", +"Header 5": "Encabezado 5", +"Header 6": "Encabezado 6", +"Headings": "T\u00edtulos", +"Heading 1": "T\u00edtulo 1", +"Heading 2": "T\u00edtulo 2", +"Heading 3": "T\u00edtulo 3", +"Heading 4": "T\u00edtulo 4", +"Heading 5": "T\u00edtulo 5", +"Heading 6": "T\u00edtulo 6", +"Preformatted": "Con formato previo", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "P\u00e1rrafo", +"Blockquote": "Blockquote", +"Inline": "En l\u00ednea", +"Blocks": "Bloques", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Se pegar\u00e1 en texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.", +"Fonts": "Fuentes", +"Font Sizes": "Tama\u00f1os de fuente", +"Class": "Clase", +"Browse for an image": "Buscar una imagen", +"OR": "O", +"Drop an image here": "Soltar una imagen aqu\u00ed", +"Upload": "Cargar", +"Block": "Bloque", +"Align": "Alinear", +"Default": "Por defecto", +"Circle": "Circulo", +"Disc": "Disco", +"Square": "Cuadro", +"Lower Alpha": "Alfa min\u00fascula", +"Lower Greek": "Griega min\u00fascula", +"Lower Roman": "Romano min\u00fascula", +"Upper Alpha": "Alfa may\u00fascula", +"Upper Roman": "May\u00fascula Romana", +"Anchor...": "Marcador...", +"Name": "Nombre", +"Id": "Identificador", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "El Identificador debe comenzar con una letra, seguido solo por letras, n\u00fameros, puntos, guiones medios o guiones bajos. ", +"You have unsaved changes are you sure you want to navigate away?": "No se han guardado los cambios. \u00bfSeguro que desea abandonar la p\u00e1gina?", +"Restore last draft": "Restaurar el \u00faltimo borrador", +"Special characters...": "Caracteres especiales...", +"Source code": "C\u00f3digo fuente", +"Insert\/Edit code sample": "Insertar\/Editar c\u00f3digo muestra", +"Language": "idioma", +"Code sample...": "Ejemplo de c\u00f3digo...", +"Color Picker": "Selector de colores", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Izquierda a derecha", +"Right to left": "Derecha a Izquierda", +"Emoticons...": "Emoticonos...", +"Metadata and Document Properties": "Metadatos y propiedades del documento", +"Title": "T\u00edtulo", +"Keywords": "Palabras clave", +"Description": "Descripci\u00f3n ", +"Robots": "Robots", +"Author": "Autor", +"Encoding": "Codificaci\u00f3n", +"Fullscreen": "Pantalla completa", +"Action": "Acci\u00f3n", +"Shortcut": "Atajo", +"Help": "Ayuda", +"Address": "Direcci\u00f3n", +"Focus to menubar": "Enfocar en barra de menu", +"Focus to toolbar": "Enfocar en barra de herramientas", +"Focus to element path": "Enfocar ruta del elemento", +"Focus to contextual toolbar": "Enfocar en barra de herramientas contextual", +"Insert link (if link plugin activated)": "Insertar enlace (si enlace del plugin est\u00e1 activo)", +"Save (if save plugin activated)": "Guardar (si el plugin guardar est\u00e1 activo)", +"Find (if searchreplace plugin activated)": "Buscar (si el plugin buscar\/reemplazar est\u00e1 activo)", +"Plugins installed ({0}):": "Plugins instalados ({0}):", +"Premium plugins:": "Plugins premium:", +"Learn more...": "Aprende m\u00e1s...", +"You are using {0}": "est\u00e1s usando {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Atajos \u00fatiles", +"Horizontal line": "L\u00ednea Horizontal", +"Insert\/edit image": "Insertar\/editar imagen", +"Image description": "Descripci\u00f3n de imagen", +"Source": "Origen", +"Dimensions": "Dimensiones", +"Constrain proportions": "Restringir proporciones", +"General": "General", +"Advanced": "Avanzado", +"Style": "Estilo", +"Vertical space": "Espacio vertical", +"Horizontal space": "Espacio horizontal", +"Border": "Borde", +"Insert image": "Insertar imagen", +"Image...": "Imagen...", +"Image list": "Lista de im\u00e1genes", +"Rotate counterclockwise": "Rotar en sentido contrario a las manecillas", +"Rotate clockwise": "Rotar en sentido de las manecillas", +"Flip vertically": "Voltear verticalmente", +"Flip horizontally": "Volter horizontalmente", +"Edit image": "Editar imagen", +"Image options": "Opciones de la imagen", +"Zoom in": "Acercar", +"Zoom out": "Alejar", +"Crop": "Recortar", +"Resize": "Cambiar tama\u00f1o", +"Orientation": "Orientaci\u00f3n", +"Brightness": "Brillo", +"Sharpen": "Nitidez", +"Contrast": "Contraste", +"Color levels": "Niveles de Color", +"Gamma": "Gamma", +"Invert": "Invertir", +"Apply": "Aplicar", +"Back": "Regresar", +"Insert date\/time": "Insertar fecha\/hora", +"Date\/time": "Fecha\/hora", +"Insert\/Edit Link": "Insertar\/editar v\u00ednculo", +"Insert\/edit link": "Inserta\/editar enlace", +"Text to display": "Texto a mostrar", +"Url": "Url", +"Open link in...": "Abrir v\u00ednculo en...", +"Current window": "Ventana actual", +"None": "Ninguno", +"New window": "Nueva ventana", +"Remove link": "Eliminar elnace", +"Anchors": "Anclas", +"Link...": "V\u00ednculo...", +"Paste or type a link": "Pega o escribe un enlace", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "El URL que ha insertado tiene formato de correo electr\u00f3nico. \u00bfDesea agregar con prefijo \"mailto:\"?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "El URL que ha ingresado es un enlace externo. \u00bfDesea agregar el prefijo \"http:\/\/\"?", +"Link list": "Lista de enlaces", +"Insert video": "Insertar video", +"Insert\/edit video": "Insertar\/editar video", +"Insert\/edit media": "Insertar\/editar multimedia", +"Alternative source": "Fuente alternativa", +"Alternative source URL": "URL de origen alternativo", +"Media poster (Image URL)": "P\u00f3ster multimedia (URL de la imagen)", +"Paste your embed code below:": "Pegue su c\u00f3digo de inserci\u00f3n abajo:", +"Embed": "Incrustar", +"Media...": "Elemento multimedia...", +"Nonbreaking space": "Espacio de no separaci\u00f3n", +"Page break": "Salto de p\u00e1gina ", +"Paste as text": "Copiar como texto", +"Preview": "Vista previa ", +"Print...": "Imprimir...", +"Save": "Guardar", +"Find": "Buscar", +"Replace with": "Remplazar con", +"Replace": "Remplazar", +"Replace all": "Remplazar todo", +"Previous": "Anterior", +"Next": "Siguiente", +"Find and replace...": "Buscar y reemplazar...", +"Could not find the specified string.": "No se ha encontrado la cadena especificada.", +"Match case": "Coincidencia", +"Find whole words only": "Buscar solo palabras completas", +"Spell check": "Corrector ortogr\u00e1fico", +"Ignore": "Ignorar", +"Ignore all": "Ignorar todo", +"Finish": "Terminar", +"Add to Dictionary": "Agregar al diccionario ", +"Insert table": "Insertar tabla", +"Table properties": "Propiedades de tabla", +"Delete table": "Eliminar tabla", +"Cell": "Celda", +"Row": "Rengl\u00f3n ", +"Column": "Columna", +"Cell properties": "Propiedades de celda", +"Merge cells": "Unir celdas", +"Split cell": "Dividir celdas", +"Insert row before": "Insertar rengl\u00f3n antes", +"Insert row after": "Insertar rengl\u00f3n despu\u00e9s", +"Delete row": "Eliminar rengl\u00f3n ", +"Row properties": "Propiedades del rengl\u00f3n ", +"Cut row": "Cortar renglon", +"Copy row": "Copiar rengl\u00f3n ", +"Paste row before": "Pegar rengl\u00f3n antes", +"Paste row after": "Pegar rengl\u00f3n despu\u00e9s", +"Insert column before": "Insertar columna antes", +"Insert column after": "Insertar columna despu\u00e9s", +"Delete column": "Eliminar columna", +"Cols": "Columnas", +"Rows": "Renglones ", +"Width": "Ancho", +"Height": "Alto", +"Cell spacing": "Espacio entre celdas", +"Cell padding": "Relleno de la celda", +"Show caption": "Mostrar leyenda", +"Left": "Izquierda", +"Center": "Centro", +"Right": "Derecha", +"Cell type": "Tipo de celda", +"Scope": "Alcance", +"Alignment": "Alineaci\u00f3n ", +"H Align": "Alineaci\u00f3n Horizontal", +"V Align": "Alineaci\u00f3n Vertical", +"Top": "Arriba", +"Middle": "Centrado", +"Bottom": "Abajo", +"Header cell": "Celda de encabezado", +"Row group": "Grupo de renglones", +"Column group": "Grupo de columnas", +"Row type": "Tipo de rengl\u00f3n ", +"Header": "Encabezado", +"Body": "Cuerpo", +"Footer": "Pie", +"Border color": "Color del borde", +"Insert template...": "Insertar plantilla...", +"Templates": "Plantilla", +"Template": "Plantilla", +"Text color": "Color de letra", +"Background color": "Color de fondo", +"Custom...": "Personalizar", +"Custom color": "Perzonalizar color", +"No color": "Sin color", +"Remove color": "Eliminar color", +"Table of Contents": "Tabla de Contenidos", +"Show blocks": "Mostrar bloques", +"Show invisible characters": "Mostrar caracteres invisibles", +"Word count": "Contar palabras", +"Words: {0}": "Palabras:{0}", +"{0} words": "{0} palabras", +"File": "Archivo", +"Edit": "Editar", +"Insert": "Insertar", +"View": "Vistas", +"Format": "Formato", +"Table": "Tabla", +"Tools": "Herramientas", +"Powered by {0}": "Creado con {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Presione dentro del \u00e1rea de texto ALT-F9 para invocar el men\u00fa, ALT-F10 para la barra de herramientas y ALT-0 para la ayuda.", +"Image title": "T\u00edtulo de la imagen", +"Border width": "Ancho del borde", +"Border style": "Estilo del borde", +"Error": "Error", +"Warn": "Advertencia", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir la ventana emergente, pulse May\u00fas+Intro", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea de texto enriquecido. Pulse ALT-0 para obtener ayuda.", +"System Font": "Fuente del sistema", +"Failed to upload image: {0}": "Error al cargar la imagen: {0}", +"Failed to load plugin: {0} from url {1}": "Error al cargar el complemento: {0} desde la url {1}", +"Failed to load plugin url: {0}": "Error al cargar la url del complemento: {0}", +"Failed to initialize plugin: {0}": "Error al inicializar el complemento: {0}", +"example": "ejemplo", +"Search": "Buscar", +"All": "Todo", +"Currency": "Moneda", +"Text": "Texto", +"Quotations": "Comillas", +"Mathematical": "Matem\u00e1ticos", +"Extended Latin": "Lat\u00edn extendido", +"Symbols": "S\u00edmbolos", +"Arrows": "Flechas", +"User Defined": "Definido por el usuario", +"dollar sign": "signo de d\u00f3lar", +"currency sign": "signo de moneda", +"euro-currency sign": "signo de euro", +"colon sign": "signo del col\u00f3n", +"cruzeiro sign": "signo del cruzeiro", +"french franc sign": "signo del franco franc\u00e9s", +"lira sign": "signo de la lira", +"mill sign": "signo de mil", +"naira sign": "signo del naira", +"peseta sign": "signo de la peseta", +"rupee sign": "signo de la rupia", +"won sign": "signo del won", +"new sheqel sign": "signo de nuevo shequel", +"dong sign": "signo del dong", +"kip sign": "signo del kip", +"tugrik sign": "signo del tugrik", +"drachma sign": "signo del dracma", +"german penny symbol": "signo del penique alem\u00e1n", +"peso sign": "signo del peso", +"guarani sign": "signo del guaran\u00ed", +"austral sign": "signo del austral", +"hryvnia sign": "signo de hryvnia", +"cedi sign": "signo de cedi", +"livre tournois sign": "signo de livre tournois", +"spesmilo sign": "signo de spesmilo", +"tenge sign": "signo de tenge", +"indian rupee sign": "signo de la rupia india", +"turkish lira sign": "signo de la lira turca", +"nordic mark sign": "signo del marco n\u00f3rdico", +"manat sign": "signo de manat", +"ruble sign": "signo de rublo", +"yen character": "car\u00e1cter del yen", +"yuan character": "car\u00e1cter del yuan", +"yuan character, in hong kong and taiwan": "car\u00e1cter del yuan, en Hong Kong y Taiw\u00e1n", +"yen\/yuan character variant one": "variante uno del car\u00e1cter del yen\/yuan", +"Loading emoticons...": "Cargando emoticonos...", +"Could not load emoticons": "No se pudieron cargar los emoticonos", +"People": "Personas", +"Animals and Nature": "Animales y naturaleza", +"Food and Drink": "Comida y bebida", +"Activity": "Actividad", +"Travel and Places": "Viajes y lugares", +"Objects": "Objetos", +"Flags": "Banderas", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sin espacios)", +"Error: Form submit field collision.": "Error: colisi\u00f3n de campo env\u00edo de formulario.", +"Error: No form element found.": "Error: no se encontr\u00f3 ning\u00fan elemento de formulario.", +"Update": "Actualizar", +"Color swatch": "Muestrario de colores", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "Morado", +"Navy Blue": "Azul marino", +"Dark Turquoise": "Turquesa oscuro", +"Dark Green": "Verde oscuro", +"Medium Blue": "Azul medio", +"Medium Purple": "Morado medio", +"Midnight Blue": "Azul noche", +"Yellow": "Amarillo", +"Orange": "Anaranjado", +"Red": "Rojo", +"Light Gray": "Gris claro", +"Gray": "Gris", +"Dark Yellow": "Amarillo oscuro", +"Dark Orange": "Anaranjado oscuro", +"Dark Red": "Rojo oscuro", +"Medium Gray": "Gris medio", +"Dark Gray": "Gris oscuro", +"Black": "Negro", +"White": "Blanco", +"Switch to or from fullscreen mode": "Cambiar a modo de pantalla completa o salir de \u00e9l", +"Open help dialog": "Abrir di\u00e1logo de ayuda", +"history": "historial", +"styles": "estilos", +"formatting": "formato", +"alignment": "alineaci\u00f3n", +"indentation": "sangr\u00eda", +"permanent pen": "l\u00e1piz permanente", +"comments": "comentarios", +"Anchor": "Anclar", +"Special character": "Caracter especial", +"Code sample": "C\u00f3digo muestra", +"Color": "Color", +"Emoticons": "Emoticones", +"Document properties": "Propiedades del documento", +"Image": "Imagen", +"Insert link": "Insertar enlace", +"Target": "Objetivo", +"Link": "Enlace", +"Poster": "Cartel", +"Media": "Multimedia", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Buscar y reemplazar", +"Whole words": "Palabras completas", +"Spellcheck": "Revisi\u00f3n ortogr\u00e1fica", +"Caption": "Subt\u00edtulo", +"Insert template": "Insertar plantilla" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/eu.js b/common/plugins/editors/tinymce/media/langs/eu.js new file mode 100755 index 0000000000000000000000000000000000000000..97e2e83ac0a2e620ac64424de1ca1cf69d6b33b1 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/eu.js @@ -0,0 +1,389 @@ +tinymce.addI18n('eu',{ +"Redo": "Berregin", +"Undo": "Desegin", +"Cut": "Ebaki", +"Copy": "Kopiatu", +"Paste": "Itsatsi", +"Select all": "Hautatu dena", +"New document": "Dokumentu berria", +"Ok": "Ondo", +"Cancel": "Ezeztatu", +"Visual aids": "Laguntza bisualak", +"Bold": "Lodia", +"Italic": "Etzana", +"Underline": "Azpimarratua", +"Strikethrough": "Marratua", +"Superscript": "Goi-indizea", +"Subscript": "Azpiindizea", +"Clear formatting": "Ezabatu formatua", +"Align left": "Lerrokatu ezkerrean", +"Align center": "Lerrokatu erdian", +"Align right": "Lerrokatu eskuinean", +"Justify": "Justifikatuta", +"Bullet list": "Bulet zerrenda", +"Numbered list": "Zenbaki-zerrenda", +"Decrease indent": "Txikitu koska", +"Increase indent": "Handitu koska", +"Close": "Itxi", +"Formats": "Formatuak", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Zure nabigatzaileak ez du arbela zuzenean erabiltzeko euskarririk. Mesedez erabili CTRL+X\/C\/V teklatuko lasterbideak.", +"Headers": "Goiburuak", +"Header 1": "1. goiburua", +"Header 2": "2. goiburua", +"Header 3": "3. goiburua", +"Header 4": "4. goiburua", +"Header 5": "5. goiburua", +"Header 6": "6. goiburua", +"Headings": "Izenburuak", +"Heading 1": "1. izenburua", +"Heading 2": "2. izenburua", +"Heading 3": "3. izenburua", +"Heading 4": "4. izenburua", +"Heading 5": "5. izenburua", +"Heading 6": "6. izenburua", +"Preformatted": "Aurreformateatuta", +"Div": "Div", +"Pre": "Pre", +"Code": "Kodea", +"Paragraph": "Paragrafoa", +"Blockquote": "Blockquote", +"Inline": "Txertatuta", +"Blocks": "Blokeak", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Itsatsi testu arrunt moduan dago orain. Edukiak testu arruntak bezala itsatsiko dira aukera hau itzaltzen duzunera arte.", +"Fonts": "Letra-motak", +"Font Sizes": "Letra-tamainak", +"Class": "Klasea", +"Browse for an image": "Irudia arakatu", +"OR": "EDO", +"Drop an image here": "Irudia hona ekarri", +"Upload": "Kargatu", +"Block": "Blokea", +"Align": "Lerrokatu", +"Default": "Lehenetstia", +"Circle": "Zirkulua", +"Disc": "Diskoa", +"Square": "Karratua", +"Lower Alpha": "Behe alfa", +"Lower Greek": "Behe grekoa", +"Lower Roman": "Behe erromatarra", +"Upper Alpha": "Goi alfa", +"Upper Roman": "Goi erromatarra", +"Anchor...": "Aingura...", +"Name": "Izena", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Ida hizki batekin hasi behar da, jarraian hizkiak, zenbakiak, gidoiak, puntuak, bi-puntu edo azpiko marrak bakarrik izan ditzake.", +"You have unsaved changes are you sure you want to navigate away?": "Gorde gabeko aldaketak dituzu, zihur zaude hemendik irten nahi duzula?", +"Restore last draft": "Leheneratu azken zirriborroa", +"Special characters...": "Karaktere bereziak...", +"Source code": "Iturburu-kodea", +"Insert\/Edit code sample": "Txertatu\/editatu kode adibidea", +"Language": "Hizkuntza", +"Code sample...": "Kode adibidea...", +"Color Picker": "Kolore-hautatzailea", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Ezkerretik eskuinera", +"Right to left": "Eskuinetik ezkerrera", +"Emoticons...": "Emotikonoak...", +"Metadata and Document Properties": "Metadatuak eta dokumentuaren propietateak", +"Title": "Titulua", +"Keywords": "Hitz gakoak", +"Description": "Deskribapena", +"Robots": "Robotak", +"Author": "Egilea", +"Encoding": "Encoding", +"Fullscreen": "Pantaila osoa", +"Action": "Akzioa", +"Shortcut": "Laster tekla", +"Help": "Laguntza", +"Address": "Helbidea", +"Focus to menubar": "Fokoa menu-barrara eraman", +"Focus to toolbar": "Fokoa tresna-barrara eraman", +"Focus to element path": "Fokoa elementuaren bidera eraman", +"Focus to contextual toolbar": "Fokoa kontestuko tresna-barrara eraman", +"Insert link (if link plugin activated)": "Lotura txertatu (lotura plugina aktibatuta badago)", +"Save (if save plugin activated)": "Gorde (gordetzeko plugina aktibatuta badago)", +"Find (if searchreplace plugin activated)": "Bilatu (bilatuordezkatu plugina instalatuta badago)", +"Plugins installed ({0}):": "Instalatutako pluginak ({0}):", +"Premium plugins:": "Premium pluginak:", +"Learn more...": "Gehiago ikasi...", +"You are using {0}": "{0} erabiltzen ari zara", +"Plugins": "Pluginak", +"Handy Shortcuts": "Laster-tekla erabilgarriak", +"Horizontal line": "Marra horizontala", +"Insert\/edit image": "Irudia txertatu\/editatu", +"Image description": "Irudiaren deskribapena", +"Source": "Iturburua", +"Dimensions": "Neurriak", +"Constrain proportions": "Zerraditu proportzioak", +"General": "Orokorra", +"Advanced": "Aurreratua", +"Style": "Estiloa", +"Vertical space": "Hutsune bertikala", +"Horizontal space": "Hutsune horizontala", +"Border": "Ertza", +"Insert image": "Irudia txertatu", +"Image...": "Irudia...", +"Image list": "Irudi zerrenda", +"Rotate counterclockwise": "Erlojuaren aurkako eran biratu", +"Rotate clockwise": "Erlojuaren eran biratu", +"Flip vertically": "Bertikalki irauli", +"Flip horizontally": "Horizontalki irauli", +"Edit image": "Irudia editatu", +"Image options": "Irudiaren aukerak", +"Zoom in": "Zooma handiagotu", +"Zoom out": "Zooma txikiagotu", +"Crop": "Moztu", +"Resize": "Tamaina aldatu", +"Orientation": "Orientazioa", +"Brightness": "Distira", +"Sharpen": "Zorroztu", +"Contrast": "Kontrastatu", +"Color levels": "Kolore mailak", +"Gamma": "Gamma", +"Invert": "Biratu", +"Apply": "Gorde", +"Back": "Atzera", +"Insert date\/time": "Data\/ordua txertatu", +"Date\/time": "Data\/ordua", +"Insert\/Edit Link": "Lotura txertatu\/aldatu...", +"Insert\/edit link": "Esteka txertatu\/editatu", +"Text to display": "Bistaratzeko testua", +"Url": "Url", +"Open link in...": "Lotura hemen ireki...", +"Current window": "Leiho hau", +"None": "Bat ere ez", +"New window": "Lehio berria", +"Remove link": "Kendu esteka", +"Anchors": "Estekak", +"Link...": "Esteka...", +"Paste or type a link": "Itsatsu edo idatzi lotura", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Sartu duzun URL-ak e-posta helbidea dela dirudi. Nahi duzu dagokion mailto: aurrizkia gehitzea?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Sartu duzun URL-ak kanpoko esteka dela dirudi. Nahi duzu dagokion http:\/\/ aurrizkia gehitzea?", +"Link list": "Loturen zerrenda", +"Insert video": "Bideoa txertatu", +"Insert\/edit video": "Bideoa txertatu\/editatu", +"Insert\/edit media": "Media txertatu\/editatu", +"Alternative source": "Iturburu alternatiboa", +"Alternative source URL": "Ordezko jatorri URL-a", +"Media poster (Image URL)": "Media posterra (irudiaren URL-a)", +"Paste your embed code below:": "Itsatsi hemen zure enkapsulatzeko kodea:", +"Embed": "Kapsulatu", +"Media...": "Multimedia...", +"Nonbreaking space": "Zuriune zatiezina", +"Page break": "Orrialde-jauzia", +"Paste as text": "Itsatsi testu bezala", +"Preview": "Aurrebista", +"Print...": "Inprimatu...", +"Save": "Gorde", +"Find": "Bilatu", +"Replace with": "Honekin ordeztu", +"Replace": "Ordeztu", +"Replace all": "Ordeztu dena", +"Previous": "Aurrekoa", +"Next": "Hurrengoa", +"Find and replace...": "Bilatu eta ordezkatu...", +"Could not find the specified string.": "Ezin izan da zehaztutako katea aurkitu.", +"Match case": "Maiuskula\/minuskula", +"Find whole words only": "Hitz osoak bakarrik bilatu", +"Spell check": "Hizkuntza zuzenketa", +"Ignore": "Ez ikusi", +"Ignore all": "Ez ikusi guztia", +"Finish": "Amaitu", +"Add to Dictionary": "Hiztegira gehitu", +"Insert table": "Txertatu taula", +"Table properties": "Taularen propietateak", +"Delete table": "Taula ezabatu", +"Cell": "Gelaxka", +"Row": "Errenkada", +"Column": "Zutabea", +"Cell properties": "Gelaxkaren propietateak", +"Merge cells": "Batu gelaxkak", +"Split cell": "Banatu gelaxkak", +"Insert row before": "Txertatu errenkada aurretik", +"Insert row after": "Txertatu errenkada ostean", +"Delete row": "Ezabatu errenkada", +"Row properties": "Errenkadaren propietateak", +"Cut row": "Ebaki errenkada", +"Copy row": "Kopiatu errenkada", +"Paste row before": "Itsatsi errenkada aurretik", +"Paste row after": "Itsatsi errenkada ostean", +"Insert column before": "Txertatu zutabe aurretik", +"Insert column after": "Txertatu zutabea ostean", +"Delete column": "Ezabatu zutabea", +"Cols": "Zutabeak", +"Rows": "Errenkadak", +"Width": "Zabalera", +"Height": "Altuera", +"Cell spacing": "Gelaxka arteko tartea", +"Cell padding": "Gelaxken betegarria", +"Show caption": "Erakutsi irudi-oina erakutsi", +"Left": "Ezkerra", +"Center": "Erdia", +"Right": "Eskuina", +"Cell type": "Gelaxka mota", +"Scope": "Esparrua", +"Alignment": "Lerrokatzea", +"H Align": "Lerrokatze horizontala", +"V Align": "Lerrokatze bertikala", +"Top": "Goian", +"Middle": "Erdian", +"Bottom": "Behean", +"Header cell": "Goiburuko gelaxka", +"Row group": "Lerro taldea", +"Column group": "Zutabe taldea", +"Row type": "Lerro mota", +"Header": "Goiburua", +"Body": "Gorputza", +"Footer": "Oina", +"Border color": "Inguruko marraren kolorea", +"Insert template...": "Txantiloia txertatu...", +"Templates": "Txantiloiak", +"Template": "Txantiloia", +"Text color": "Testuaren kolorea", +"Background color": "Atzeko kolorea", +"Custom...": "Pertsonalizatu", +"Custom color": "Pertsonalizatutako kolorea", +"No color": "Kolorerik ez", +"Remove color": "Kendu kolorea", +"Table of Contents": "Edukien taula", +"Show blocks": "Erakutsi blokeak", +"Show invisible characters": "Erakutsi karaktere izkutuak", +"Word count": "Hizki-kontaketa", +"Words: {0}": "Hitzak: {0}", +"{0} words": "{0} hitz", +"File": "Fitxategia", +"Edit": "Editatu", +"Insert": "Sartu", +"View": "Ikusi", +"Format": "Formatua", +"Table": "Taula", +"Tools": "Tresnak", +"Powered by {0}": "{0}rekin egina", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Testu aberastuko area. Sakatu ALT-F9 menurako. Sakatu ALT-F10 tresna-barrarako. Sakatu ALT-0 laguntzarako", +"Image title": "Irudiaren izenburua", +"Border width": "Ertzaren zabalera", +"Border style": "Ertzaren estiloa", +"Error": "Errorea", +"Warn": "Oharra", +"Valid": "Zuzena", +"To open the popup, press Shift+Enter": "Leiho berria irekitzeko, sakatu Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Testu aberastuko area. Sakatu ALT-0 laguntza lortzeko.", +"System Font": "Sistemaren letra-mota", +"Failed to upload image: {0}": "Errorea gertatu da irudia igotzean: {0}", +"Failed to load plugin: {0} from url {1}": "Errorea gertatu da {0} plugina kargatzean {1} url-tik", +"Failed to load plugin url: {0}": "Errorea gertatu da pluginaren url-a kargatzean: {0}", +"Failed to initialize plugin: {0}": "Errorea gertatu da plugina hasieratzean: {0}", +"example": "adibidea", +"Search": "Bilatu", +"All": "Guztiak", +"Currency": "Moneta", +"Text": "Testua", +"Quotations": "Aipuak", +"Mathematical": "Matematika", +"Extended Latin": "Latin zabaldua", +"Symbols": "Ikurrak", +"Arrows": "Geziak", +"User Defined": "Erabiltzaileak definitutakoak", +"dollar sign": "dolarraren ikurra", +"currency sign": "monetaren ikurra", +"euro-currency sign": "euroaren ikurra", +"colon sign": "bi puntuen ikurra", +"cruzeiro sign": "cruzeiroaren ikurra", +"french franc sign": "libera frantsesaren ikurra", +"lira sign": "liraren ikurra", +"mill sign": "millaren ikurra", +"naira sign": "naira ikurra", +"peseta sign": "pezetaren ikurra", +"rupee sign": "rupiaren ikurra", +"won sign": "wonaren ikurra", +"new sheqel sign": "sheqel berriaren ikurra", +"dong sign": "dongaren ikurra", +"kip sign": "kiparen ikurra", +"tugrik sign": "tugrikaren ikurra", +"drachma sign": "drakmaren ikurra", +"german penny symbol": "alemaniako peniaren ikurra", +"peso sign": "pesoaren ikurra", +"guarani sign": "guaraniaren ikurra", +"austral sign": "australaren ikurra", +"hryvnia sign": "hryvniaren ikurra", +"cedi sign": "cediaren ikurra", +"livre tournois sign": "libre tournoisaren ikurra", +"spesmilo sign": "spesmiloaren ikurra", +"tenge sign": "tengearen ikurra", +"indian rupee sign": "indiako rupiaren ikurra", +"turkish lira sign": "lira turkiarraren ikurra", +"nordic mark sign": "iparraldeko markoaren ikurra", +"manat sign": "manataren ikurra", +"ruble sign": "rubloaren ikurra", +"yen character": "yenaren karakterea", +"yuan character": "yuanaren karakterea", +"yuan character, in hong kong and taiwan": "yuanaren karakterea, hong kong eta taiwanen", +"yen\/yuan character variant one": "yen\/yuan karakterearen 1go bariantea", +"Loading emoticons...": "Emotikonoak kargatzen...", +"Could not load emoticons": "Ezin izan dira emotikonoak kargatu", +"People": "Jendea", +"Animals and Nature": "Animaliak eta natura", +"Food and Drink": "Janari eta edaria", +"Activity": "Ekintzak", +"Travel and Places": "Bidaiak eta lekuak", +"Objects": "Objektuak", +"Flags": "Banderak", +"Characters": "Karaktereak", +"Characters (no spaces)": "Karaktereak (espaziorik gabe)", +"Error: Form submit field collision.": "Errorea: formularioaren eremuetan talka gertatu da.", +"Error: No form element found.": "Errorea: ez da formularioa aurkitu.", +"Update": "Eguneratu", +"Color swatch": "Koloreak", +"Turquoise": "Turkesa", +"Green": "Berdea", +"Blue": "Urdina", +"Purple": "Morea", +"Navy Blue": "Itsas-urdina", +"Dark Turquoise": "Turkesa iluna", +"Dark Green": "Berde iluna", +"Medium Blue": "Tarteko urdina", +"Medium Purple": "Tarteko morea", +"Midnight Blue": "Gauerdiko urdina", +"Yellow": "Horia", +"Orange": "Laranja", +"Red": "Gorria", +"Light Gray": "Gris argia", +"Gray": "Grisa", +"Dark Yellow": "Hori iluna", +"Dark Orange": "Laranja iluna", +"Dark Red": "Gorri iluna", +"Medium Gray": "Tarteko grisa", +"Dark Gray": "Gris iluna", +"Black": "Beltza", +"White": "Zuria", +"Switch to or from fullscreen mode": "Pantaila osoko modura joan edo handik itzuli", +"Open help dialog": "Laguntza elkarrizketa ireki", +"history": "historia", +"styles": "estiloak", +"formatting": "formatua", +"alignment": "lerrokatzea", +"indentation": "koska", +"permanent pen": "boligrafo iraunkorra", +"comments": "iruzkinak", +"Anchor": "Esteka", +"Special character": "Karaktere bereziak", +"Code sample": "Kode adibidea", +"Color": "Kolorea", +"Emoticons": "Irrifartxoak", +"Document properties": "Dokumentuaren propietateak", +"Image": "Irudia", +"Insert link": "Esteka txertatu", +"Target": "Target", +"Link": "Lotura", +"Poster": "Poster-a", +"Media": "Media", +"Print": "Inprimatu", +"Prev": "Aurrekoa", +"Find and replace": "Bilatu eta ordeztu", +"Whole words": "hitz osoak", +"Spellcheck": "Egiaztapenak", +"Caption": "Epigrafea", +"Insert template": "Txertatu txantiloia" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/fa.js b/common/plugins/editors/tinymce/media/langs/fa.js new file mode 100755 index 0000000000000000000000000000000000000000..f94ed0b0f27732b68c19248cc60d84493e9e4bce --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/fa.js @@ -0,0 +1,389 @@ +tinymce.addI18n('fa',{ +"Redo": "\u0628\u0627\u0632\u0627\u0646\u062c\u0627\u0645", +"Undo": "\u0648\u0627\u06af\u0631\u062f", +"Cut": "\u0628\u0631\u0634", +"Copy": "\u06a9\u067e\u06cc", +"Paste": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646", +"Select all": "\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u0645\u0647", +"New document": "\u0633\u0646\u062f \u062c\u062f\u06cc\u062f", +"Ok": "\u062a\u0623\u06cc\u06cc\u062f", +"Cancel": "\u0644\u063a\u0648", +"Visual aids": "\u06a9\u0645\u06a9\u200c\u0647\u0627\u06cc \u0628\u0635\u0631\u06cc", +"Bold": "\u067e\u0631\u0631\u0646\u06af", +"Italic": "\u06a9\u062c", +"Underline": "\u0632\u06cc\u0631 \u062e\u0637 \u062f\u0627\u0631", +"Strikethrough": "\u062e\u0637 \u0632\u062f\u0646", +"Superscript": "\u0628\u0627\u0644\u0627\u0646\u06af\u0627\u0634\u062a", +"Subscript": "\u0632\u06cc\u0631\u0646\u06af\u0627\u0634\u062a", +"Clear formatting": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc", +"Align left": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0686\u067e", +"Align center": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0648\u0633\u0637", +"Align right": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0631\u0627\u0633\u062a", +"Justify": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u062f\u0648\u0637\u0631\u0641\u0647", +"Bullet list": "\u0641\u0647\u0631\u0633\u062a \u0646\u0634\u0627\u0646\u0647\u200c\u062f\u0627\u0631", +"Numbered list": "\u0641\u0647\u0631\u0633\u062a \u0634\u0645\u0627\u0631\u0647\u200c\u062f\u0627\u0631", +"Decrease indent": "\u06a9\u0627\u0647\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"Increase indent": "\u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"Close": "\u0628\u0633\u062a\u0646", +"Formats": "\u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc\u200c\u0647\u0627", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u06a9\u0644\u06cc\u067e\u200c\u0628\u0648\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0627\u0632 \u0645\u06cc\u0627\u0646\u0628\u0631\u0647\u0627\u06cc Ctrl+X\/C\/V \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.", +"Headers": "\u0633\u0631\u0628\u0631\u06af\u200c\u0647\u0627", +"Header 1": "\u0633\u0631\u0628\u0631\u06af 1", +"Header 2": "\u0633\u0631\u0628\u0631\u06af 2", +"Header 3": "\u0633\u0631\u0628\u0631\u06af 3", +"Header 4": "\u0633\u0631\u0628\u0631\u06af 4", +"Header 5": "\u0633\u0631\u0628\u0631\u06af 5", +"Header 6": "\u0633\u0631\u0628\u0631\u06af 6", +"Headings": "\u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627", +"Heading 1": "\u0633\u0631\u0641\u0635\u0644\u200c 1", +"Heading 2": "\u0633\u0631\u0641\u0635\u0644 2", +"Heading 3": "\u0633\u0631\u0641\u0635\u0644 3", +"Heading 4": "\u0633\u0631\u0641\u0635\u0644 4", +"Heading 5": "\u0633\u0631\u0641\u0635\u0644 5", +"Heading 6": "\u0633\u0631\u0641\u0635\u0644 6", +"Preformatted": "\u0627\u0632 \u067e\u06cc\u0634 \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647", +"Div": "\u0628\u062e\u0634", +"Pre": "\u067e\u06cc\u0634", +"Code": "\u06a9\u062f", +"Paragraph": "\u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641", +"Blockquote": "\u0646\u0642\u0644 \u0642\u0648\u0644 \u0628\u0644\u0648\u06a9\u06cc", +"Inline": "\u0647\u0645\u200c\u0631\u0627\u0633\u062a\u0627", +"Blocks": "\u0628\u0644\u0648\u06a9\u200c\u0647\u0627", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0647\u0645 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a. \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u0631\u0627 \u063a\u06cc\u0631\u200c\u0641\u0639\u0627\u0644 \u0646\u06a9\u0646\u06cc\u062f\u060c \u0645\u062d\u062a\u0648\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u0633\u0627\u062f\u0647 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.", +"Fonts": "\u0641\u0648\u0646\u062a\u200c\u200c\u0647\u0627", +"Font Sizes": "\u0627\u0646\u062f\u0627\u0632\u0647\u0654 \u0641\u0648\u0646\u062a", +"Class": "\u0637\u0628\u0642\u0647", +"Browse for an image": "\u06af\u0634\u062a\u0646 \u0628\u0631\u0627\u06cc \u0639\u06a9\u0633 \u0645\u0648\u0631\u062f \u0646\u0638\u0631", +"OR": "\u06cc\u0627", +"Drop an image here": "\u062a\u0635\u0648\u06cc\u0631 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0631\u0647\u0627 \u06a9\u0646\u06cc\u062f", +"Upload": "\u0622\u067e\u0644\u0648\u062f", +"Block": "\u0628\u0644\u0648\u06a9", +"Align": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc", +"Default": "\u067e\u06cc\u0634\u0641\u0631\u0636", +"Circle": "\u062f\u0627\u06cc\u0631\u0647", +"Disc": "\u062f\u06cc\u0633\u06a9", +"Square": "\u0645\u0631\u0628\u0639", +"Lower Alpha": "\u0622\u0644\u0641\u0627\u0621 \u06a9\u0648\u0686\u06a9", +"Lower Greek": "\u06cc\u0648\u0646\u0627\u0646\u06cc \u06a9\u0648\u0686\u06a9", +"Lower Roman": "\u0631\u0648\u0645\u06cc \u06a9\u0648\u0686\u06a9", +"Upper Alpha": "\u0622\u0644\u0641\u0627\u0621 \u0628\u0632\u0631\u06af", +"Upper Roman": "\u0631\u0648\u0645\u06cc \u0628\u0632\u0631\u06af", +"Anchor...": "\u0642\u0644\u0627\u0628...", +"Name": "\u0646\u0627\u0645", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.", +"You have unsaved changes are you sure you want to navigate away?": "\u0634\u0645\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647 \u0627\u06cc \u062f\u0627\u0631\u06cc\u062f\u060c \u0622\u06cc\u0627 \u0645\u0637\u0645\u0626\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0635\u0641\u062d\u0647 \u0628\u0631\u0648\u06cc\u062f\u061f", +"Restore last draft": "\u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0622\u062e\u0631\u06cc\u0646 \u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633", +"Special characters...": "\u0646\u0648\u06cc\u0633\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0698\u0647...", +"Source code": "\u06a9\u062f \u0645\u0646\u0628\u0639", +"Insert\/Edit code sample": "Insert\/Edit code sample", +"Language": "Language", +"Code sample...": "\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f...", +"Color Picker": "\u0627\u0646\u062a\u062e\u0627\u0628\u200c\u06a9\u0646\u0646\u062f\u0647 \u0631\u0646\u06af", +"R": "\u0642\u0631\u0645\u0632", +"G": "\u0633\u0628\u0632", +"B": "\u0622\u0628\u06cc", +"Left to right": "\u0686\u067e \u0628\u0647 \u0631\u0627\u0633\u062a", +"Right to left": "\u0631\u0627\u0633\u062a \u0628\u0647 \u0686\u067e", +"Emoticons...": "\u0635\u0648\u0631\u062a\u06a9\u200c\u0647\u0627...", +"Metadata and Document Properties": "\u0641\u0631\u0627\u062f\u0627\u062f\u0647 \u0648 \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0646\u062f", +"Title": "\u0639\u0646\u0648\u0627\u0646", +"Keywords": "\u06a9\u0644\u0645\u0627\u062a \u06a9\u0644\u06cc\u062f\u06cc", +"Description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a", +"Robots": "\u0631\u0628\u0627\u062a\u200c\u0647\u0627", +"Author": "\u0646\u0648\u06cc\u0633\u0646\u062f\u0647", +"Encoding": "\u06a9\u062f \u06af\u0630\u0627\u0631\u06cc", +"Fullscreen": "\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647", +"Action": "\u0627\u0642\u062f\u0627\u0645", +"Shortcut": "\u0645\u06cc\u0627\u0646\u0628\u0631", +"Help": "\u0631\u0627\u0647\u0646\u0645\u0627", +"Address": "\u0622\u062f\u0631\u0633", +"Focus to menubar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0645\u0646\u0648", +"Focus to toolbar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631", +"Focus to element path": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0645\u0633\u06cc\u0631 \u0627\u0644\u0645\u0627\u0646", +"Focus to contextual toolbar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 \u0628\u0627\u0641\u062a\u0627\u0631\u06cc", +"Insert link (if link plugin activated)": "\u062f\u0631\u062c \u067e\u06cc\u0648\u0646\u062f (\u062f\u0631 \u0635\u0648\u0631\u062a \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 \u0627\u0641\u0632\u0648\u0646\u0647\u0654 \u067e\u06cc\u0648\u0646\u062f)", +"Save (if save plugin activated)": "\u0630\u062e\u06cc\u0631\u0647\u00a0(\u062f\u0631 \u0635\u0648\u0631\u062a \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 \u0627\u0641\u0632\u0648\u0646\u0647\u0654 \u0630\u062e\u06cc\u0631\u0647)", +"Find (if searchreplace plugin activated)": "\u06cc\u0627\u0641\u062a\u0646 (\u062f\u0631 \u0635\u0648\u0631\u062a \u0641\u0639\u0627\u0644 \u0628\u0648\u062f\u0646 \u0627\u0641\u0632\u0648\u0646\u0647\u0654 \u062c\u0633\u062a\u062c\u0648\/\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc)", +"Plugins installed ({0}):": "\u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u0646\u0635\u0628\u200c\u0634\u062f\u0647 ({0}):", +"Premium plugins:": "\u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u067e\u0648\u0644\u06cc:", +"Learn more...": "\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631...", +"You are using {0}": "\u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 {0} \u0647\u0633\u062a\u06cc\u062f", +"Plugins": "\u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627", +"Handy Shortcuts": "\u0645\u06cc\u0627\u0646\u0628\u0631\u0647\u0627\u06cc \u0645\u0641\u06cc\u062f", +"Horizontal line": "\u062e\u0637 \u0627\u0641\u0642\u06cc", +"Insert\/edit image": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631", +"Image description": "\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u0639\u06a9\u0633", +"Source": "\u0645\u0646\u0628\u0639", +"Dimensions": "\u0627\u0628\u0639\u0627\u062f", +"Constrain proportions": "\u062d\u0641\u0638 \u062a\u0646\u0627\u0633\u0628", +"General": "\u0639\u0645\u0648\u0645\u06cc", +"Advanced": "\u067e\u06cc\u0634\u0631\u0641\u062a\u0647", +"Style": "\u0633\u0628\u06a9", +"Vertical space": "\u0641\u0636\u0627\u06cc \u0639\u0645\u0648\u062f\u06cc", +"Horizontal space": "\u0641\u0636\u0627\u06cc \u0627\u0641\u0642\u06cc", +"Border": "\u062d\u0627\u0634\u06cc\u0647", +"Insert image": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0635\u0648\u06cc\u0631", +"Image...": "\u062a\u0635\u0648\u06cc\u0631...", +"Image list": "\u0641\u0647\u0631\u0633\u062a \u062a\u0635\u0648\u06cc\u0631", +"Rotate counterclockwise": "Rotate counterclockwise", +"Rotate clockwise": "Rotate clockwise", +"Flip vertically": "Flip vertically", +"Flip horizontally": "Flip horizontally", +"Edit image": "Edit image", +"Image options": "Image options", +"Zoom in": "Zoom in", +"Zoom out": "Zoom out", +"Crop": "Crop", +"Resize": "Resize", +"Orientation": "Orientation", +"Brightness": "Brightness", +"Sharpen": "Sharpen", +"Contrast": "Contrast", +"Color levels": "Color levels", +"Gamma": "Gamma", +"Invert": "Invert", +"Apply": "Apply", +"Back": "Back", +"Insert date\/time": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646", +"Date\/time": "Date\/time", +"Insert\/Edit Link": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u067e\u06cc\u0648\u0646\u062f", +"Insert\/edit link": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9", +"Text to display": "\u0645\u062a\u0646 \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634", +"Url": "\u0627\u062f\u0631\u0633 \u0644\u06cc\u0646\u06a9", +"Open link in...": "\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0631...", +"Current window": "\u067e\u0646\u062c\u0631\u0647 \u062c\u0627\u0631\u06cc", +"None": "\u0647\u06cc\u0686 \u06a9\u062f\u0627\u0645", +"New window": "\u067e\u0646\u062c\u0631\u0647 \u062c\u062f\u06cc\u062f", +"Remove link": "\u062d\u0630\u0641 \u0644\u06cc\u0646\u06a9", +"Anchors": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9 \u062f\u0627\u062e\u0644 \u0635\u0641\u062d\u0647", +"Link...": "\u067e\u06cc\u0648\u0646\u062f...", +"Paste or type a link": "Paste or type a link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?", +"Link list": "\u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f\u0647\u0627", +"Insert video": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc", +"Insert\/edit video": "\u0627\u0636\u0627\u0641\u0647\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u062a\u0635\u0648\u06cc\u0631\u06cc", +"Insert\/edit media": "Insert\/edit media", +"Alternative source": "\u0645\u0646\u0628\u0639 \u062f\u06cc\u06af\u0631", +"Alternative source URL": "\u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u0645\u0646\u0628\u0639 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646", +"Media poster (Image URL)": "\u067e\u0648\u0633\u062a\u0631 \u0631\u0633\u0627\u0646\u0647 (\u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u062a\u0635\u0648\u06cc\u0631)", +"Paste your embed code below:": "\u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u062c\u0627 \u062f\u0627\u062f\u0646 \u062f\u0631 \u0633\u0627\u06cc\u062a - embed - \u060c \u062f\u0631 \u0632\u06cc\u0631 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:", +"Embed": "\u062c\u0627 \u062f\u0627\u062f\u0646", +"Media...": "\u0631\u0633\u0627\u0646\u0647...", +"Nonbreaking space": "\u0641\u0636\u0627\u06cc \u063a\u06cc\u0631 \u0634\u06a9\u0633\u062a\u0646", +"Page break": "\u0634\u06a9\u0633\u062a\u0646 \u0635\u0641\u062d\u0647", +"Paste as text": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0646", +"Preview": "\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634", +"Print...": "\u0686\u0627\u067e...", +"Save": "\u0630\u062e\u06cc\u0631\u0647", +"Find": "\u062c\u0633\u062a\u200c\u0648\u200c\u062c\u0648", +"Replace with": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646 \u0628\u0627", +"Replace": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646", +"Replace all": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646 \u0647\u0645\u0647", +"Previous": "\u0642\u0628\u0644\u06cc", +"Next": "\u0628\u0639\u062f\u06cc", +"Find and replace...": "\u06cc\u0627\u0641\u062a\u0646 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646...", +"Could not find the specified string.": "\u0631\u0634\u062a\u0647 \u0645\u062a\u0646\u06cc \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u067e\u06cc\u062f\u0627 \u0646\u0634\u062f.", +"Match case": "\u062d\u0633\u0627\u0633 \u0628\u0647 \u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u0648 \u0628\u0632\u0631\u06af", +"Find whole words only": "\u06cc\u0627\u0641\u062a\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u06a9\u0644 \u0648\u0627\u0698\u0647", +"Spell check": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627", +"Ignore": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646", +"Ignore all": "\u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 \u0647\u0645\u0647", +"Finish": "\u067e\u0627\u06cc\u0627\u0646", +"Add to Dictionary": "Add to Dictionary", +"Insert table": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062c\u062f\u0648\u0644", +"Table properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u062c\u062f\u0648\u0644", +"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644", +"Cell": "\u0633\u0644\u0648\u0644", +"Row": "\u0633\u0637\u0631", +"Column": "\u0633\u062a\u0648\u0646", +"Cell properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0644\u0648\u0644", +"Merge cells": "\u0627\u062f\u063a\u0627\u0645 \u0633\u0644\u0648\u0644\u200c\u0647\u0627", +"Split cell": "\u062a\u0642\u0633\u06cc\u0645 \u0633\u0644\u0648\u0644 \u062c\u062f\u0648\u0644", +"Insert row before": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0637\u0631 \u062c\u062f\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631", +"Insert row after": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u0637\u0631 \u062c\u062f\u06cc\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631", +"Delete row": "\u062d\u0630\u0641 \u0633\u0637\u0631", +"Row properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0637\u0631", +"Cut row": "\u0628\u0631\u0634 \u0633\u0637\u0631", +"Copy row": "\u06a9\u067e\u06cc \u0633\u0637\u0631", +"Paste row before": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631", +"Paste row after": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631\u060c \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0637\u0631", +"Insert column before": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646", +"Insert column after": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0633\u062a\u0648\u0646 \u062c\u062f\u06cc\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0633\u062a\u0648\u0646", +"Delete column": "\u062d\u0630\u0641 \u0633\u062a\u0648\u0646", +"Cols": "\u062a\u0639\u062f\u0627\u062f \u0633\u062a\u0648\u0646\u200c\u0647\u0627", +"Rows": "\u062a\u0639\u062f\u0627\u062f \u0633\u0637\u0631\u200c\u0647\u0627", +"Width": "\u0639\u0631\u0636", +"Height": "\u0627\u0631\u062a\u0641\u0627\u0639", +"Cell spacing": "\u0641\u0627\u0635\u0644\u0647\u200c\u06cc \u0628\u06cc\u0646 \u0633\u0644\u0648\u0644 \u0647\u0627", +"Cell padding": "\u062d\u0627\u0634\u06cc\u0647 \u0633\u0644\u0648\u0644 \u0647\u0627", +"Show caption": "\u0646\u0645\u0627\u06cc\u0634 \u0639\u0646\u0648\u0627\u0646", +"Left": "\u0686\u067e", +"Center": "\u0648\u0633\u0637", +"Right": "\u0631\u0627\u0633\u062a", +"Cell type": "\u0646\u0648\u0639 \u0633\u0644\u0648\u0644", +"Scope": "\u0645\u062d\u062f\u0648\u062f\u0647\u200c\u06cc \u0639\u0646\u0648\u0627\u0646", +"Alignment": "\u0631\u062f\u06cc\u0641 \u0628\u0646\u062f\u06cc \u0646\u0648\u0634\u062a\u0647", +"H Align": "H Align", +"V Align": "V Align", +"Top": "Top", +"Middle": "Middle", +"Bottom": "Bottom", +"Header cell": "\u0633\u0631\u0622\u06cc\u0646\u062f \u0633\u0644\u0648\u0644", +"Row group": "\u06af\u0631\u0648\u0647 \u0633\u0637\u0631", +"Column group": "\u06af\u0631\u0648\u0647 \u0633\u062a\u0648\u0646", +"Row type": "\u0646\u0648\u0639 \u0633\u0637\u0631", +"Header": "\u0633\u0631\u0622\u06cc\u0646\u062f", +"Body": "\u0628\u062f\u0646\u0647", +"Footer": "\u067e\u0627\u0646\u0648\u06cc\u0633", +"Border color": "Border color", +"Insert template...": "\u062f\u0631\u062c \u0627\u0644\u06af\u0648...", +"Templates": "\u0627\u0644\u06af\u0648\u200c\u0647\u0627", +"Template": "\u0627\u0644\u06af\u0648", +"Text color": "\u0631\u0646\u06af \u0645\u062a\u0646", +"Background color": "\u0631\u0646\u06af \u0632\u0645\u06cc\u0646\u0647 \u0645\u062a\u0646", +"Custom...": "Custom...", +"Custom color": "Custom color", +"No color": "No color", +"Remove color": "\u062d\u0630\u0641 \u0631\u0646\u06af", +"Table of Contents": "Table of Contents", +"Show blocks": "\u0646\u0645\u0627\u06cc\u0634 \u0628\u062e\u0634\u200c\u0647\u0627", +"Show invisible characters": "\u0646\u0645\u0627\u06cc\u0634 \u06a9\u0627\u0631\u0627\u06a9\u062a\u0631\u0647\u0627\u06cc \u063a\u06cc\u0631 \u0642\u0627\u0628\u0644 \u0686\u0627\u067e", +"Word count": "\u062a\u0639\u062f\u0627\u062f \u0648\u0627\u0698\u0647\u200c\u0647\u0627", +"Words: {0}": "\u06a9\u0644\u0645\u0627\u062a : {0}", +"{0} words": "{0} \u0648\u0627\u0698\u0647", +"File": "\u067e\u0631\u0648\u0646\u062f\u0647", +"Edit": "\u0648\u06cc\u0631\u0627\u06cc\u0634", +"Insert": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646", +"View": "\u0646\u0645\u0627\u06cc\u0634", +"Format": "\u0642\u0627\u0644\u0628", +"Table": "\u062c\u062f\u0648\u0644", +"Tools": "\u0627\u0628\u0632\u0627\u0631\u0647\u0627", +"Powered by {0}": "\u0642\u0648\u062a\u200c\u06af\u0631\u0641\u062a\u0647 \u0627\u0632 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647\u200c\u06cc \u0645\u062a\u0646. \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0645\u0646\u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc ALT-F9\u060c \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 ALT-F10 \u0648 \u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647\u200c\u06cc \u0631\u0627\u0647\u0646\u0645\u0627 ALT-0 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.", +"Image title": "\u0639\u0646\u0648\u0627\u0646 \u062a\u0635\u0648\u06cc\u0631", +"Border width": "\u0639\u0631\u0636 \u062d\u0627\u0634\u06cc\u0647", +"Border style": "\u0633\u0628\u06a9 \u062d\u0627\u0634\u06cc\u0647", +"Error": "\u062e\u0637\u0627", +"Warn": "\u0647\u0634\u062f\u0627\u0631", +"Valid": "\u0645\u0639\u062a\u0628\u0631", +"To open the popup, press Shift+Enter": "\u062c\u0647\u062a \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u0646\u062c\u0631\u0647 \u0628\u0627\u0632\u0634\u0648\u060c \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc Shift + Enter \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.", +"Rich Text Area. Press ALT-0 for help.": "\u0646\u0627\u062d\u06cc\u0647 \u0645\u062a\u0646 \u063a\u0646\u06cc. \u062c\u0647\u062a \u0645\u0634\u0627\u0647\u062f\u0647\u0654 \u0631\u0627\u0647\u0646\u0645\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc ALT + 0 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.", +"System Font": "\u0641\u0648\u0646\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc", +"Failed to upload image: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631: {0}", +"Failed to load plugin: {0} from url {1}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u0641\u0632\u0648\u0646\u0647: {0} \u0627\u0632 \u0646\u0634\u0627\u0646\u06cc \u0648\u0628 {1}", +"Failed to load plugin url: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u0627\u0641\u0632\u0648\u0646\u0647: {0}", +"Failed to initialize plugin: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0641\u0632\u0648\u0646\u0647: {0}", +"example": "\u0645\u062b\u0627\u0644", +"Search": "\u062c\u0633\u062a\u062c\u0648", +"All": "\u0647\u0645\u0647", +"Currency": "\u0627\u0631\u0632", +"Text": "\u0645\u062a\u0646", +"Quotations": "\u0646\u0642\u0644\u200c\u0642\u0648\u0644\u200c\u0647\u0627", +"Mathematical": "\u0631\u06cc\u0627\u0636\u06cc", +"Extended Latin": "\u0644\u0627\u062a\u06cc\u0646 \u06af\u0633\u062a\u0631\u062f\u0647", +"Symbols": "\u0646\u0645\u0627\u062f\u0647\u0627", +"Arrows": "\u067e\u06cc\u06a9\u0627\u0646\u200c\u0647\u0627", +"User Defined": "\u0628\u0647 \u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631", +"dollar sign": "\u0646\u0645\u0627\u062f \u062f\u0644\u0627\u0631", +"currency sign": "\u0646\u0645\u0627\u062f \u0627\u0631\u0632", +"euro-currency sign": "\u0646\u0645\u0627\u062f \u06cc\u0648\u0631\u0648", +"colon sign": "\u0646\u0645\u0627\u062f \u062f\u0648\u0646\u0642\u0637\u0647", +"cruzeiro sign": "\u0646\u0645\u0627\u062f \u06a9\u0631\u0648\u0632\u06cc\u0631\u0648", +"french franc sign": "\u0646\u0645\u0627\u062f \u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647", +"lira sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0631\u0647", +"mill sign": "\u0646\u0645\u0627\u062f \u0645\u06cc\u0644", +"naira sign": "\u0646\u0645\u0627\u062f \u0646\u0627\u06cc\u0631\u0627", +"peseta sign": "\u0646\u0645\u0627\u062f \u067e\u0632\u062a\u0627", +"rupee sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u067e\u06cc\u0647", +"won sign": "\u0646\u0645\u0627\u062f \u0648\u0648\u0646", +"new sheqel sign": "\u0646\u0645\u0627\u062f \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f", +"dong sign": "\u0646\u0645\u0627\u062f \u062f\u0627\u0646\u06af", +"kip sign": "\u0646\u0645\u0627\u062f \u06a9\u06cc\u067e", +"tugrik sign": "\u0646\u0645\u0627\u062f \u062a\u0648\u06af\u0631\u0648\u06af", +"drachma sign": "\u0646\u0645\u0627\u062f \u062f\u0631\u0627\u062e\u0645\u0627", +"german penny symbol": "\u0646\u0645\u0627\u062f \u067e\u0646\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc", +"peso sign": "\u0646\u0645\u0627\u062f \u067e\u0632\u0648", +"guarani sign": "\u0646\u0645\u0627\u062f \u06af\u0648\u0627\u0631\u0627\u0646\u06cc", +"austral sign": "\u0646\u0645\u0627\u062f \u0622\u0633\u062a\u0631\u0627\u0644", +"hryvnia sign": "\u0646\u0645\u0627\u062f \u06af\u0631\u06cc\u0648\u0646\u0627", +"cedi sign": "\u0646\u0645\u0627\u062f \u0633\u062f\u06cc", +"livre tournois sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0648\u0631\u0647 \u062a\u0648\u0631\u0646\u0648\u0627", +"spesmilo sign": "\u0646\u0645\u0627\u062f \u0627\u0633\u067e\u0633\u0645\u06cc\u0644\u0648", +"tenge sign": "\u0646\u0645\u0627\u062f \u062a\u0646\u06af\u0647", +"indian rupee sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u067e\u06cc\u0647 \u0647\u0646\u062f\u06cc", +"turkish lira sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0631\u0647 \u062a\u0631\u06a9\u06cc", +"nordic mark sign": "\u0646\u0645\u0627\u062f \u0645\u0627\u0631\u06a9 \u0646\u0631\u0648\u0698", +"manat sign": "\u0646\u0645\u0627\u062f \u0645\u0646\u0627\u062a", +"ruble sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u0628\u0644", +"yen character": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0646", +"yuan character": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0648\u0627\u0646", +"yuan character, in hong kong and taiwan": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0648\u0627\u0646\u060c \u062f\u0631 \u0647\u0646\u06af\u200c\u06a9\u0646\u06af \u0648 \u062a\u0627\u06cc\u0648\u0627\u0646", +"yen\/yuan character variant one": "\u0646\u0648\u06cc\u0633\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06cc\u0646\/\u06cc\u0648\u0627\u0646", +"Loading emoticons...": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u06a9\u0644\u06a9\u200c\u0647\u0627...", +"Could not load emoticons": "\u0634\u06a9\u0644\u06a9\u200c\u0647\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0646\u0634\u062f\u0646\u062f", +"People": "\u0627\u0641\u0631\u0627\u062f", +"Animals and Nature": "\u062d\u06cc\u0648\u0627\u0646\u0627\u062a \u0648 \u0637\u0628\u06cc\u0639\u062a", +"Food and Drink": "\u063a\u0630\u0627 \u0648 \u0646\u0648\u0634\u06cc\u062f\u0646\u06cc", +"Activity": "\u0641\u0639\u0627\u0644\u06cc\u062a", +"Travel and Places": "\u0633\u0641\u0631 \u0648 \u0627\u0645\u0627\u06a9\u0646", +"Objects": "\u0627\u0634\u06cc\u0627", +"Flags": "\u067e\u0631\u0686\u0645\u200c\u0647\u0627", +"Characters": "\u0646\u0648\u06cc\u0633\u0647\u200c\u0647\u0627", +"Characters (no spaces)": "\u0646\u0648\u06cc\u0633\u0647 \u0647\u0627 (\u0628\u062f\u0648\u0646 \u0641\u0627\u0635\u0644\u0647)", +"Error: Form submit field collision.": "\u062e\u0637\u0627: \u062a\u062f\u0627\u062e\u0644 \u062f\u0631 \u062b\u0628\u062a \u0641\u0631\u0645.", +"Error: No form element found.": "\u062e\u0637\u0627: \u0647\u06cc\u0686 \u0627\u0644\u0645\u0627\u0646 \u0641\u0631\u0645\u06cc \u06cc\u0627\u0641\u062a \u0646\u0634\u062f.", +"Update": "\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc", +"Color swatch": "\u0646\u0645\u0648\u0646\u0647 \u0631\u0646\u06af", +"Turquoise": "\u0641\u06cc\u0631\u0648\u0632\u0647\u200c\u0627\u06cc", +"Green": "\u0633\u0628\u0632", +"Blue": "\u0622\u0628\u06cc", +"Purple": "\u0628\u0646\u0641\u0634", +"Navy Blue": "\u0633\u0631\u0645\u0647\u200c\u0627\u06cc", +"Dark Turquoise": "\u0641\u06cc\u0631\u0648\u0632\u0647\u200c\u0627\u06cc \u062a\u06cc\u0631\u0647", +"Dark Green": "\u0633\u0628\u0632 \u062a\u06cc\u0631\u0647", +"Medium Blue": "\u0622\u0628\u06cc \u0633\u06cc\u0631", +"Medium Purple": "\u0622\u0628\u06cc \u0628\u0646\u0641\u0634", +"Midnight Blue": "\u0622\u0628\u06cc \u0646\u0641\u062a\u06cc", +"Yellow": "\u0632\u0631\u062f", +"Orange": "\u0646\u0627\u0631\u0646\u062c\u06cc", +"Red": "\u0642\u0631\u0645\u0632", +"Light Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u0631\u0648\u0634\u0646", +"Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc", +"Dark Yellow": "\u0632\u0631\u062f \u062a\u06cc\u0631\u0647", +"Dark Orange": "\u0646\u0627\u0631\u0646\u062c\u06cc \u062a\u06cc\u0631\u0647", +"Dark Red": "\u0642\u0631\u0645\u0632 \u062a\u06cc\u0631\u0647", +"Medium Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u0646\u06cc\u0645\u0647\u200c\u0631\u0648\u0634\u0646", +"Dark Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u062a\u06cc\u0631\u0647", +"Black": "\u0633\u06cc\u0627\u0647", +"White": "\u0633\u0641\u06cc\u062f", +"Switch to or from fullscreen mode": "\u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645\u200c\u0635\u0641\u062d\u0647 \u06cc\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645\u200c\u0635\u0641\u062d\u0647", +"Open help dialog": "\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u062f\u0631 \u0631\u0627\u0647\u0646\u0645\u0627", +"history": "\u062a\u0627\u0631\u06cc\u062e\u0686\u0647", +"styles": "\u0633\u0628\u06a9\u200c\u0647\u0627", +"formatting": "\u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc", +"alignment": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc", +"indentation": "\u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"permanent pen": "\u0642\u0644\u0645 \u062f\u0627\u0626\u0645\u06cc", +"comments": "\u0646\u0638\u0631\u0627\u062a", +"Anchor": "\u0644\u0646\u06af\u0631 - \u0644\u06cc\u0646\u06a9", +"Special character": "\u06a9\u0627\u0631\u0627\u06a9\u062a\u0631 \u0647\u0627\u06cc \u062e\u0627\u0635", +"Color": "Color", +"Emoticons": "\u0634\u06a9\u0644\u06a9\u200c\u0647\u0627", +"Document properties": "\u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627\u06cc \u0633\u0646\u062f", +"Image": "\u0639\u06a9\u0633", +"Insert link": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0644\u06cc\u0646\u06a9", +"Link": "Link", +"Target": "\u0646\u062d\u0648\u0647 \u0628\u0627\u0632 \u0634\u062f\u0646 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631", +"Media": "Media", +"Poster": "\u067e\u0648\u0633\u062a\u0631", +"Print": "\u0686\u0627\u067e", +"Whole words": "\u0647\u0645\u0647 \u06a9\u0644\u0645\u0647\u200c\u0647\u0627", +"Find and replace": "\u062c\u0633\u062a\u200c\u0648\u200c\u062c\u0648 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646", +"Prev": "\u0642\u0628\u0644\u06cc", +"Spellcheck": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627\u06cc\u06cc", +"Caption": "\u0639\u0646\u0648\u0627\u0646", +"Insert template": "\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0644\u06af\u0648", +"_dir": "rtl" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/fa_IR.js b/common/plugins/editors/tinymce/media/langs/fa_IR.js new file mode 100755 index 0000000000000000000000000000000000000000..e944666ab3f5eea832d493555c9c8b08f00a601c --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/fa_IR.js @@ -0,0 +1,390 @@ +tinymce.addI18n('fa_IR',{ +"Redo": "\u0628\u0627\u0632\u0627\u0646\u062c\u0627\u0645", +"Undo": "\u0648\u0627\u06af\u0631\u062f", +"Cut": "\u0628\u0631\u0634", +"Copy": "\u06a9\u067e\u06cc", +"Paste": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646", +"Select all": "\u0627\u0646\u062a\u062e\u0627\u0628 \u0647\u0645\u0647", +"New document": "\u0633\u0646\u062f \u062c\u062f\u06cc\u062f", +"Ok": "\u062a\u0623\u06cc\u06cc\u062f", +"Cancel": "\u0644\u063a\u0648", +"Visual aids": "\u06a9\u0645\u06a9\u200c\u0647\u0627\u06cc \u0628\u0635\u0631\u06cc", +"Bold": "\u067e\u0631\u0631\u0646\u06af", +"Italic": "\u06a9\u062c", +"Underline": "\u0632\u06cc\u0631 \u062e\u0637 \u062f\u0627\u0631", +"Strikethrough": "\u062e\u0637 \u0632\u062f\u0646", +"Superscript": "\u0628\u0627\u0644\u0627\u0646\u06af\u0627\u0634\u062a", +"Subscript": "\u0632\u06cc\u0631\u0646\u06af\u0627\u0634\u062a", +"Clear formatting": "\u067e\u0627\u06a9 \u06a9\u0631\u062f\u0646 \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc", +"Align left": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0686\u067e", +"Align center": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0648\u0633\u0637", +"Align right": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u0627\u0632 \u0631\u0627\u0633\u062a", +"Justify": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc \u062f\u0648\u0637\u0631\u0641\u0647", +"Bullet list": "\u0641\u0647\u0631\u0633\u062a \u0646\u0634\u0627\u0646\u0647\u200c\u062f\u0627\u0631", +"Numbered list": "\u0641\u0647\u0631\u0633\u062a \u0634\u0645\u0627\u0631\u0647\u200c\u062f\u0627\u0631", +"Decrease indent": "\u06a9\u0627\u0647\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"Increase indent": "\u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"Close": "\u0628\u0633\u062a\u0646", +"Formats": "\u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc\u200c\u0647\u0627", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u06a9\u0644\u06cc\u067e\u200c\u0628\u0648\u0631\u062f \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0627\u0632 \u0645\u06cc\u0627\u0646\u0628\u0631\u0647\u0627\u06cc Ctrl+X\/C\/V \u0635\u0641\u062d\u0647 \u06a9\u0644\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.", +"Headers": "\u0633\u0631\u0628\u0631\u06af\u200c\u0647\u0627", +"Header 1": "\u0633\u0631\u0628\u0631\u06af 1", +"Header 2": "\u0633\u0631\u0628\u0631\u06af 2", +"Header 3": "\u0633\u0631\u0628\u0631\u06af 3", +"Header 4": "\u0633\u0631\u0628\u0631\u06af 4", +"Header 5": "\u0633\u0631\u0628\u0631\u06af 5", +"Header 6": "\u0633\u0631\u0628\u0631\u06af 6", +"Headings": "\u0633\u0631\u0641\u0635\u0644\u200c\u0647\u0627", +"Heading 1": "\u0633\u0631\u0641\u0635\u0644\u200c 1", +"Heading 2": "\u0633\u0631\u0641\u0635\u0644 2", +"Heading 3": "\u0633\u0631\u0641\u0635\u0644 3", +"Heading 4": "\u0633\u0631\u0641\u0635\u0644 4", +"Heading 5": "\u0633\u0631\u0641\u0635\u0644 5", +"Heading 6": "\u0633\u0631\u0641\u0635\u0644 6", +"Preformatted": "\u0627\u0632 \u067e\u06cc\u0634 \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc\u200c\u0634\u062f\u0647", +"Div": "\u0628\u062e\u0634", +"Pre": "\u067e\u06cc\u0634", +"Code": "\u06a9\u062f", +"Paragraph": "\u067e\u0627\u0631\u0627\u06af\u0631\u0627\u0641", +"Blockquote": "\u0646\u0642\u0644 \u0642\u0648\u0644 \u0628\u0644\u0648\u06a9\u06cc", +"Inline": "\u0647\u0645\u200c\u0631\u0627\u0633\u062a\u0627", +"Blocks": "\u0628\u0644\u0648\u06a9\u200c\u0647\u0627", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0627\u0645\u06a9\u0627\u0646 \u0686\u0633\u0628\u0627\u0646\u062f\u0646\u060c \u062f\u0631 \u062d\u0627\u0644\u062a \u0645\u062a\u0646 \u062e\u0627\u0644\u0635 \u062a\u0646\u0638\u06cc\u0645 \u06af\u0634\u062a\u0647. \u062a\u0627 \u0632\u0645\u0627\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a\u060c \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u0648\u0631\u062f \u0686\u0633\u0628\u0627\u0646\u062f\u0646\u060c \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062a\u0646 \u062e\u0627\u0644\u0635 \u062e\u0648\u0627\u0647\u062f \u0686\u0633\u0628\u06cc\u062f.", +"Fonts": "\u0641\u0648\u0646\u062a\u200c\u200c\u0647\u0627", +"Font Sizes": "\u0627\u0646\u062f\u0627\u0632\u0647\u0654 \u0641\u0648\u0646\u062a", +"Class": "\u0637\u0628\u0642\u0647", +"Browse for an image": "\u06af\u0634\u062a\u0646 \u0628\u0631\u0627\u06cc \u0639\u06a9\u0633 \u0645\u0648\u0631\u062f \u0646\u0638\u0631", +"OR": "\u06cc\u0627", +"Drop an image here": "\u062a\u0635\u0648\u06cc\u0631 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u0627\u06cc\u0646\u062c\u0627 \u0631\u0647\u0627 \u06a9\u0646\u06cc\u062f", +"Upload": "\u0622\u067e\u0644\u0648\u062f", +"Block": "\u0628\u0644\u0648\u06a9", +"Align": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc", +"Default": "\u067e\u06cc\u0634 \u0641\u0631\u0636", +"Circle": "\u062f\u0627\u06cc\u0631\u0647", +"Disc": "\u062f\u0627\u06cc\u0631\u0647\u0621 \u062a\u0648\u067e\u0631", +"Square": "\u0686\u0647\u0627\u0631 \u06af\u0648\u0634", +"Lower Alpha": "\u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9", +"Lower Greek": "\u062d\u0631\u0648\u0641 \u06a9\u0648\u0686\u06a9 \u06cc\u0648\u0646\u0627\u0646\u06cc", +"Lower Roman": "\u0627\u0631\u0642\u0627\u0645 \u06a9\u0648\u0686\u06a9 \u0631\u0648\u0645\u06cc", +"Upper Alpha": "\u062d\u0631\u0648\u0641 \u0628\u0632\u0631\u06af", +"Upper Roman": "\u0627\u0631\u0642\u0627\u0645 \u0628\u0632\u0631\u06af \u0631\u0648\u0645\u06cc", +"Anchor...": "\u0642\u0644\u0627\u0628...", +"Name": "\u0646\u0627\u0645", +"Id": "\u0634\u0646\u0627\u0633\u0647", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u0634\u0646\u0627\u0633\u0647 \u0645\u06cc \u0628\u0627\u06cc\u0633\u062a \u0628\u0627 \u06cc\u06a9 \u062d\u0631\u0641 \u0627\u0644\u0641\u0628\u0627 \u0622\u063a\u0627\u0632 \u0648 \u0628\u0627 \u062f\u0646\u0628\u0627\u0644\u0647 \u0627\u06cc \u0627\u0632 \u062d\u0631\u0648\u0641\u060c \u0627\u0639\u062f\u0627\u062f\u060c \u0639\u0644\u0627\u0645\u062a \u0645\u0650\u0646\u0647\u0627\u060c \u0646\u0642\u0637\u0647\u060c \u062f\u0648 \u0646\u0642\u0637\u0647 \u06cc\u0627 \u062e\u0637 \u062a\u06cc\u0631\u0647 \u0627\u062f\u0627\u0645\u0647 \u06cc\u0627\u0628\u062f.", +"You have unsaved changes are you sure you want to navigate away?": "\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0634\u0645\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0646\u0634\u062f\u0647 \u0627\u0646\u062f\u060c \u0622\u06cc\u0627 \u062c\u0647\u062a \u062e\u0631\u0648\u062c \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062f\u0627\u0631\u06cc\u062f\u061f", +"Restore last draft": "\u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0622\u062e\u0631\u06cc\u0646 \u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633", +"Special characters...": "\u0646\u0648\u06cc\u0633\u0647\u200c\u0647\u0627\u06cc \u0648\u06cc\u0698\u0647...", +"Source code": "\u0645\u062a\u0646 \u06a9\u062f \u0645\u0646\u0628\u0639", +"Insert\/Edit code sample": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0646\u0645\u0648\u0646\u0647\u0621 \u06a9\u062f", +"Language": "\u0632\u0628\u0627\u0646", +"Code sample...": "\u0646\u0645\u0648\u0646\u0647 \u06a9\u062f...", +"Color Picker": "\u0627\u0646\u062a\u062e\u0627\u0628\u200c\u06a9\u0646\u0646\u062f\u0647 \u0631\u0646\u06af", +"R": "\u0642\u0631\u0645\u0632", +"G": "\u0633\u0628\u0632", +"B": "\u0622\u0628\u06cc", +"Left to right": "\u0686\u067e \u0628\u0647 \u0631\u0627\u0633\u062a", +"Right to left": "\u0631\u0627\u0633\u062a \u0628\u0647 \u0686\u067e", +"Emoticons...": "\u0635\u0648\u0631\u062a\u06a9\u200c\u0647\u0627...", +"Metadata and Document Properties": "\u0641\u0631\u0627\u062f\u0627\u062f\u0647 \u0648 \u0645\u0634\u062e\u0635\u0627\u062a \u0633\u0646\u062f", +"Title": "\u0639\u0646\u0648\u0627\u0646", +"Keywords": "\u0648\u0627\u0698\u06af\u0627\u0646 \u06a9\u0644\u06cc\u062f\u06cc", +"Description": "\u062a\u0648\u0636\u06cc\u062d", +"Robots": "\u0631\u0648\u0628\u0627\u062a\u0647\u0627", +"Author": "\u0645\u0648\u0644\u0641", +"Encoding": "\u06a9\u062f\u06af\u0632\u0627\u0631\u06cc \u0645\u062a\u0646", +"Fullscreen": "\u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647", +"Action": "\u0639\u0645\u0644", +"Shortcut": "\u0645\u06cc\u0627\u0646\u0628\u064f\u0631", +"Help": "\u0631\u0627\u0647\u0646\u0645\u0627", +"Address": "\u0646\u0634\u0627\u0646\u06cc", +"Focus to menubar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0645\u0646\u0648", +"Focus to toolbar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631", +"Focus to element path": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0645\u0633\u06cc\u0631 \u0627\u0650\u0644\u0650\u0645\u0627\u0646", +"Focus to contextual toolbar": "\u062a\u0645\u0631\u06a9\u0632 \u0628\u0631 \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 \u0645\u062a\u0646\u06cc", +"Insert link (if link plugin activated)": "\u062f\u0631\u062c \u067e\u06cc\u0648\u0646\u062f (\u0627\u06af\u0631 \u0627\u0641\u0632\u0648\u0646\u0647\u0621 \u067e\u06cc\u0648\u0646\u062f \u0641\u0639\u0627\u0644 \u0634\u062f)", +"Save (if save plugin activated)": "\u062b\u0628\u062a\u00a0(\u0627\u06af\u0631 \u0627\u0641\u0632\u0648\u0646\u0647\u0621 \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0641\u0639\u0627\u0644 \u0634\u062f)", +"Find (if searchreplace plugin activated)": "\u06cc\u0627\u0641\u062a\u0646 (\u0627\u06af\u0631 \u0627\u0641\u0632\u0648\u0646\u0647\u0621 \u062c\u0633\u062a\u062c\u0648\/\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u0641\u0639\u0627\u0644 \u0634\u062f)", +"Plugins installed ({0}):": "\u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u0635\u0628 \u0634\u062f\u0646\u062f ({0}):", +"Premium plugins:": "\u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u0635\u0648\u0635:", +"Learn more...": "\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u06cc\u0634\u062a\u0631...", +"You are using {0}": "\u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 {0} \u0645\u06cc \u0628\u0627\u0634\u06cc\u062f", +"Plugins": "\u0627\u0641\u0632\u0648\u0646\u0647 \u0647\u0627", +"Handy Shortcuts": "\u0645\u06cc\u0627\u0646\u0628\u064f\u0631\u0647\u0627\u06cc \u0633\u0648\u062f\u0645\u0646\u062f", +"Horizontal line": "\u062e\u0637 \u0627\u0641\u0642\u06cc", +"Insert\/edit image": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u062a\u0635\u0648\u06cc\u0631", +"Image description": "\u062a\u0648\u0635\u06cc\u0641 \u062a\u0635\u0648\u06cc\u0631", +"Source": "\u0645\u0646\u0628\u0639", +"Dimensions": "\u0627\u0628\u0639\u0627\u062f", +"Constrain proportions": "\u062d\u0641\u0638 \u062a\u0646\u0627\u0633\u0628", +"General": "\u0639\u0645\u0648\u0645\u06cc", +"Advanced": "\u067e\u06cc\u0634\u0631\u0641\u062a\u0647", +"Style": "\u0633\u0628\u06a9", +"Vertical space": "\u0641\u0636\u0627\u06cc \u0639\u0645\u0648\u062f\u06cc", +"Horizontal space": "\u0641\u0636\u0627\u06cc \u0627\u0641\u0642\u06cc", +"Border": "\u0644\u0628\u0647", +"Insert image": "\u062f\u0631\u062c \u062a\u0635\u0648\u06cc\u0631", +"Image...": "\u062a\u0635\u0648\u06cc\u0631...", +"Image list": "\u0641\u0647\u0631\u0633\u062a \u062a\u0635\u0648\u06cc\u0631\u06cc", +"Rotate counterclockwise": "\u062f\u064e\u0648\u064e\u0631\u0627\u0646 \u067e\u0627\u062f \u0633\u0627\u0639\u062a \u06af\u0631\u062f", +"Rotate clockwise": "\u062f\u064e\u0648\u064e\u0631\u0627\u0646 \u0633\u0627\u0639\u062a \u06af\u0631\u062f", +"Flip vertically": "\u0642\u0631\u06cc\u0646\u0647 \u0639\u0645\u0648\u062f\u06cc", +"Flip horizontally": "\u0642\u0631\u06cc\u0646\u0647 \u0627\u0641\u0642\u06cc", +"Edit image": "\u0648\u06cc\u0631\u0627\u0633\u062a \u062a\u0635\u0648\u06cc\u0631", +"Image options": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062a\u0635\u0648\u06cc\u0631", +"Zoom in": "\u0628\u0632\u0631\u06af \u0646\u0645\u0627\u06cc\u06cc", +"Zoom out": "\u06a9\u0648\u0686\u06a9 \u0646\u0645\u0627\u06cc\u06cc", +"Crop": "\u0628\u064f\u0631\u0634 \u062f\u064f\u0648\u0631", +"Resize": "\u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647", +"Orientation": "\u06af\u0650\u0631\u0627", +"Brightness": "\u0631\u0648\u0634\u0646\u0627\u06cc\u06cc", +"Sharpen": "\u0628\u0647\u0628\u0648\u062f \u0644\u0628\u0647", +"Contrast": "\u062a\u0636\u0627\u062f \u0631\u0646\u06af", +"Color levels": "\u0633\u0637\u0648\u062d \u0631\u0646\u06af", +"Gamma": "\u06af\u0627\u0645\u0627", +"Invert": "\u0628\u0631\u06af\u0634\u062a \u0631\u0646\u06af", +"Apply": "\u0627\u0650\u0639\u0645\u0627\u0644", +"Back": "\u0628\u0627\u0632\u06af\u0634\u062a", +"Insert date\/time": "\u062f\u0631\u062c \u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646", +"Date\/time": "\u062a\u0627\u0631\u06cc\u062e\/\u0632\u0645\u0627\u0646", +"Insert\/Edit Link": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u067e\u06cc\u0648\u0646\u062f", +"Insert\/edit link": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u067e\u06cc\u0648\u0646\u062f", +"Text to display": "\u0645\u062a\u0646 \u0646\u0645\u0627\u06cc\u0634\u06cc", +"Url": "\u0622\u062f\u0631\u0633", +"Open link in...": "\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u06cc\u0648\u0646\u062f \u062f\u0631...", +"Current window": "\u067e\u0646\u062c\u0631\u0647 \u062c\u0627\u0631\u06cc", +"None": "\u0647\u06cc\u0686", +"New window": "\u067e\u0646\u062c\u0631\u0647\u0621 \u062c\u062f\u06cc\u062f", +"Remove link": "\u062d\u0630\u0641 \u067e\u06cc\u0648\u0646\u062f", +"Anchors": "\u0642\u0644\u0627\u0628 \u0647\u0627", +"Link...": "\u067e\u06cc\u0648\u0646\u062f...", +"Paste or type a link": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u06cc\u0627 \u062a\u0627\u06cc\u067e \u067e\u06cc\u0648\u0646\u062f", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0622\u062f\u0631\u0633 \u0648\u0631\u0648\u062f\u06cc \u06cc\u06a9 \u0631\u0627\u06cc\u0627\u0646\u0627\u0645\u0647 \u0628\u0627\u0634\u062f. \u0622\u06cc\u0627 \u062a\u0645\u0627\u06cc\u0644 \u0628\u0647 \u0627\u0641\u0632\u0648\u0631\u062f\u0646 \u067e\u06cc\u0634\u0648\u0646\u062f mailto: \u062f\u0627\u0631\u06cc\u062f\u061f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0622\u062f\u0631\u0633 \u0648\u0631\u0648\u062f\u06cc \u0627\u0631\u062c\u0627\u0639\u06cc \u0628\u0647 \u062e\u0627\u0631\u062c \u0627\u0632 \u0627\u06cc\u0646 \u0633\u0627\u06cc\u062a \u0645\u06cc \u0628\u0627\u0634\u062f. \u0622\u06cc\u0627 \u062a\u0645\u0627\u06cc\u0644 \u0628\u0647 \u0627\u0641\u0632\u0648\u0631\u062f\u0646 \u067e\u06cc\u0634\u0648\u0646\u062f http:\/\/ \u062f\u0627\u0631\u06cc\u062f\u061f", +"Link list": "\u0641\u0647\u0631\u0633\u062a \u067e\u06cc\u0648\u0646\u062f", +"Insert video": "\u062f\u0631\u062c \u0648\u06cc\u062f\u06cc\u0648", +"Insert\/edit video": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0648\u06cc\u062f\u06cc\u0648", +"Insert\/edit media": "\u062f\u0631\u062c\/\u0648\u06cc\u0631\u0627\u06cc\u0634 \u0631\u0633\u0627\u0646\u0647", +"Alternative source": "\u0645\u0646\u0628\u0639 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646", +"Alternative source URL": "\u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u0645\u0646\u0628\u0639 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646", +"Media poster (Image URL)": "\u067e\u0648\u0633\u062a\u0631 \u0631\u0633\u0627\u0646\u0647 (\u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u062a\u0635\u0648\u06cc\u0631)", +"Paste your embed code below:": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u06a9\u062f \u062c\u0627\u0633\u0627\u0632\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0632\u06cc\u0631: ", +"Embed": "\u062c\u0627\u0633\u0627\u0632\u06cc", +"Media...": "\u0631\u0633\u0627\u0646\u0647...", +"Nonbreaking space": "\u0641\u0636\u0627\u06cc \u062e\u0627\u0644\u06cc \u0628\u0631\u0634 \u0646\u0627\u067e\u0630\u06cc\u0631", +"Page break": "\u0628\u0631\u0634 \u0635\u0641\u062d\u0647", +"Paste as text": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0645\u062a\u0646", +"Preview": "\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634", +"Print...": "\u0686\u0627\u067e...", +"Save": "\u0630\u062e\u06cc\u0631\u0647", +"Find": "\u062c\u0633\u062a\u062c\u0648", +"Replace with": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u0628\u0627", +"Replace": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc", +"Replace all": "\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0647\u0645\u0647", +"Previous": "\u0642\u0628\u0644\u06cc", +"Next": "\u0628\u0639\u062f\u06cc", +"Find and replace...": "\u06cc\u0627\u0641\u062a\u0646 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0631\u062f\u0646...", +"Could not find the specified string.": "\u0631\u0634\u062a\u0647\u0621 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u06cc\u0627\u0641\u062a \u0646\u06af\u0631\u062f\u06cc\u062f.", +"Match case": "\u062a\u0637\u0627\u0628\u0642 \u062d\u0631\u0648\u0641", +"Find whole words only": "\u06cc\u0627\u0641\u062a\u0646 \u062f\u0642\u06cc\u0642\u0627\u064b \u06a9\u0644 \u0648\u0627\u0698\u0647", +"Spell check": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627", +"Ignore": "\u0628\u06cc \u062e\u06cc\u0627\u0644", +"Ignore all": "\u0628\u06cc \u062e\u06cc\u0627\u0644 \u0647\u0645\u0647", +"Finish": "\u0627\u062a\u0645\u0627\u0645", +"Add to Dictionary": "\u0628\u0647 \u0648\u0627\u0698\u0647 \u0646\u0627\u0645\u0647 \u0628\u06cc \u0627\u0641\u0632\u0627", +"Insert table": "\u062f\u0631\u062c \u062c\u062f\u0648\u0644", +"Table properties": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062c\u062f\u0648\u0644", +"Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644", +"Cell": "\u0633\u0644\u0648\u0644", +"Row": "\u0633\u0637\u0631", +"Column": "\u0633\u062a\u0648\u0646", +"Cell properties": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0644\u0648\u0644", +"Merge cells": "\u067e\u06cc\u0648\u0646\u062f \u0633\u0644\u0648\u0644 \u0647\u0627", +"Split cell": "\u062c\u062f\u0627 \u0633\u0627\u0632\u06cc \u0633\u0644\u0648\u0644", +"Insert row before": "\u062f\u0631\u062c \u0633\u0637\u0631 \u062f\u0631 \u0628\u0627\u0644\u0627", +"Insert row after": "\u062f\u0631\u062c \u0633\u0637\u0631 \u062f\u0631 \u067e\u0627\u06cc\u06cc\u0646", +"Delete row": "\u062d\u0630\u0641 \u0633\u0637\u0631", +"Row properties": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0637\u0631", +"Cut row": "\u0628\u0631\u0634 \u0633\u0637\u0631", +"Copy row": "\u0631\u0648\u0646\u0648\u06cc\u0633\u06cc \u0633\u0637\u0631", +"Paste row before": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631 \u062f\u0631 \u0628\u0627\u0644\u0627", +"Paste row after": "\u0686\u0633\u0628\u0627\u0646\u062f\u0646 \u0633\u0637\u0631 \u062f\u0631 \u067e\u0627\u06cc\u06cc\u0646", +"Insert column before": "\u062f\u0631\u062c \u0633\u062a\u0648\u0646 \u0642\u0628\u0644", +"Insert column after": "\u062f\u0631\u062c \u0633\u062a\u0648\u0646 \u0628\u0639\u062f", +"Delete column": "\u062d\u0630\u0641 \u0633\u062a\u0648\u0646", +"Cols": "\u0633\u062a\u0648\u0646 \u0647\u0627", +"Rows": "\u0633\u0637\u0631 \u0647\u0627", +"Width": "\u0639\u0631\u0636", +"Height": "\u0627\u0631\u062a\u0641\u0627\u0639", +"Cell spacing": "\u0641\u0627\u0635\u0644\u0647 \u0645\u06cc\u0627\u0646 \u0633\u0644\u0648\u0644\u06cc", +"Cell padding": "\u062d\u0627\u0634\u06cc\u0647 \u062f\u0631\u0648\u0646 \u0633\u0644\u0648\u0644\u06cc", +"Show caption": "\u0646\u0645\u0627\u06cc\u0634 \u0639\u0646\u0648\u0627\u0646", +"Left": "\u0686\u067e", +"Center": "\u0645\u06cc\u0627\u0646\u0647", +"Right": "\u0631\u0627\u0633\u062a", +"Cell type": "\u0646\u0648\u0639 \u0633\u0644\u0648\u0644", +"Scope": "\u062d\u0648\u0632\u0647", +"Alignment": "\u0647\u0645 \u062a\u0631\u0627\u0632\u06cc", +"H Align": "\u062a\u0631\u0627\u0632 \u0627\u0641\u0642\u06cc", +"V Align": "\u062a\u0631\u0627\u0632 \u0639\u0645\u0648\u062f\u06cc", +"Top": "\u0628\u0627\u0644\u0627", +"Middle": "\u0645\u06cc\u0627\u0646\u0647", +"Bottom": "\u067e\u0627\u06cc\u06cc\u0646", +"Header cell": "\u0633\u0644\u0648\u0644 \u0633\u0631 \u0633\u062a\u0648\u0646", +"Row group": "\u06af\u0631\u0648\u0647 \u0633\u0637\u0631\u06cc", +"Column group": "\u06af\u0631\u0648\u0647 \u0633\u062a\u0648\u0646\u06cc", +"Row type": "\u0646\u0648\u0639 \u0633\u0637\u0631", +"Header": "\u0633\u0631 \u0622\u0645\u062f", +"Body": "\u0628\u062f\u0646\u0647", +"Footer": "\u067e\u0627 \u0646\u0648\u0634\u062a", +"Border color": "\u0631\u0646\u06af \u0644\u0628\u0647", +"Insert template...": "\u062f\u0631\u062c \u0627\u0644\u06af\u0648...", +"Templates": "\u0627\u0644\u06af\u0648\u0647\u0627", +"Template": "\u0627\u0644\u06af\u0648", +"Text color": "\u0631\u0646\u06af \u0645\u062a\u0646", +"Background color": "\u0631\u0646\u06af \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647", +"Custom...": "\u062f\u0644\u062e\u0648\u0627\u0647...", +"Custom color": "\u0631\u0646\u06af \u062f\u0644\u062e\u0648\u0627\u0647", +"No color": "\u0628\u062f\u0648\u0646 \u0631\u0646\u06af", +"Remove color": "\u062d\u0630\u0641 \u0631\u0646\u06af", +"Table of Contents": "\u0641\u0647\u0631\u0633\u062a \u0639\u0646\u0627\u0648\u06cc\u0646", +"Show blocks": "\u0646\u0645\u0627\u06cc\u0634 \u0628\u0644\u0648\u06a9 \u0647\u0627", +"Show invisible characters": "\u0646\u0645\u0627\u06cc\u0634 \u0646\u0648\u06cc\u0633\u0647 \u0647\u0627\u06cc \u0646\u0627\u067e\u06cc\u062f\u0627", +"Word count": "\u062a\u0639\u062f\u0627\u062f \u0648\u0627\u0698\u0647\u200c\u0647\u0627", +"Words: {0}": "\u0648\u0627\u0698\u0647 \u0647\u0627: {0}", +"{0} words": "{0} \u0648\u0627\u0698\u0647", +"File": "\u067e\u0631\u0648\u0646\u062f\u0647", +"Edit": "\u0648\u06cc\u0631\u0627\u06cc\u0634", +"Insert": "\u062f\u0631\u062c", +"View": "\u0646\u0645\u0627\u06cc\u0634", +"Format": "\u0642\u0627\u0644\u0628", +"Table": "\u062c\u062f\u0648\u0644", +"Tools": "\u0627\u0628\u0632\u0627\u0631\u0647\u0627", +"Powered by {0}": "\u062a\u0648\u0627\u0646 \u06af\u0631\u0641\u062a\u0647 \u0627\u0632 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0646\u0627\u062d\u06cc\u0647 \u0645\u062a\u0646 \u063a\u0646\u06cc.\n\u062c\u0647\u062a \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u0646\u0648 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc ALT + F9 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.\n\u062c\u0647\u062a \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0648\u0627\u0631 \u0627\u0628\u0632\u0627\u0631 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc ALT + F10 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.\n\u062c\u0647\u062a \u0645\u0634\u0627\u0647\u062f\u0647 \u0631\u0627\u0647\u0646\u0645\u0627 \u0627\u0632 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u062a\u0631\u06a9\u06cc\u0628\u06cc ALT + 0 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0645\u0627\u06cc\u06cc\u062f.", +"Image title": "\u0639\u0646\u0648\u0627\u0646 \u062a\u0635\u0648\u06cc\u0631", +"Border width": "\u0639\u0631\u0636 \u062d\u0627\u0634\u06cc\u0647", +"Border style": "\u0633\u0628\u06a9 \u062d\u0627\u0634\u06cc\u0647", +"Error": "\u062e\u0637\u0627", +"Warn": "\u0647\u0634\u062f\u0627\u0631", +"Valid": "\u0645\u0639\u062a\u0628\u0631", +"To open the popup, press Shift+Enter": "\u062c\u0647\u062a \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u067e\u0646\u062c\u0631\u0647 \u0628\u0627\u0632\u0634\u0648\u060c \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc Shift + Enter \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.", +"Rich Text Area. Press ALT-0 for help.": "\u0646\u0627\u062d\u06cc\u0647 \u0645\u062a\u0646 \u063a\u0646\u06cc. \u062c\u0647\u062a \u0645\u0634\u0627\u0647\u062f\u0647\u0654 \u0631\u0627\u0647\u0646\u0645\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc ALT + 0 \u0631\u0627 \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.", +"System Font": "\u0641\u0648\u0646\u062a \u0633\u06cc\u0633\u062a\u0645\u06cc", +"Failed to upload image: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062a\u0635\u0648\u06cc\u0631: {0}", +"Failed to load plugin: {0} from url {1}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u0641\u0632\u0648\u0646\u0647: {0} \u0627\u0632 \u0646\u0634\u0627\u0646\u06cc \u0648\u0628 {1}", +"Failed to load plugin url: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0646\u0634\u0627\u0646\u06cc \u0648\u0628 \u0627\u0641\u0632\u0648\u0646\u0647: {0}", +"Failed to initialize plugin: {0}": "\u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0641\u0632\u0648\u0646\u0647: {0}", +"example": "\u0645\u062b\u0627\u0644", +"Search": "\u062c\u0633\u062a\u062c\u0648", +"All": "\u0647\u0645\u0647", +"Currency": "\u0627\u0631\u0632", +"Text": "\u0645\u062a\u0646", +"Quotations": "\u0646\u0642\u0644\u200c\u0642\u0648\u0644\u200c\u0647\u0627", +"Mathematical": "\u0631\u06cc\u0627\u0636\u06cc", +"Extended Latin": "\u0644\u0627\u062a\u06cc\u0646 \u06af\u0633\u062a\u0631\u062f\u0647", +"Symbols": "\u0646\u0645\u0627\u062f\u0647\u0627", +"Arrows": "\u067e\u06cc\u06a9\u0627\u0646\u200c\u0647\u0627", +"User Defined": "\u0628\u0647 \u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631", +"dollar sign": "\u0646\u0645\u0627\u062f \u062f\u0644\u0627\u0631", +"currency sign": "\u0646\u0645\u0627\u062f \u0627\u0631\u0632", +"euro-currency sign": "\u0646\u0645\u0627\u062f \u06cc\u0648\u0631\u0648", +"colon sign": "\u0646\u0645\u0627\u062f \u062f\u0648\u0646\u0642\u0637\u0647", +"cruzeiro sign": "\u0646\u0645\u0627\u062f \u06a9\u0631\u0648\u0632\u06cc\u0631\u0648", +"french franc sign": "\u0646\u0645\u0627\u062f \u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647", +"lira sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0631\u0647", +"mill sign": "\u0646\u0645\u0627\u062f \u0645\u06cc\u0644", +"naira sign": "\u0646\u0645\u0627\u062f \u0646\u0627\u06cc\u0631\u0627", +"peseta sign": "\u0646\u0645\u0627\u062f \u067e\u0632\u062a\u0627", +"rupee sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u067e\u06cc\u0647", +"won sign": "\u0646\u0645\u0627\u062f \u0648\u0648\u0646", +"new sheqel sign": "\u0646\u0645\u0627\u062f \u0634\u06a9\u0644 \u062c\u062f\u06cc\u062f", +"dong sign": "\u0646\u0645\u0627\u062f \u062f\u0627\u0646\u06af", +"kip sign": "\u0646\u0645\u0627\u062f \u06a9\u06cc\u067e", +"tugrik sign": "\u0646\u0645\u0627\u062f \u062a\u0648\u06af\u0631\u0648\u06af", +"drachma sign": "\u0646\u0645\u0627\u062f \u062f\u0631\u0627\u062e\u0645\u0627", +"german penny symbol": "\u0646\u0645\u0627\u062f \u067e\u0646\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc", +"peso sign": "\u0646\u0645\u0627\u062f \u067e\u0632\u0648", +"guarani sign": "\u0646\u0645\u0627\u062f \u06af\u0648\u0627\u0631\u0627\u0646\u06cc", +"austral sign": "\u0646\u0645\u0627\u062f \u0622\u0633\u062a\u0631\u0627\u0644", +"hryvnia sign": "\u0646\u0645\u0627\u062f \u06af\u0631\u06cc\u0648\u0646\u0627", +"cedi sign": "\u0646\u0645\u0627\u062f \u0633\u062f\u06cc", +"livre tournois sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0648\u0631\u0647 \u062a\u0648\u0631\u0646\u0648\u0627", +"spesmilo sign": "\u0646\u0645\u0627\u062f \u0627\u0633\u067e\u0633\u0645\u06cc\u0644\u0648", +"tenge sign": "\u0646\u0645\u0627\u062f \u062a\u0646\u06af\u0647", +"indian rupee sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u067e\u06cc\u0647 \u0647\u0646\u062f\u06cc", +"turkish lira sign": "\u0646\u0645\u0627\u062f \u0644\u06cc\u0631\u0647 \u062a\u0631\u06a9\u06cc", +"nordic mark sign": "\u0646\u0645\u0627\u062f \u0645\u0627\u0631\u06a9 \u0646\u0631\u0648\u0698", +"manat sign": "\u0646\u0645\u0627\u062f \u0645\u0646\u0627\u062a", +"ruble sign": "\u0646\u0645\u0627\u062f \u0631\u0648\u0628\u0644", +"yen character": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0646", +"yuan character": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0648\u0627\u0646", +"yuan character, in hong kong and taiwan": "\u0646\u0648\u06cc\u0633\u0647 \u06cc\u0648\u0627\u0646\u060c \u062f\u0631 \u0647\u0646\u06af\u200c\u06a9\u0646\u06af \u0648 \u062a\u0627\u06cc\u0648\u0627\u0646", +"yen\/yuan character variant one": "\u0646\u0648\u06cc\u0633\u0647 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06cc\u0646\/\u06cc\u0648\u0627\u0646", +"Loading emoticons...": "\u062f\u0631 \u062d\u0627\u0644 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u06a9\u0644\u06a9\u200c\u0647\u0627...", +"Could not load emoticons": "\u0634\u06a9\u0644\u06a9\u200c\u0647\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0646\u0634\u062f\u0646\u062f", +"People": "\u0627\u0641\u0631\u0627\u062f", +"Animals and Nature": "\u062d\u06cc\u0648\u0627\u0646\u0627\u062a \u0648 \u0637\u0628\u06cc\u0639\u062a", +"Food and Drink": "\u063a\u0630\u0627 \u0648 \u0646\u0648\u0634\u06cc\u062f\u0646\u06cc", +"Activity": "\u0641\u0639\u0627\u0644\u06cc\u062a", +"Travel and Places": "\u0633\u0641\u0631 \u0648 \u0627\u0645\u0627\u06a9\u0646", +"Objects": "\u0627\u0634\u06cc\u0627", +"Flags": "\u067e\u0631\u0686\u0645\u200c\u0647\u0627", +"Characters": "\u0646\u0648\u06cc\u0633\u0647\u200c\u0647\u0627", +"Characters (no spaces)": "\u0646\u0648\u06cc\u0633\u0647 \u0647\u0627 (\u0628\u062f\u0648\u0646 \u0641\u0627\u0635\u0644\u0647)", +"Error: Form submit field collision.": "\u062e\u0637\u0627: \u062a\u062f\u0627\u062e\u0644 \u062f\u0631 \u062b\u0628\u062a \u0641\u0631\u0645.", +"Error: No form element found.": "\u062e\u0637\u0627: \u0647\u06cc\u0686 \u0627\u0644\u0645\u0627\u0646 \u0641\u0631\u0645\u06cc \u06cc\u0627\u0641\u062a \u0646\u0634\u062f.", +"Update": "\u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc", +"Color swatch": "\u0646\u0645\u0648\u0646\u0647 \u0631\u0646\u06af", +"Turquoise": "\u0641\u06cc\u0631\u0648\u0632\u0647\u200c\u0627\u06cc", +"Green": "\u0633\u0628\u0632", +"Blue": "\u0622\u0628\u06cc", +"Purple": "\u0628\u0646\u0641\u0634", +"Navy Blue": "\u0633\u0631\u0645\u0647\u200c\u0627\u06cc", +"Dark Turquoise": "\u0641\u06cc\u0631\u0648\u0632\u0647\u200c\u0627\u06cc \u062a\u06cc\u0631\u0647", +"Dark Green": "\u0633\u0628\u0632 \u062a\u06cc\u0631\u0647", +"Medium Blue": "\u0622\u0628\u06cc \u0633\u06cc\u0631", +"Medium Purple": "\u0622\u0628\u06cc \u0628\u0646\u0641\u0634", +"Midnight Blue": "\u0622\u0628\u06cc \u0646\u0641\u062a\u06cc", +"Yellow": "\u0632\u0631\u062f", +"Orange": "\u0646\u0627\u0631\u0646\u062c\u06cc", +"Red": "\u0642\u0631\u0645\u0632", +"Light Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u0631\u0648\u0634\u0646", +"Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc", +"Dark Yellow": "\u0632\u0631\u062f \u062a\u06cc\u0631\u0647", +"Dark Orange": "\u0646\u0627\u0631\u0646\u062c\u06cc \u062a\u06cc\u0631\u0647", +"Dark Red": "\u0642\u0631\u0645\u0632 \u062a\u06cc\u0631\u0647", +"Medium Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u0646\u06cc\u0645\u0647\u200c\u0631\u0648\u0634\u0646", +"Dark Gray": "\u062e\u0627\u06a9\u0633\u062a\u0631\u06cc \u062a\u06cc\u0631\u0647", +"Black": "\u0633\u06cc\u0627\u0647", +"White": "\u0633\u0641\u06cc\u062f", +"Switch to or from fullscreen mode": "\u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645\u200c\u0635\u0641\u062d\u0647 \u06cc\u0627 \u0628\u0647 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645\u200c\u0635\u0641\u062d\u0647", +"Open help dialog": "\u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u062f\u0631 \u0631\u0627\u0647\u0646\u0645\u0627", +"history": "\u062a\u0627\u0631\u06cc\u062e\u0686\u0647", +"styles": "\u0633\u0628\u06a9\u200c\u0647\u0627", +"formatting": "\u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc", +"alignment": "\u062a\u0631\u0627\u0632\u0628\u0646\u062f\u06cc", +"indentation": "\u062a\u0648\u0631\u0641\u062a\u06af\u06cc", +"permanent pen": "\u0642\u0644\u0645 \u062f\u0627\u0626\u0645\u06cc", +"comments": "\u0646\u0638\u0631\u0627\u062a", +"Anchor": "\u0642\u0644\u0627\u0628", +"Special character": "\u0646\u0648\u06cc\u0633\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635", +"Code sample": "\u0646\u0645\u0648\u0646\u0647 \u06a9\u064f\u062f", +"Color": "\u0631\u0646\u06af", +"Emoticons": "\u0635\u0648\u0631\u062a\u06a9 \u0647\u0627", +"Document properties": "\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0646\u062f", +"Image": "\u062a\u0635\u0648\u06cc\u0631", +"Insert link": "\u062f\u0631\u062c \u067e\u06cc\u0648\u0646\u062f", +"Target": "\u0645\u0642\u0635\u062f", +"Link": "\u067e\u06cc\u0648\u0646\u062f", +"Poster": "\u067e\u0648\u0633\u062a\u0631", +"Media": "\u0631\u0633\u0627\u0646\u0647", +"Print": "\u0686\u0627\u067e", +"Prev": "\u0642\u0628\u0644\u06cc", +"Find and replace": "\u062c\u0633\u062a\u062c\u0648 \u0648 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc", +"Whole words": "\u062a\u0645\u0627\u0645 \u0648\u0627\u0698\u06af\u0627\u0646", +"Spellcheck": "\u0628\u0631\u0631\u0633\u06cc \u0627\u0645\u0644\u0627\u0621", +"Caption": "\u0639\u0646\u0648\u0627\u0646", +"Insert template": "\u062f\u0631\u062c \u0627\u0644\u06af\u0648", +"_dir": "rtl" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/fi.js b/common/plugins/editors/tinymce/media/langs/fi.js new file mode 100755 index 0000000000000000000000000000000000000000..6a49571702908477143ee78f01d03e7883d42815 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/fi.js @@ -0,0 +1,389 @@ +tinymce.addI18n('fi',{ +"Redo": "Tee uudelleen", +"Undo": "Kumoa", +"Cut": "Leikkaa", +"Copy": "Kopioi", +"Paste": "Liit\u00e4", +"Select all": "Valitse kaikki", +"New document": "Uusi asiakirja", +"Ok": "Ok", +"Cancel": "Peruuta", +"Visual aids": "Visuaaliset neuvot", +"Bold": "Lihavoitu", +"Italic": "Kursivoitu", +"Underline": "Alleviivaus", +"Strikethrough": "Yliviivaus", +"Superscript": "Yl\u00e4indeksi", +"Subscript": "Alaindeksi", +"Clear formatting": "Poista muotoilu", +"Align left": "Tasaa vasemmalle", +"Align center": "Tasaa keskelle", +"Align right": "Tasaa oikealle", +"Justify": "Tasaus", +"Bullet list": "J\u00e4rjest\u00e4m\u00e4t\u00f6n lista", +"Numbered list": "J\u00e4rjestetty lista", +"Decrease indent": "Sisenn\u00e4", +"Increase indent": "Loitonna", +"Close": "Sulje", +"Formats": "Muotoilut", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Selaimesi ei tue leikep\u00f6yd\u00e4n suoraa k\u00e4ytt\u00e4mist\u00e4. Ole hyv\u00e4 ja k\u00e4yt\u00e4 n\u00e4pp\u00e4imist\u00f6n Ctrl+X\/C\/V n\u00e4pp\u00e4inyhdistelmi\u00e4.", +"Headers": "Otsikot", +"Header 1": "Otsikko 1", +"Header 2": "Otsikko 2", +"Header 3": "Otsikko 3", +"Header 4": "Otsikko 4", +"Header 5": "Otsikko 5", +"Header 6": "Otsikko 6", +"Headings": "Otsikot", +"Heading 1": "Otsikko 1", +"Heading 2": "Otsikko 2", +"Heading 3": "Otsikko 3", +"Heading 4": "Otsikko 4", +"Heading 5": "Otsikko 5", +"Heading 6": "Otsikko 6", +"Preformatted": "Esimuotoiltu", +"Div": "Div", +"Pre": "Pre", +"Code": "Koodi", +"Paragraph": "Kappale", +"Blockquote": "Lohkolainaus", +"Inline": "Samalla rivill\u00e4", +"Blocks": "Lohkot", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Liitt\u00e4minen on nyt pelk\u00e4n tekstin -tilassa. Sis\u00e4ll\u00f6t liitet\u00e4\u00e4n nyt pelkk\u00e4n\u00e4 tekstin\u00e4, kunnes otat vaihtoehdon pois k\u00e4yt\u00f6st\u00e4.", +"Fonts": "Fontti", +"Font Sizes": "Fonttikoko", +"Class": "Luokka", +"Browse for an image": "Selaa kuvia", +"OR": "TAI", +"Drop an image here": "Pudota kuva t\u00e4h\u00e4n", +"Upload": "Vie", +"Block": "Lohko", +"Align": "Tasaa", +"Default": "Oletus", +"Circle": "Pallo", +"Disc": "Ympyr\u00e4", +"Square": "Neli\u00f6", +"Lower Alpha": "pienet kirjaimet: a, b, c", +"Lower Greek": "pienet kirjaimet: \u03b1, \u03b2, \u03b3", +"Lower Roman": "pienet kirjaimet: i, ii, iii", +"Upper Alpha": "isot kirjaimet: A, B, C", +"Upper Roman": "isot kirjaimet: I, II, III", +"Anchor...": "Ankkuri...", +"Name": "Nimi", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id voi alkaa kirjaimella, sen j\u00e4lkeen voi k\u00e4ytt\u00e4\u00e4 kirjaimia, numeroja, viivoja, pisteit\u00e4, kaksoispistett\u00e4 ja alaviivausta", +"You have unsaved changes are you sure you want to navigate away?": "Sinulla on tallentamattomia muutoksia, haluatko varmasti siirty\u00e4 toiselle sivulle?", +"Restore last draft": "Palauta aiempi luonnos", +"Special characters...": "Erikoismerkit...", +"Source code": "L\u00e4hdekoodi", +"Insert\/Edit code sample": "Lis\u00e4\u00e4\/muokkaa koodiesimerkki", +"Language": "Kieli", +"Code sample...": "Koodin\u00e4yte...", +"Color Picker": "V\u00e4rivalitsin", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Vasemmalta oikealle", +"Right to left": "Oikealta vasemmalle", +"Emoticons...": "Emoticonit...", +"Metadata and Document Properties": "Metadata ja asiakirjan ominaisuudet", +"Title": "Otsikko", +"Keywords": "Avainsanat", +"Description": "Kuvaus", +"Robots": "Robotit", +"Author": "Tekij\u00e4", +"Encoding": "Merkist\u00f6", +"Fullscreen": "Koko ruutu", +"Action": "Toiminto", +"Shortcut": "Oikotie", +"Help": "Ohje", +"Address": "Osoite", +"Focus to menubar": "Kohdistus valikkoon", +"Focus to toolbar": "Kohdistus ty\u00f6kalupalkkiin", +"Focus to element path": "Kohdistus elementtiin", +"Focus to contextual toolbar": "Kohdistus kontekstuaaliseen ty\u00f6kalupalkkiin", +"Insert link (if link plugin activated)": "Lis\u00e4\u00e4 linkki (jos linkki-liit\u00e4nn\u00e4inen aktiivinen)", +"Save (if save plugin activated)": "Tallenna (jos tallenna-liit\u00e4nn\u00e4inen aktiivinen)", +"Find (if searchreplace plugin activated)": "Etsi (jos etsikorvaa-liit\u00e4nn\u00e4inen aktiivinen)", +"Plugins installed ({0}):": "Asennetut liit\u00e4nn\u00e4iset ({0}):", +"Premium plugins:": "Premium liit\u00e4nn\u00e4iset:", +"Learn more...": "Lis\u00e4tietoja...", +"You are using {0}": "K\u00e4yt\u00e4t {0}", +"Plugins": "Liit\u00e4nn\u00e4iset", +"Handy Shortcuts": "K\u00e4tev\u00e4t pikan\u00e4pp\u00e4imet", +"Horizontal line": "Vaakasuora viiva", +"Insert\/edit image": "Lis\u00e4\u00e4\/muokkaa kuva", +"Image description": "Kuvaus", +"Source": "L\u00e4hde", +"Dimensions": "Mittasuhteet", +"Constrain proportions": "S\u00e4ilyt\u00e4 mittasuhteet", +"General": "Yleiset", +"Advanced": "Lis\u00e4asetukset", +"Style": "Tyyli", +"Vertical space": "Vertikaalinen tila", +"Horizontal space": "Horisontaalinen tila", +"Border": "Reunus", +"Insert image": "Lis\u00e4\u00e4 kuva", +"Image...": "Kuva...", +"Image list": "Kuvalista", +"Rotate counterclockwise": "Kierr\u00e4 vastap\u00e4iv\u00e4\u00e4n", +"Rotate clockwise": "Kierr\u00e4 my\u00f6t\u00e4p\u00e4iv\u00e4\u00e4n", +"Flip vertically": "K\u00e4\u00e4nn\u00e4 pystysuunnassa", +"Flip horizontally": "K\u00e4\u00e4nn\u00e4 vaakasuunnassa", +"Edit image": "Muokkaa kuvaa", +"Image options": "Kuvan asetukset", +"Zoom in": "L\u00e4henn\u00e4", +"Zoom out": "Loitonna", +"Crop": "Rajaa valintaan", +"Resize": "Kuvan koon muutos", +"Orientation": "Suunta", +"Brightness": "Kirkkaus", +"Sharpen": "Ter\u00e4vyys", +"Contrast": "Kontrasti", +"Color levels": "V\u00e4ritasot", +"Gamma": "Gamma", +"Invert": "K\u00e4\u00e4nteinen", +"Apply": "Aseta", +"Back": "Takaisin", +"Insert date\/time": "Lis\u00e4\u00e4 p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4 tai aika", +"Date\/time": "P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4\/aika", +"Insert\/Edit Link": "Lis\u00e4\u00e4 linkki\/muokkaa linkki\u00e4", +"Insert\/edit link": "Lis\u00e4\u00e4\/muokkaa linkki", +"Text to display": "N\u00e4ytett\u00e4v\u00e4 teksti", +"Url": "Osoite", +"Open link in...": "Avaa linkki...", +"Current window": "Nykyinen ikkuna", +"None": "Ei mit\u00e4\u00e4n", +"New window": "Uusi ikkuna", +"Remove link": "Poista linkki", +"Anchors": "Ankkurit", +"Link...": "Linkki...", +"Paste or type a link": "Sijoita tai kirjoita linkki", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan s\u00e4hk\u00f6postiosoite. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun mailto: -etuliitteen?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Antamasi osoite n\u00e4ytt\u00e4\u00e4 olevan ulkoinen linkki. Haluatko lis\u00e4t\u00e4 osoitteeseen vaaditun http:\/\/ -etuliitteen?", +"Link list": "Linkkilista", +"Insert video": "Lis\u00e4\u00e4 video", +"Insert\/edit video": "Lis\u00e4\u00e4\/muokkaa video", +"Insert\/edit media": "Lis\u00e4\u00e4\/muokkaa media", +"Alternative source": "Vaihtoehtoinen l\u00e4hde", +"Alternative source URL": "Vaihtoehtoinen l\u00e4hde-URL", +"Media poster (Image URL)": "Median julkaisija (kuvan URL)", +"Paste your embed code below:": "Liit\u00e4 upotuskoodisi alapuolelle:", +"Embed": "Upota", +"Media...": "Media...", +"Nonbreaking space": "Sitova v\u00e4lily\u00f6nti", +"Page break": "Sivunvaihto", +"Paste as text": "Liit\u00e4 tekstin\u00e4", +"Preview": "Esikatselu", +"Print...": "Tulosta", +"Save": "Tallenna", +"Find": "Etsi", +"Replace with": "Korvaa", +"Replace": "Korvaa", +"Replace all": "Korvaa kaikki", +"Previous": "Edellinen", +"Next": "Seur.", +"Find and replace...": "Etsi ja korvaa...", +"Could not find the specified string.": "Haettua merkkijonoa ei l\u00f6ytynyt.", +"Match case": "Erota isot ja pienet kirjaimet", +"Find whole words only": "Etsi vain kokonaisia sanoja", +"Spell check": "Oikeinkirjoituksen tarkistus", +"Ignore": "\u00c4l\u00e4 huomioi", +"Ignore all": "\u00c4l\u00e4 huomioi mit\u00e4\u00e4n", +"Finish": "Lopeta", +"Add to Dictionary": "Lis\u00e4\u00e4 sanakirjaan", +"Insert table": "Lis\u00e4\u00e4 taulukko", +"Table properties": "Taulukon ominaisuudet", +"Delete table": "Poista taulukko", +"Cell": "Solu", +"Row": "Rivi", +"Column": "Sarake", +"Cell properties": "Solun ominaisuudet", +"Merge cells": "Yhdist\u00e4 solut", +"Split cell": "Jaa solu", +"Insert row before": "Lis\u00e4\u00e4 rivi ennen", +"Insert row after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen", +"Delete row": "Poista rivi", +"Row properties": "Rivin ominaisuudet", +"Cut row": "Leikkaa rivi", +"Copy row": "Kopioi rivi", +"Paste row before": "Liit\u00e4 rivi ennen", +"Paste row after": "Liit\u00e4 rivi j\u00e4lkeen", +"Insert column before": "Lis\u00e4\u00e4 rivi ennen", +"Insert column after": "Lis\u00e4\u00e4 rivi j\u00e4lkeen", +"Delete column": "Poista sarake", +"Cols": "Sarakkeet", +"Rows": "Rivit", +"Width": "Leveys", +"Height": "Korkeus", +"Cell spacing": "Solun v\u00e4li", +"Cell padding": "Solun tyhj\u00e4 tila", +"Show caption": "N\u00e4yt\u00e4 kuvateksti", +"Left": "Vasen", +"Center": "Keskell\u00e4", +"Right": "Oikea", +"Cell type": "Solun tyyppi", +"Scope": "Laajuus", +"Alignment": "Tasaus", +"H Align": "H tasaus", +"V Align": "V tasaus", +"Top": "Yl\u00e4reuna", +"Middle": "Keskikohta", +"Bottom": "Alareuna", +"Header cell": "Otsikkosolu", +"Row group": "Riviryhm\u00e4", +"Column group": "Sarakeryhm\u00e4", +"Row type": "Rivityyppi", +"Header": "Otsikko", +"Body": "Runko", +"Footer": "Alaosa", +"Border color": "Reunuksen v\u00e4ri", +"Insert template...": "Lis\u00e4\u00e4 malli...", +"Templates": "Pohjat", +"Template": "Pohja", +"Text color": "Tekstin v\u00e4ri", +"Background color": "Taustan v\u00e4ri", +"Custom...": "Mukauta...", +"Custom color": "Mukautettu v\u00e4ri", +"No color": "Ei v\u00e4ri\u00e4", +"Remove color": "Poista v\u00e4ri", +"Table of Contents": "Sis\u00e4llysluettelo", +"Show blocks": "N\u00e4yt\u00e4 lohkot", +"Show invisible characters": "N\u00e4yt\u00e4 n\u00e4kym\u00e4tt\u00f6m\u00e4t merkit", +"Word count": "Sanam\u00e4\u00e4r\u00e4", +"Words: {0}": "Sanat: {0}", +"{0} words": "{0} sanaa", +"File": "Tiedosto", +"Edit": "Muokkaa", +"Insert": "Lis\u00e4\u00e4", +"View": "N\u00e4yt\u00e4", +"Format": "Muotoilu", +"Table": "Taulukko", +"Tools": "Ty\u00f6kalut", +"Powered by {0}": "Tehty {0}:ll\u00e4", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rikastetun tekstin alue. Paina ALT-F9 valikkoon. Paina ALT-F10 ty\u00f6kaluriviin. Paina ALT-0 ohjeeseen.", +"Image title": "Kuvan otsikko", +"Border width": "Reunuksen leveys", +"Border style": "Reunuksen tyyli", +"Error": "Virhe", +"Warn": "Varoitus", +"Valid": "Voimassa", +"To open the popup, press Shift+Enter": "Avaa ponnahdusikkuna painamalla Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Rikastetun tekstin alue. Avaa ohje painamalla ALT-0.", +"System Font": "J\u00e4rjestelm\u00e4fontti", +"Failed to upload image: {0}": "Kuvan lataus ep\u00e4onnistui: {0}", +"Failed to load plugin: {0} from url {1}": "Liit\u00e4nn\u00e4isen lataus ep\u00e4onnistui: {0} url:st\u00e4 {1}", +"Failed to load plugin url: {0}": "Liit\u00e4nn\u00e4isen url:n lataus ep\u00e4onnistui: {0}", +"Failed to initialize plugin: {0}": "Liit\u00e4nn\u00e4isen alustus ep\u00e4onnistui: {0}", +"example": "esimerkki", +"Search": "Etsi", +"All": "Kaikki", +"Currency": "Valuutta", +"Text": "Teksti", +"Quotations": "Lainaukset", +"Mathematical": "Matemaattiset", +"Extended Latin": "Laajennettu latina", +"Symbols": "Symbolit", +"Arrows": "Nuolet", +"User Defined": "K\u00e4ytt\u00e4j\u00e4m\u00e4\u00e4ritetty", +"dollar sign": "dollarimerkki", +"currency sign": "valuuttamerkki", +"euro-currency sign": "eurovaluuttamerkki", +"colon sign": "kaksoispisteen merkki", +"cruzeiro sign": "cruzeiro-merkki", +"french franc sign": "ranskalaisen frangin merkki", +"lira sign": "liiran merkki", +"mill sign": "millin merkki", +"naira sign": "nairan merkki", +"peseta sign": "pesetan merkki", +"rupee sign": "rupian merkki", +"won sign": "wonin merkki", +"new sheqel sign": "uuden sekelin merkki", +"dong sign": "dongin merkki", +"kip sign": "kipin merkki", +"tugrik sign": "tugrikin merkki", +"drachma sign": "drakman merkki", +"german penny symbol": "saksalaisen pennin merkki", +"peso sign": "peson merkki", +"guarani sign": "guaranin merkki", +"austral sign": "australin merkki", +"hryvnia sign": "hryvnian merkki", +"cedi sign": "cedin merkki", +"livre tournois sign": "livre tournoisin merkki", +"spesmilo sign": "spesmilon merkki", +"tenge sign": "tengen merkki", +"indian rupee sign": "intialaisen rupian merkki", +"turkish lira sign": "turkkilaisen liiran merkki", +"nordic mark sign": "pohjoismaisen markan merkki", +"manat sign": "manatin merkki", +"ruble sign": "ruplan merkki", +"yen character": "jenin merkki", +"yuan character": "juanin merkki", +"yuan character, in hong kong and taiwan": "juanin merkki, Hongkongissa ja Taiwanissa", +"yen\/yuan character variant one": "jenin\/juanin merkin variantti", +"Loading emoticons...": "Ladataan emoticoneja...", +"Could not load emoticons": "Emoticoneja ei voitu ladata", +"People": "Ihmiset", +"Animals and Nature": "El\u00e4imet ja luonto", +"Food and Drink": "Ruoka ja juoma", +"Activity": "Aktiviteetit", +"Travel and Places": "Matkailu ja paikat", +"Objects": "Esineet", +"Flags": "Liput", +"Characters": "Merkki\u00e4", +"Characters (no spaces)": "Merkki\u00e4 (ilman v\u00e4lily\u00f6ntej\u00e4)", +"Error: Form submit field collision.": "Virhe: lomakkeen l\u00e4hetyskent\u00e4n t\u00f6rm\u00e4ys.", +"Error: No form element found.": "Virhe: muotoelementti\u00e4 ei l\u00f6ytynyt.", +"Update": "P\u00e4ivit\u00e4", +"Color swatch": "V\u00e4rin\u00e4yte", +"Turquoise": "Turkoosi", +"Green": "Vihre\u00e4", +"Blue": "Sininen", +"Purple": "Purppura", +"Navy Blue": "Laivastonsininen", +"Dark Turquoise": "Tumma turkoosi", +"Dark Green": "Tumma vihre\u00e4", +"Medium Blue": "Keskitumma sininen", +"Medium Purple": "Keskitumma purppura", +"Midnight Blue": "keskiy\u00f6n sininen", +"Yellow": "Keltainen", +"Orange": "Oranssi", +"Red": "Punainen", +"Light Gray": "Vaaleanharmaa", +"Gray": "Harmaa", +"Dark Yellow": "Tummankeltainen", +"Dark Orange": "Tumma oranssi", +"Dark Red": "Tumma punainen", +"Medium Gray": "Keskiharmaa", +"Dark Gray": "Tummanharmaa", +"Black": "Musta", +"White": "Valkoinen", +"Switch to or from fullscreen mode": "Vaihda kokon\u00e4ytt\u00f6\u00f6n tai kokon\u00e4yt\u00f6st\u00e4", +"Open help dialog": "Avaa ohjeen valintaikkuna", +"history": "historia", +"styles": "tyylit", +"formatting": "muotoiltu", +"alignment": "tasaus", +"indentation": "sisennys", +"permanent pen": "pysyv\u00e4 kyn\u00e4", +"comments": "kommentit", +"Anchor": "Ankkuri", +"Special character": "Erikoismerkki", +"Code sample": "Koodiesimerkki", +"Color": "V\u00e4ri", +"Emoticons": "Hymi\u00f6t", +"Document properties": "Dokumentin ominaisuudet", +"Image": "Kuva", +"Insert link": "Lis\u00e4\u00e4 linkki", +"Target": "Kohde", +"Link": "Linkki", +"Poster": "L\u00e4hett\u00e4j\u00e4", +"Media": "Media", +"Print": "Tulosta", +"Prev": "Edel.", +"Find and replace": "Etsi ja korvaa", +"Whole words": "Koko sanat", +"Spellcheck": "Oikolue", +"Caption": "Seloste", +"Insert template": "Lis\u00e4\u00e4 pohja" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/fr_FR.js b/common/plugins/editors/tinymce/media/langs/fr_FR.js new file mode 100755 index 0000000000000000000000000000000000000000..2d074f8c6e1c822d41a5c70d4bc0a53ad159b523 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/fr_FR.js @@ -0,0 +1,389 @@ +tinymce.addI18n('fr_FR',{ +"Redo": "R\u00e9tablir", +"Undo": "Annuler", +"Cut": "Couper", +"Copy": "Copier", +"Paste": "Coller", +"Select all": "S\u00e9lectionner tout", +"New document": "Nouveau document", +"Ok": "OK", +"Cancel": "Annuler", +"Visual aids": "Aides visuelles", +"Bold": "Gras", +"Italic": "Italique", +"Underline": "Soulign\u00e9", +"Strikethrough": "Barr\u00e9", +"Superscript": "Exposant", +"Subscript": "Indice", +"Clear formatting": "Effacer la mise en forme", +"Align left": "Aligner \u00e0 gauche", +"Align center": "Centrer", +"Align right": "Aligner \u00e0 droite", +"Justify": "Justifier", +"Bullet list": "Liste \u00e0 puces", +"Numbered list": "Liste num\u00e9rot\u00e9e", +"Decrease indent": "R\u00e9duire le retrait", +"Increase indent": "Augmenter le retrait", +"Close": "Fermer", +"Formats": "Formats", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Votre navigateur ne supporte pas l\u2019acc\u00e8s direct au presse-papiers. Merci d'utiliser les raccourcis clavier Ctrl+X\/C\/V.", +"Headers": "En-t\u00eates", +"Header 1": "En-t\u00eate 1", +"Header 2": "En-t\u00eate 2", +"Header 3": "En-t\u00eate 3", +"Header 4": "En-t\u00eate 4", +"Header 5": "En-t\u00eate 5", +"Header 6": "En-t\u00eate 6", +"Headings": "Titres", +"Heading 1": "Titre\u00a01", +"Heading 2": "Titre\u00a02", +"Heading 3": "Titre\u00a03", +"Heading 4": "Titre\u00a04", +"Heading 5": "Titre\u00a05", +"Heading 6": "Titre\u00a06", +"Preformatted": "Pr\u00e9format\u00e9", +"Div": "Div", +"Pre": "Pre", +"Code": "Code", +"Paragraph": "Paragraphe", +"Blockquote": "Blockquote", +"Inline": "En ligne", +"Blocks": "Blocs", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Le presse-papiers est maintenant en mode \"texte plein\". Les contenus seront coll\u00e9s sans retenir les formatages jusqu'\u00e0 ce que vous d\u00e9sactiviez cette option.", +"Fonts": "Polices", +"Font Sizes": "Tailles de police", +"Class": "Classe", +"Browse for an image": "Rechercher une image", +"OR": "OU", +"Drop an image here": "D\u00e9poser une image ici", +"Upload": "T\u00e9l\u00e9charger", +"Block": "Bloc", +"Align": "Aligner", +"Default": "Par d\u00e9faut", +"Circle": "Cercle", +"Disc": "Disque", +"Square": "Carr\u00e9", +"Lower Alpha": "Alpha minuscule", +"Lower Greek": "Grec minuscule", +"Lower Roman": "Romain minuscule", +"Upper Alpha": "Alpha majuscule", +"Upper Roman": "Romain majuscule", +"Anchor...": "Ancre...", +"Name": "Nom", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'Id doit commencer par une lettre suivi par des lettres, nombres, tirets, points, deux-points ou underscores", +"You have unsaved changes are you sure you want to navigate away?": "Vous avez des modifications non enregistr\u00e9es, \u00eates-vous s\u00fbr de quitter la page?", +"Restore last draft": "Restaurer le dernier brouillon", +"Special characters...": "Caract\u00e8res sp\u00e9ciaux...", +"Source code": "Code source", +"Insert\/Edit code sample": "Ins\u00e9rer \/ modifier une exemple de code", +"Language": "Langue", +"Code sample...": "Exemple de code...", +"Color Picker": "S\u00e9lecteur de couleurs", +"R": "R", +"G": "V", +"B": "B", +"Left to right": "Gauche \u00e0 droite", +"Right to left": "Droite \u00e0 gauche", +"Emoticons...": "\u00c9motic\u00f4nes...", +"Metadata and Document Properties": "M\u00e9tadonn\u00e9es et propri\u00e9t\u00e9s du document", +"Title": "Titre", +"Keywords": "Mots-cl\u00e9s", +"Description": "Description", +"Robots": "Robots", +"Author": "Auteur", +"Encoding": "Encodage", +"Fullscreen": "Plein \u00e9cran", +"Action": "Action", +"Shortcut": "Raccourci", +"Help": "Aide", +"Address": "Adresse", +"Focus to menubar": "Cibler la barre de menu", +"Focus to toolbar": "Cibler la barre d'outils", +"Focus to element path": "Cibler le chemin vers l'\u00e9l\u00e9ment", +"Focus to contextual toolbar": "Cibler la barre d'outils contextuelle", +"Insert link (if link plugin activated)": "Ins\u00e9rer un lien (si le module link est activ\u00e9)", +"Save (if save plugin activated)": "Enregistrer (si le module save est activ\u00e9)", +"Find (if searchreplace plugin activated)": "Rechercher (si le module searchreplace est activ\u00e9)", +"Plugins installed ({0}):": "Modules install\u00e9s ({0}) : ", +"Premium plugins:": "Modules premium :", +"Learn more...": "En savoir plus...", +"You are using {0}": "Vous utilisez {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Raccourcis utiles", +"Horizontal line": "Ligne horizontale", +"Insert\/edit image": "Ins\u00e9rer\/modifier une image", +"Image description": "Description de l'image", +"Source": "Source", +"Dimensions": "Dimensions", +"Constrain proportions": "Conserver les proportions", +"General": "G\u00e9n\u00e9ral", +"Advanced": "Avanc\u00e9", +"Style": "Style", +"Vertical space": "Espacement vertical", +"Horizontal space": "Espacement horizontal", +"Border": "Bordure", +"Insert image": "Ins\u00e9rer une image", +"Image...": "Image...", +"Image list": "Liste d'images", +"Rotate counterclockwise": "Rotation anti-horaire", +"Rotate clockwise": "Rotation horaire", +"Flip vertically": "Retournement vertical", +"Flip horizontally": "Retournement horizontal", +"Edit image": "Modifier l'image", +"Image options": "Options de l'image", +"Zoom in": "Zoomer", +"Zoom out": "D\u00e9zoomer", +"Crop": "Rogner", +"Resize": "Redimensionner", +"Orientation": "Orientation", +"Brightness": "Luminosit\u00e9", +"Sharpen": "Affiner", +"Contrast": "Contraste", +"Color levels": "Niveaux de couleur", +"Gamma": "Gamma", +"Invert": "Inverser", +"Apply": "Appliquer", +"Back": "Retour", +"Insert date\/time": "Ins\u00e9rer date\/heure", +"Date\/time": "Date\/heure", +"Insert\/Edit Link": "Ins\u00e9rer\/Modifier lien", +"Insert\/edit link": "Ins\u00e9rer\/modifier un lien", +"Text to display": "Texte \u00e0 afficher", +"Url": "Url", +"Open link in...": "Ouvrir le lien dans...", +"Current window": "Fen\u00eatre active", +"None": "n\/a", +"New window": "Nouvelle fen\u00eatre", +"Remove link": "Enlever le lien", +"Anchors": "Ancres", +"Link...": "Lien...", +"Paste or type a link": "Coller ou taper un lien", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre une adresse e-mail. Voulez-vous ajouter le pr\u00e9fixe mailto: n\u00e9cessaire?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL que vous avez entr\u00e9e semble \u00eatre un lien externe. Voulez-vous ajouter le pr\u00e9fixe http:\/\/ n\u00e9cessaire?", +"Link list": "Liste de liens", +"Insert video": "Ins\u00e9rer une vid\u00e9o", +"Insert\/edit video": "Ins\u00e9rer\/modifier une vid\u00e9o", +"Insert\/edit media": "Ins\u00e9rer\/modifier un m\u00e9dia", +"Alternative source": "Source alternative", +"Alternative source URL": "URL de la source alternative", +"Media poster (Image URL)": "Affiche de m\u00e9dia (URL de l'image)", +"Paste your embed code below:": "Collez votre code d'int\u00e9gration ci-dessous :", +"Embed": "Int\u00e9grer", +"Media...": "M\u00e9dia...", +"Nonbreaking space": "Espace ins\u00e9cable", +"Page break": "Saut de page", +"Paste as text": "Coller comme texte", +"Preview": "Pr\u00e9visualiser", +"Print...": "Imprimer...", +"Save": "Enregistrer", +"Find": "Chercher", +"Replace with": "Remplacer par", +"Replace": "Remplacer", +"Replace all": "Tout remplacer", +"Previous": "Pr\u00e9c\u00e9dente", +"Next": "Suiv", +"Find and replace...": "Trouver et remplacer...", +"Could not find the specified string.": "Impossible de trouver la cha\u00eene sp\u00e9cifi\u00e9e.", +"Match case": "Respecter la casse", +"Find whole words only": "Mot entier", +"Spell check": "V\u00e9rification de l'orthographe", +"Ignore": "Ignorer", +"Ignore all": "Tout ignorer", +"Finish": "Finie", +"Add to Dictionary": "Ajouter au dictionnaire", +"Insert table": "Ins\u00e9rer un tableau", +"Table properties": "Propri\u00e9t\u00e9s du tableau", +"Delete table": "Supprimer le tableau", +"Cell": "Cellule", +"Row": "Ligne", +"Column": "Colonne", +"Cell properties": "Propri\u00e9t\u00e9s de la cellule", +"Merge cells": "Fusionner les cellules", +"Split cell": "Diviser la cellule", +"Insert row before": "Ins\u00e9rer une ligne avant", +"Insert row after": "Ins\u00e9rer une ligne apr\u00e8s", +"Delete row": "Effacer la ligne", +"Row properties": "Propri\u00e9t\u00e9s de la ligne", +"Cut row": "Couper la ligne", +"Copy row": "Copier la ligne", +"Paste row before": "Coller la ligne avant", +"Paste row after": "Coller la ligne apr\u00e8s", +"Insert column before": "Ins\u00e9rer une colonne avant", +"Insert column after": "Ins\u00e9rer une colonne apr\u00e8s", +"Delete column": "Effacer la colonne", +"Cols": "Colonnes", +"Rows": "Lignes", +"Width": "Largeur", +"Height": "Hauteur", +"Cell spacing": "Espacement inter-cellulles", +"Cell padding": "Espacement interne cellule", +"Show caption": "Afficher le sous-titrage", +"Left": "Gauche", +"Center": "Centr\u00e9", +"Right": "Droite", +"Cell type": "Type de cellule", +"Scope": "Etendue", +"Alignment": "Alignement", +"H Align": "Alignement H", +"V Align": "Alignement V", +"Top": "Haut", +"Middle": "Milieu", +"Bottom": "Bas", +"Header cell": "Cellule d'en-t\u00eate", +"Row group": "Groupe de lignes", +"Column group": "Groupe de colonnes", +"Row type": "Type de ligne", +"Header": "En-t\u00eate", +"Body": "Corps", +"Footer": "Pied", +"Border color": "Couleur de la bordure", +"Insert template...": "Ins\u00e9rer un mod\u00e8le...", +"Templates": "Th\u00e8mes", +"Template": "Mod\u00e8le", +"Text color": "Couleur du texte", +"Background color": "Couleur d'arri\u00e8re-plan", +"Custom...": "Personnalis\u00e9...", +"Custom color": "Couleur personnalis\u00e9e", +"No color": "Aucune couleur", +"Remove color": "Supprimer la couleur", +"Table of Contents": "Table des mati\u00e8res", +"Show blocks": "Afficher les blocs", +"Show invisible characters": "Afficher les caract\u00e8res invisibles", +"Word count": "Nombre de mots", +"Words: {0}": "Mots : {0}", +"{0} words": "{0} mots", +"File": "Fichier", +"Edit": "Editer", +"Insert": "Ins\u00e9rer", +"View": "Voir", +"Format": "Format", +"Table": "Tableau", +"Tools": "Outils", +"Powered by {0}": "Propuls\u00e9 par {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zone Texte Riche. Appuyer sur ALT-F9 pour le menu. Appuyer sur ALT-F10 pour la barre d'outils. Appuyer sur ALT-0 pour de l'aide.", +"Image title": "Titre d'image", +"Border width": "\u00c9paisseur de la bordure", +"Border style": "Style de la bordure", +"Error": "Erreur", +"Warn": "Avertir", +"Valid": "Valide", +"To open the popup, press Shift+Enter": "Pour ouvrir la popup, appuyez sur Maj+Entr\u00e9e", +"Rich Text Area. Press ALT-0 for help.": "Zone de texte riche. Appuyez sur ALT-0 pour l'aide.", +"System Font": "Police syst\u00e8me", +"Failed to upload image: {0}": "\u00c9chec d'envoi de l'image\u00a0: {0}", +"Failed to load plugin: {0} from url {1}": "\u00c9chec de chargement du plug-in\u00a0: {0} \u00e0 partir de l\u2019URL {1} ", +"Failed to load plugin url: {0}": "\u00c9chec de chargement de l'URL du plug-in\u00a0: {0}", +"Failed to initialize plugin: {0}": "\u00c9chec d'initialisation du plug-in\u00a0: {0}", +"example": "exemple", +"Search": "Rechercher", +"All": "Tout", +"Currency": "Devise", +"Text": "Texte", +"Quotations": "Citations", +"Mathematical": "Op\u00e9rateurs math\u00e9matiques", +"Extended Latin": "Latin \u00e9tendu", +"Symbols": "Symboles", +"Arrows": "Fl\u00e8ches", +"User Defined": "D\u00e9fini par l'utilisateur", +"dollar sign": "Symbole dollar", +"currency sign": "Symbole devise", +"euro-currency sign": "Symbole euro", +"colon sign": "Symbole col\u00f3n", +"cruzeiro sign": "Symbole cruzeiro", +"french franc sign": "Symbole franc fran\u00e7ais", +"lira sign": "Symbole lire", +"mill sign": "Symbole milli\u00e8me", +"naira sign": "Symbole naira", +"peseta sign": "Symbole peseta", +"rupee sign": "Symbole roupie", +"won sign": "Symbole won", +"new sheqel sign": "Symbole nouveau ch\u00e9kel", +"dong sign": "Symbole dong", +"kip sign": "Symbole kip", +"tugrik sign": "Symbole tougrik", +"drachma sign": "Symbole drachme", +"german penny symbol": "Symbole pfennig", +"peso sign": "Symbole peso", +"guarani sign": "Symbole guarani", +"austral sign": "Symbole austral", +"hryvnia sign": "Symbole hryvnia", +"cedi sign": "Symbole cedi", +"livre tournois sign": "Symbole livre tournois", +"spesmilo sign": "Symbole spesmilo", +"tenge sign": "Symbole tenge", +"indian rupee sign": "Symbole roupie indienne", +"turkish lira sign": "Symbole lire turque", +"nordic mark sign": "Symbole du mark nordique", +"manat sign": "Symbole manat", +"ruble sign": "Symbole rouble", +"yen character": "Sinogramme Yen", +"yuan character": "Sinogramme Yuan", +"yuan character, in hong kong and taiwan": "Sinogramme Yuan, Hong Kong et Taiwan", +"yen\/yuan character variant one": "Sinogramme Yen\/Yuan, premi\u00e8re variante", +"Loading emoticons...": "Chargement des \u00e9motic\u00f4nes en cours...", +"Could not load emoticons": "\u00c9chec de chargement des \u00e9motic\u00f4nes", +"People": "Personnes", +"Animals and Nature": "Animaux & nature", +"Food and Drink": "Nourriture & boissons", +"Activity": "Activit\u00e9", +"Travel and Places": "Voyages & lieux", +"Objects": "Objets", +"Flags": "Drapeaux", +"Characters": "Caract\u00e8res", +"Characters (no spaces)": "Caract\u00e8res (espaces non compris)", +"Error: Form submit field collision.": "Erreur : conflit de champs lors de la soumission du formulaire", +"Error: No form element found.": "Erreur : aucun \u00e9l\u00e9ment de formulaire trouv\u00e9.", +"Update": "Mettre \u00e0 jour", +"Color swatch": "\u00c9chantillon de couleurs", +"Turquoise": "Turquoise", +"Green": "Vert", +"Blue": "Bleu", +"Purple": "Violet", +"Navy Blue": "Bleu marine", +"Dark Turquoise": "Turquoise fonc\u00e9", +"Dark Green": "Vert fonc\u00e9", +"Medium Blue": "Bleu moyen", +"Medium Purple": "Violet moyen", +"Midnight Blue": "Bleu de minuit", +"Yellow": "Jaune", +"Orange": "Orange", +"Red": "Rouge", +"Light Gray": "Gris clair", +"Gray": "Gris", +"Dark Yellow": "Jaune fonc\u00e9", +"Dark Orange": "Orange fonc\u00e9", +"Dark Red": "Rouge fonc\u00e9", +"Medium Gray": "Gris moyen", +"Dark Gray": "Gris fonc\u00e9", +"Black": "Noir", +"White": "Blanc", +"Switch to or from fullscreen mode": "Passer en ou quitter le mode plein \u00e9cran", +"Open help dialog": "Ouvrir la bo\u00eete de dialogue d'aide", +"history": "historique", +"styles": "styles", +"formatting": "mise en forme", +"alignment": "alignement", +"indentation": "retrait", +"permanent pen": "feutre ind\u00e9l\u00e9bile", +"comments": "commentaires", +"Anchor": "Ancre", +"Special character": "Caract\u00e8res sp\u00e9ciaux", +"Code sample": "Extrait de code", +"Color": "Couleur", +"Emoticons": "Emotic\u00f4nes", +"Document properties": "Propri\u00e9t\u00e9 du document", +"Image": "Image", +"Insert link": "Ins\u00e9rer un lien", +"Target": "Cible", +"Link": "Lien", +"Poster": "Publier", +"Media": "M\u00e9dia", +"Print": "Imprimer", +"Prev": "Pr\u00e9c ", +"Find and replace": "Trouver et remplacer", +"Whole words": "Mots entiers", +"Spellcheck": "V\u00e9rification orthographique", +"Caption": "Titre", +"Insert template": "Ajouter un th\u00e8me" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/gl.js b/common/plugins/editors/tinymce/media/langs/gl.js new file mode 100755 index 0000000000000000000000000000000000000000..cf47c4a9a13a70e12aff3d9fab68e15ae1c415bc --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/gl.js @@ -0,0 +1,388 @@ +tinymce.addI18n('gl',{ +"Redo": "Refacer", +"Undo": "Desfacer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Pegar", +"Select all": "Seleccionar todo", +"New document": "Novo documento", +"Ok": "Aceptar", +"Cancel": "Cancelar", +"Visual aids": "Axudas visuais", +"Bold": "Negra", +"Italic": "Cursiva", +"Underline": "Subli\u00f1ado", +"Strikethrough": "Riscado", +"Superscript": "Super\u00edndice", +"Subscript": "Sub\u00edndice", +"Clear formatting": "Limpar o formato", +"Align left": "Ali\u00f1ar \u00e1 esquerda", +"Align center": "Ali\u00f1ar ao centro", +"Align right": "Ali\u00f1ar \u00e1 dereita", +"Justify": "Xustificar", +"Bullet list": "Lista de vi\u00f1etas", +"Numbered list": "Lista numerada", +"Decrease indent": "Reducir a sangr\u00eda", +"Increase indent": "Aumentar a sangr\u00eda", +"Close": "Pechar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador non admite o acceso directo ao portapapeis. Empregue os atallos de teclado Ctrl+X\/C\/V no seu canto.", +"Headers": "Cabeceiras", +"Header 1": "Cabeceira 1", +"Header 2": "Cabeceira 2", +"Header 3": "Cabeceira 3", +"Header 4": "Cabeceira 4", +"Header 5": "Cabeceira 5", +"Header 6": "Cabeceira 6", +"Headings": "T\u00edtulo", +"Heading 1": "T\u00edtulo 1", +"Heading 2": "T\u00edtulo 2", +"Heading 3": "T\u00edtulo 3", +"Heading 4": "T\u00edtulo 4", +"Heading 5": "T\u00edtulo 5", +"Heading 6": "T\u00edtulo 6", +"Preformatted": "Preformatado", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "Par\u00e1grafo", +"Blockquote": "Bloque entre comi\u00f1as", +"Inline": "En li\u00f1a", +"Blocks": "Bloques", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Neste momento o pegado est\u00e1 definido en modo de texto simple. Os contidos p\u00e9garanse como texto sen formato ata que se active esta opci\u00f3n.", +"Fonts": "Tipos de letra", +"Font Sizes": "Tama\u00f1o da letra", +"Class": "Clase", +"Browse for an image": "Buscar unha imaxe", +"OR": "OU", +"Drop an image here": "Soltar unha imaxe", +"Upload": "Cargar", +"Block": "Bloque", +"Align": "Ali\u00f1amento", +"Default": "Predeterminada", +"Circle": "Circulo", +"Disc": "Disco", +"Square": "Cadrado", +"Lower Alpha": "Alfa min\u00fascula", +"Lower Greek": "Grega min\u00fascula", +"Lower Roman": "Romana min\u00fascula", +"Upper Alpha": "Alfa mai\u00fascula", +"Upper Roman": "Romana mai\u00fascula", +"Anchor...": "Ancoraxe...", +"Name": "Nome", +"Id": "ID", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "O ID debe comezar cunha letra, seguida s\u00f3 por letras, n\u00fameros, gui\u00f3ns, puntos, dos puntos ou gui\u00f3ns baixos.", +"You have unsaved changes are you sure you want to navigate away?": "Ten cambios sen gardar. Confirma que quere sa\u00edr?", +"Restore last draft": "Restaurar o \u00faltimo borrador", +"Special characters...": "Caracteres especiais...", +"Source code": "C\u00f3digo fonte", +"Insert\/Edit code sample": "Inserir\/editar mostra de c\u00f3digo", +"Language": "Idioma", +"Code sample...": "Mostra de c\u00f3digo...", +"Color Picker": "Selector de cor", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "De esquerda a dereita", +"Right to left": "De dereita a esquerda", +"Emoticons...": "Emoticonas...", +"Metadata and Document Properties": "Metadatos e propiedades do documento", +"Title": "T\u00edtulo", +"Keywords": "Palabras clave", +"Description": "Descrici\u00f3n", +"Robots": "Robots", +"Author": "Autor", +"Encoding": "Codificaci\u00f3n", +"Fullscreen": "Pantalla completa", +"Action": "Action", +"Shortcut": "Shortcut", +"Help": "Help", +"Address": "Address", +"Focus to menubar": "Focus to menubar", +"Focus to toolbar": "Focus to toolbar", +"Focus to element path": "Focus to element path", +"Focus to contextual toolbar": "Focus to contextual toolbar", +"Insert link (if link plugin activated)": "Insert link (if link plugin activated)", +"Save (if save plugin activated)": "Save (if save plugin activated)", +"Find (if searchreplace plugin activated)": "Find (if searchreplace plugin activated)", +"Plugins installed ({0}):": "Plugins installed ({0}):", +"Premium plugins:": "Premium plugins:", +"Learn more...": "Learn more...", +"You are using {0}": "You are using {0}", +"Plugins": "Engadidos", +"Handy Shortcuts": "Atallos \u00fatiles", +"Horizontal line": "Li\u00f1a horizontal", +"Insert\/edit image": "Inserir\/editar imaxe", +"Image description": "Descrici\u00f3n da imaxe", +"Source": "Orixe", +"Dimensions": "Dimensi\u00f3ns", +"Constrain proportions": "Restrinxir as proporci\u00f3ns", +"General": "Xeral", +"Advanced": "Avanzado", +"Style": "Estilo", +"Vertical space": "Espazo vertical", +"Horizontal space": "Espazo horizontal", +"Border": "Bordo", +"Insert image": "Inserir imaxe", +"Image...": "Imaxe...", +"Image list": "Lista de imaxes", +"Rotate counterclockwise": "Rotate counterclockwise", +"Rotate clockwise": "Rotate clockwise", +"Flip vertically": "Flip vertically", +"Flip horizontally": "Flip horizontally", +"Edit image": "Edit image", +"Image options": "Image options", +"Zoom in": "Zoom in", +"Zoom out": "Zoom out", +"Crop": "Crop", +"Resize": "Resize", +"Orientation": "Orientation", +"Brightness": "Brightness", +"Sharpen": "Sharpen", +"Contrast": "Contrast", +"Color levels": "Color levels", +"Gamma": "Gamma", +"Invert": "Invert", +"Apply": "Apply", +"Back": "Back", +"Insert date\/time": "Inserir data\/hora", +"Date\/time": "Data\/hora", +"Insert\/Edit Link": "Inserir\/editar ligaz\u00f3n", +"Insert\/edit link": "Inserir\/editar ligaz\u00f3n", +"Text to display": "Texto que amosar", +"Url": "URL", +"Open link in...": "Abrir a ligaz\u00f3n en...", +"Current window": "Xanela actual", +"None": "Ning\u00fan", +"New window": "Nova xanela", +"Remove link": "Retirar a ligaz\u00f3n", +"Anchors": "Ancoraxes", +"Link...": "Ligaz\u00f3n...", +"Paste or type a link": "Pegue ou escriba unha ligaz\u00f3n", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "O URL que introduciu semella seren un enderezo de correo. Quere engadirlle o prefixo mailto: requirido?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "O URL que introduciu semella seren unha ligaz\u00f3n externa. Quere engadirlle o prefixo http:\/\/ requirido?", +"Link list": "Lista de ligaz\u00f3ns", +"Insert video": "Inserir v\u00eddeo", +"Insert\/edit video": "Inserir\/editar v\u00eddeo", +"Insert\/edit media": "Inserir\/editar medios", +"Alternative source": "Orixe alternativa", +"Alternative source URL": "URL da orixe alternativa", +"Media poster (Image URL)": "Cartel multimedia (URL da imaxe)", +"Paste your embed code below:": "Pegue embaixo o c\u00f3digo integrado:", +"Embed": "Integrado", +"Media...": "Multimedia...", +"Nonbreaking space": "Espazo irromp\u00edbel", +"Page break": "Quebra de p\u00e1xina", +"Paste as text": "Pegar como texto", +"Preview": "Vista previa", +"Print...": "Imprimir...", +"Save": "Gardar", +"Find": "Buscar", +"Replace with": "Substitu\u00edr con", +"Replace": "Substitu\u00edr", +"Replace all": "Substitu\u00edr todo", +"Previous": "Anterior", +"Next": "Seguinte", +"Find and replace...": "Atopar e substitu\u00edr...", +"Could not find the specified string.": "Non foi pos\u00edbel atopar a cadea de texto especificada.", +"Match case": "Distinguir mai\u00fasculas", +"Find whole words only": "Atopar unicamente as palabras enteiras", +"Spell check": "Corrector ortogr\u00e1fico", +"Ignore": "Ignorar", +"Ignore all": "Ignorar todo", +"Finish": "Rematar", +"Add to Dictionary": "Engadir ao dicionario", +"Insert table": "Inserir t\u00e1boa", +"Table properties": "Propiedades da t\u00e1boa", +"Delete table": "Eliminar t\u00e1boa", +"Cell": "Cela", +"Row": "Fila", +"Column": "Columna", +"Cell properties": "Propiedades da cela", +"Merge cells": "Combinar celas", +"Split cell": "Dividir celas", +"Insert row before": "Inserir unha fila enriba", +"Insert row after": "Inserir unha fila embaixo", +"Delete row": "Eliminar fila", +"Row properties": "Propiedades das filas", +"Cut row": "Cortar fila", +"Copy row": "Copiar fila", +"Paste row before": "Pegar fila embaixo", +"Paste row after": "Pegar fila enriba", +"Insert column before": "Inserir columna \u00e1 esquerda", +"Insert column after": "Inserir columna \u00e1 dereita", +"Delete column": "Eliminar columna", +"Cols": "Cols.", +"Rows": "Filas", +"Width": "Largo", +"Height": "Alto", +"Cell spacing": "Marxe entre celas", +"Cell padding": "Marxe interior da cela", +"Show caption": "Amosar subt\u00edtulo", +"Left": "Esquerda", +"Center": "Centro", +"Right": "Dereita", +"Cell type": "Tipo de cela", +"Scope": "\u00c1mbito", +"Alignment": "Ali\u00f1amento", +"H Align": "Ali\u00f1amento H", +"V Align": "Ali\u00f1amento V", +"Top": "Arriba", +"Middle": "Medio", +"Bottom": "Abaixo", +"Header cell": "Cela de cabeceira", +"Row group": "Grupo de filas", +"Column group": "Grupo de columnas", +"Row type": "Tipo de fila", +"Header": "Cabeceira", +"Body": "Corpo", +"Footer": "Rodap\u00e9", +"Border color": "Cor do bordo", +"Insert template...": "Inserir modelo...", +"Templates": "Modelos", +"Template": "Modelo", +"Text color": "Cor do texto", +"Background color": "Cor do fondo", +"Custom...": "Personalizado...", +"Custom color": "Cor personalizado", +"No color": "Sen cor", +"Remove color": "Retirar a cor", +"Table of Contents": "\u00cdndice de contidos", +"Show blocks": "Amosar os bloques", +"Show invisible characters": "Amosar caracteres invis\u00edbeis", +"Word count": "Reconto de palabras", +"Words: {0}": "Palabras: {0}", +"{0} words": "{0} palabras", +"File": "Ficheiro", +"Edit": "Editar", +"Insert": "Inserir", +"View": "Ver", +"Format": "Formato", +"Table": "T\u00e1boa", +"Tools": "Ferramentas", +"Powered by {0}": "Coa tecnolox\u00eda de {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto mellorado. Prema ALT-F9 para o men\u00fa. Prema ALT-F10 para a barra de ferramentas. Prema ALT-0 para a axuda", +"Image title": "T\u00edtulo da imaxe", +"Border width": "Largo do bordo", +"Border style": "Estilo do bordo", +"Error": "Erro", +"Warn": "Aviso", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir a xanela emerxente, prema Mai\u00fas+Intro", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea de texto mellorado. PremaALT-0 para obter axuda.", +"System Font": "Tipo de letra do sistema", +"Failed to upload image: {0}": "Produciuse un fallo ao cargar a imaxe: {0}", +"Failed to load plugin: {0} from url {1}": "Produciuse un fallo ao cargar a o engadido: {0} dende o URL {1}", +"Failed to load plugin url: {0}": "Produciuse un fallo ao cargar a o URL do engadido: {0}", +"Failed to initialize plugin: {0}": "Produciuse un fallo ao iniciar o engadido: {0}", +"example": "exemplo", +"Search": "Buscar", +"All": "Todo", +"Currency": "Moeda", +"Text": "Texto", +"Quotations": "Citas", +"Mathematical": "Matem\u00e1tico", +"Extended Latin": "Latino extendido", +"Symbols": "S\u00edmbolos", +"Arrows": "Frechas", +"User Defined": "Definido polo usuario", +"dollar sign": "S\u00edmbolo do dolar", +"currency sign": "S\u00edmbolo de moeda", +"euro-currency sign": "S\u00edmbolo do euro", +"colon sign": "S\u00edmbolo do col\u00f3n", +"cruzeiro sign": "S\u00edmbolo do cruzeiro", +"french franc sign": "S\u00edmbolo do franco franc\u00e9s", +"lira sign": "S\u00edmbolo da lira", +"mill sign": "S\u00edmbolo do mill", +"naira sign": "S\u00edmbolo da naira", +"peseta sign": "S\u00edmbolo da peseta", +"rupee sign": "S\u00edmbolo da rupia", +"won sign": "S\u00edmbolo do won", +"new sheqel sign": "S\u00edmbolo do novo s\u00e9quel", +"dong sign": "S\u00edmbolo do dong", +"kip sign": "S\u00edmbolo do kip", +"tugrik sign": "S\u00edmbolo do tugrik", +"drachma sign": "S\u00edmbolo do dracma", +"german penny symbol": "S\u00edmbolo do penique alem\u00e1n", +"peso sign": "S\u00edmbolo do peso", +"guarani sign": "S\u00edmbolo do guaran\u00ed", +"austral sign": "S\u00edmbolo do austral", +"hryvnia sign": "S\u00edmbolo do grivna", +"cedi sign": "S\u00edmbolo do cedi", +"livre tournois sign": "S\u00edmbolo da libre tournois", +"spesmilo sign": "S\u00edmbolo do spesmilo", +"tenge sign": "S\u00edmbolo do tengue", +"indian rupee sign": "S\u00edmbolo da rupia india", +"turkish lira sign": "S\u00edmbolo da lira turca", +"nordic mark sign": "S\u00edmbolo do marco n\u00f3rdico", +"manat sign": "S\u00edmbolo do manat", +"ruble sign": "S\u00edmbolo do rublo", +"yen character": "Car\u00e1cter do ien", +"yuan character": "Car\u00e1cter do yuan", +"yuan character, in hong kong and taiwan": "Car\u00e1cter do yuan, en Hong Kong e Taiwan", +"yen\/yuan character variant one": "Variante 1 do car\u00e1cter do ien\/yuan", +"Loading emoticons...": "Cargando emoticonas...", +"Could not load emoticons": "Non foi pos\u00edbel cargar as emoticonas", +"People": "Xente", +"Animals and Nature": "Animais e natureza", +"Food and Drink": "Comida e bebida", +"Activity": "Actividade", +"Travel and Places": "Viaxes e lugares", +"Objects": "Obxectos", +"Flags": "Bandeiras", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sen espazos)", +"Error: Form submit field collision.": "Erro: conflito de campo ao enviar o formulario ", +"Error: No form element found.": "Erro: non se atopou ning\u00fan elemento de formulario", +"Update": "Actualizar", +"Color swatch": "Mostra de cores", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "P\u00farpura", +"Navy Blue": "Azul mari\u00f1o", +"Dark Turquoise": "Turquesa escuro", +"Dark Green": "Verde escuro", +"Medium Blue": "Azul medio", +"Medium Purple": "P\u00farpura medio", +"Midnight Blue": "Azul noite", +"Yellow": "Amarelo", +"Orange": "Laranxa", +"Red": "Vermello", +"Light Gray": "Gris claro", +"Gray": "Gris", +"Dark Yellow": "Amarelo escuro", +"Dark Orange": "Laranxa escuro", +"Dark Red": "Vermello escuro", +"Medium Gray": "Gris medio", +"Dark Gray": "Gris escuro", +"Black": "Negro", +"White": "Branco", +"Switch to or from fullscreen mode": "Activar ou desactivar o modo de pantalla completa", +"Open help dialog": "Abrir o di\u00e1logo de axuda", +"history": "historial", +"styles": "estilos", +"formatting": "formatado", +"alignment": "ali\u00f1amento", +"indentation": "sangrado", +"permanent pen": "rotulador permanente", +"comments": "comentarios", +"Anchor": "Ancoraxe", +"Special character": "Car\u00e1cter especial", +"Color": "Cor", +"Emoticons": "Emoticonas", +"Document properties": "Propiedades do documento", +"Image": "Imaxe", +"Insert link": "Inserir ligaz\u00f3n", +"Target": "Destino", +"Link": "Ligaz\u00f3n", +"Poster": "Cartel", +"Media": "Medios", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Buscar e substitu\u00edr", +"Whole words": "Palabras completas", +"Spellcheck": "Corrector ortogr\u00e1fico", +"Caption": "Subt\u00edtulo", +"Insert template": "Inserir modelo" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/he_IL.js b/common/plugins/editors/tinymce/media/langs/he_IL.js new file mode 100755 index 0000000000000000000000000000000000000000..4a49c405b5af6f972be18726cd9e12ba38a65e9e --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/he_IL.js @@ -0,0 +1,390 @@ +tinymce.addI18n('he_IL',{ +"Redo": "\u05d1\u05e6\u05e2 \u05e9\u05d5\u05d1", +"Undo": "\u05d1\u05d8\u05dc", +"Cut": "\u05d2\u05d6\u05d5\u05e8", +"Copy": "\u05d4\u05e2\u05ea\u05e7", +"Paste": "\u05d4\u05d3\u05d1\u05e7", +"Select all": "\u05d1\u05d7\u05e8 \u05d4\u05db\u05dc", +"New document": "\u05de\u05e1\u05de\u05da \u05d7\u05d3\u05e9", +"Ok": "\u05d0\u05d9\u05e9\u05d5\u05e8", +"Cancel": "\u05d1\u05d9\u05d8\u05d5\u05dc", +"Visual aids": "\u05e2\u05d6\u05e8\u05d9\u05dd \u05d7\u05d6\u05d5\u05ea\u05d9\u05d9\u05dd", +"Bold": "\u05de\u05d5\u05d3\u05d2\u05e9", +"Italic": "\u05e0\u05d8\u05d5\u05d9", +"Underline": "\u05e7\u05d5 \u05ea\u05d7\u05ea\u05d5\u05df", +"Strikethrough": "\u05e7\u05d5 \u05d7\u05d5\u05e6\u05d4", +"Superscript": "\u05db\u05ea\u05d1 \u05e2\u05d9\u05dc\u05d9", +"Subscript": "\u05db\u05ea\u05d1 \u05ea\u05d7\u05ea\u05d9", +"Clear formatting": "\u05e0\u05e7\u05d4 \u05e2\u05d9\u05e6\u05d5\u05d1", +"Align left": "\u05d9\u05e9\u05e8 \u05dc\u05e9\u05de\u05d0\u05dc", +"Align center": "\u05de\u05e8\u05db\u05d6", +"Align right": "\u05d9\u05e9\u05e8 \u05dc\u05d9\u05de\u05d9\u05df", +"Justify": "\u05d9\u05d9\u05e9\u05e8", +"Bullet list": "\u05e8\u05e9\u05d9\u05de\u05ea \u05ea\u05d1\u05dc\u05d9\u05d8\u05d9\u05dd", +"Numbered list": "\u05e8\u05e9\u05d9\u05de\u05d4 \u05de\u05de\u05d5\u05e1\u05e4\u05e8\u05ea", +"Decrease indent": "\u05d4\u05e7\u05d8\u05df \u05d4\u05d6\u05d7\u05d4", +"Increase indent": "\u05d4\u05d2\u05d3\u05dc \u05d4\u05d6\u05d7\u05d4", +"Close": "\u05e1\u05d2\u05d5\u05e8", +"Formats": "\u05e2\u05d9\u05e6\u05d5\u05d1\u05d9\u05dd", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u05d4\u05d3\u05e4\u05d3\u05e4\u05df \u05e9\u05dc\u05da \u05d0\u05d9\u05e0\u05d5 \u05de\u05d0\u05e4\u05e9\u05e8 \u05d2\u05d9\u05e9\u05d4 \u05d9\u05e9\u05d9\u05e8\u05d4 \u05dc\u05dc\u05d5\u05d7. \u05d0\u05e0\u05d0 \u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e7\u05d9\u05e6\u05d5\u05e8\u05d9 \u05d4\u05de\u05e7\u05dc\u05d3\u05ea Ctrl+X\/C\/V \u05d1\u05de\u05e7\u05d5\u05dd.", +"Headers": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea", +"Header 1": "\u05db\u05d5\u05ea\u05e8\u05ea 1", +"Header 2": "\u05db\u05d5\u05ea\u05e8\u05ea 2", +"Header 3": "\u05db\u05d5\u05ea\u05e8\u05ea 3", +"Header 4": "\u05db\u05d5\u05ea\u05e8\u05ea 4", +"Header 5": "\u05db\u05d5\u05ea\u05e8\u05ea 5", +"Header 6": "\u05db\u05d5\u05ea\u05e8\u05ea 6", +"Headings": "\u05db\u05d5\u05ea\u05e8\u05d5\u05ea", +"Heading 1": "\u05db\u05d5\u05ea\u05e8\u05ea 1", +"Heading 2": "\u05db\u05d5\u05ea\u05e8\u05ea 2", +"Heading 3": "\u05db\u05d5\u05ea\u05e8\u05ea 3", +"Heading 4": "\u05db\u05d5\u05ea\u05e8\u05ea 4", +"Heading 5": "\u05db\u05d5\u05ea\u05e8\u05ea 5", +"Heading 6": "\u05db\u05d5\u05ea\u05e8\u05ea 6", +"Preformatted": "\u05de\u05e2\u05d5\u05e6\u05d1 \u05de\u05e8\u05d0\u05e9", +"Div": "Div", +"Pre": "Pre", +"Code": "\u05e7\u05d5\u05d3", +"Paragraph": "\u05e4\u05e1\u05e7\u05d4", +"Blockquote": "Blockquote", +"Inline": "\u05d1\u05ea\u05d5\u05da \u05e9\u05d5\u05e8\u05d4", +"Blocks": "\u05d1\u05dc\u05d5\u05e7\u05d9\u05dd", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u05d4\u05d3\u05d1\u05e7\u05d4 \u05d1\u05de\u05e6\u05d1 \u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc. \u05ea\u05db\u05e0\u05d9\u05dd \u05d9\u05d5\u05d3\u05d1\u05e7\u05d5 \u05de\u05e2\u05ea\u05d4 \u05db\u05d8\u05e7\u05e1\u05d8 \u05e8\u05d2\u05d9\u05dc \u05e2\u05d3 \u05e9\u05ea\u05db\u05d1\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d6\u05d5.", +"Fonts": "\u05d2\u05d5\u05e4\u05e0\u05d9\u05dd", +"Font Sizes": "\u05d2\u05d5\u05d3\u05dc \u05d2\u05d5\u05e4\u05e0\u05d9\u05dd", +"Class": "\u05de\u05d7\u05dc\u05e7\u05d4", +"Browse for an image": "\u05d7\u05e4\u05e9 \u05ea\u05de\u05d5\u05e0\u05d4", +"OR": "\u05d0\u05d5", +"Drop an image here": "\u05e9\u05d7\u05e8\u05e8 \u05ea\u05de\u05d5\u05e0\u05d4 \u05db\u05d0\u05df", +"Upload": "\u05d4\u05e2\u05dc\u05d4", +"Block": "\u05d1\u05dc\u05d5\u05e7", +"Align": "\u05d9\u05e9\u05e8", +"Default": "\u05d1\u05e8\u05d9\u05e8\u05ea \u05de\u05d7\u05d3\u05dc", +"Circle": "\u05e2\u05d9\u05d2\u05d5\u05dc", +"Disc": "\u05d7\u05d9\u05e9\u05d5\u05e7", +"Square": "\u05e8\u05d9\u05d1\u05d5\u05e2", +"Lower Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea", +"Lower Greek": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d9\u05d5\u05d5\u05e0\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea", +"Lower Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea", +"Upper Alpha": "\u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05d0\u05e0\u05d2\u05dc\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea", +"Upper Roman": "\u05e1\u05e4\u05e8\u05d5\u05ea \u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05d2\u05d3\u05d5\u05dc\u05d5\u05ea", +"Anchor...": "\u05e2\u05d5\u05d2\u05df...", +"Name": "\u05e9\u05dd", +"Id": "\u05de\u05d6\u05d4\u05d4", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u05d4\u05de\u05d6\u05d4\u05d4 \u05d7\u05d9\u05d9\u05d1 \u05dc\u05d4\u05ea\u05d7\u05d9\u05dc \u05d1\u05d0\u05d5\u05ea \u05d5\u05dc\u05d0\u05d7\u05e8\u05d9\u05d4 \u05e8\u05e7 \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea, \u05de\u05e1\u05e4\u05e8\u05d9\u05dd, \u05de\u05e7\u05e4\u05d9\u05dd, \u05e0\u05e7\u05d5\u05d3\u05d5\u05ea, \u05e0\u05e7\u05d5\u05d3\u05ea\u05d9\u05d9\u05dd \u05d0\u05d5 \u05e7\u05d5\u05d5\u05d9\u05dd \u05ea\u05d7\u05ea\u05d9\u05d9\u05dd.", +"You have unsaved changes are you sure you want to navigate away?": "\u05d4\u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e9\u05de\u05e8\u05d5. \u05d1\u05d8\u05d5\u05d7 \u05e9\u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05e6\u05d0\u05ea \u05de\u05d4\u05d3\u05e3?", +"Restore last draft": "\u05e9\u05d7\u05d6\u05e8 \u05d8\u05d9\u05d5\u05d8\u05d4 \u05d0\u05d7\u05e8\u05d5\u05e0\u05d4", +"Special characters...": "\u05ea\u05d5\u05d5\u05d9\u05dd \u05de\u05d9\u05d5\u05d7\u05d3\u05d9\u05dd...", +"Source code": "\u05e7\u05d5\u05d3 \u05de\u05e7\u05d5\u05e8", +"Insert\/Edit code sample": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05d3\u05d5\u05d2\u05de\u05ea \u05e7\u05d5\u05d3", +"Language": "\u05e9\u05e4\u05d4", +"Code sample...": "\u05d3\u05d5\u05d2\u05de\u05ea \u05e7\u05d5\u05d3...", +"Color Picker": "\u05d1\u05d5\u05e8\u05e8 \u05e6\u05d1\u05e2\u05d9\u05dd", +"R": "\u05d0'", +"G": "\u05d9'", +"B": "\u05db'", +"Left to right": "\u05de\u05e9\u05de\u05d0\u05dc \u05dc\u05d9\u05de\u05d9\u05df", +"Right to left": "\u05de\u05d9\u05de\u05d9\u05df \u05dc\u05e9\u05de\u05d0\u05dc", +"Emoticons...": "\u05e1\u05de\u05dc\u05d9 \u05d4\u05d1\u05e2\u05d4...", +"Metadata and Document Properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05de\u05d8\u05d4-\u05e0\u05ea\u05d5\u05e0\u05d9\u05dd \u05d5\u05de\u05e1\u05de\u05da", +"Title": "\u05db\u05d5\u05ea\u05e8\u05ea", +"Keywords": "\u05de\u05d9\u05dc\u05d5\u05ea \u05de\u05e4\u05ea\u05d7", +"Description": "\u05ea\u05d9\u05d0\u05d5\u05e8", +"Robots": "\u05e8\u05d5\u05d1\u05d5\u05d8\u05d9\u05dd", +"Author": "\u05de\u05d7\u05d1\u05e8", +"Encoding": "\u05e7\u05d9\u05d3\u05d5\u05d3", +"Fullscreen": "\u05de\u05e1\u05da \u05de\u05dc\u05d0", +"Action": "\u05e4\u05e2\u05d5\u05dc\u05d4", +"Shortcut": "\u05e7\u05d9\u05e6\u05d5\u05e8", +"Help": "\u05e2\u05d6\u05e8\u05d4", +"Address": "\u05db\u05ea\u05d5\u05d1\u05ea", +"Focus to menubar": "\u05d4\u05e2\u05d1\u05e8 \u05de\u05d9\u05e7\u05d5\u05d3 \u05dc\u05e1\u05e8\u05d2\u05dc \u05d4\u05ea\u05e4\u05e8\u05d8\u05d9\u05dd", +"Focus to toolbar": "\u05d4\u05e2\u05d1\u05e8 \u05de\u05d9\u05e7\u05d5\u05d3 \u05dc\u05e1\u05e8\u05d2\u05dc \u05d4\u05db\u05dc\u05d9\u05dd", +"Focus to element path": "\u05e2\u05d1\u05e8 \u05de\u05d9\u05e7\u05d5\u05d3 \u05dc\u05db\u05ea\u05d5\u05d1\u05ea \u05d4\u05e4\u05e8\u05d9\u05d8", +"Focus to contextual toolbar": "\u05d4\u05e2\u05d1\u05e8 \u05de\u05d9\u05e7\u05d5\u05d3 \u05dc\u05e1\u05e8\u05d2\u05dc \u05ea\u05d5\u05db\u05df", +"Insert link (if link plugin activated)": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d9\u05e9\u05d5\u05e8 (\u05d0\u05dd \u05ea\u05d5\u05e1\u05e3 \"\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd\" \u05e4\u05e2\u05d9\u05dc)", +"Save (if save plugin activated)": "\u05e9\u05de\u05d5\u05e8 (\u05d0\u05dd \u05ea\u05d5\u05e1\u05e3 \"\u05e9\u05de\u05d9\u05e8\u05d4\" \u05e4\u05e2\u05d9\u05dc)", +"Find (if searchreplace plugin activated)": "\u05d7\u05e4\u05e9 (\u05d0\u05dd \u05ea\u05d5\u05e1\u05e3 \"\u05d7\u05e4\u05e9 \u05d5\u05d4\u05d7\u05dc\u05e3\" \u05e4\u05e2\u05d9\u05dc)", +"Plugins installed ({0}):": "\u05ea\u05d5\u05e1\u05e4\u05d9\u05dd \u05de\u05d5\u05ea\u05e7\u05e0\u05d9\u05dd ({0}):", +"Premium plugins:": "\u05ea\u05d5\u05e1\u05e4\u05d9\u05dd \u05d1\u05ea\u05e9\u05dc\u05d5\u05dd:", +"Learn more...": "\u05dc\u05de\u05d3 \u05e2\u05d5\u05d3...", +"You are using {0}": "\u05d0\u05ea\\\u05d4 \u05de\u05e9\u05ea\u05de\u05e9\\\u05ea {0}", +"Plugins": "\u05ea\u05d5\u05e1\u05e4\u05d9\u05dd", +"Handy Shortcuts": "\u05e7\u05d9\u05e6\u05d5\u05e8\u05d9\u05dd \u05e9\u05d9\u05de\u05d5\u05e9\u05d9\u05d9\u05dd", +"Horizontal line": "\u05e7\u05d5 \u05d0\u05d5\u05e4\u05e7\u05d9", +"Insert\/edit image": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d4", +"Image description": "\u05ea\u05d9\u05d0\u05d5\u05e8 \u05d4\u05ea\u05de\u05d5\u05e0\u05d4", +"Source": "\u05de\u05e7\u05d5\u05e8", +"Dimensions": "\u05de\u05d9\u05de\u05d3\u05d9\u05dd", +"Constrain proportions": "\u05d4\u05d2\u05d1\u05dc\u05ea \u05e4\u05e8\u05d5\u05e4\u05d5\u05e8\u05e6\u05d9\u05d5\u05ea", +"General": "\u05db\u05dc\u05dc\u05d9", +"Advanced": "\u05de\u05ea\u05e7\u05d3\u05dd", +"Style": "\u05e1\u05d2\u05e0\u05d5\u05df", +"Vertical space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05e0\u05db\u05d9", +"Horizontal space": "\u05de\u05e8\u05d5\u05d5\u05d7 \u05d0\u05d5\u05e4\u05e7\u05d9", +"Border": "\u05de\u05e1\u05d2\u05e8\u05ea", +"Insert image": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05de\u05d5\u05e0\u05d4", +"Image...": "\u05ea\u05de\u05d5\u05e0\u05d4...", +"Image list": "\u05e8\u05e9\u05d9\u05de\u05ea \u05ea\u05de\u05d5\u05e0\u05d5\u05ea", +"Rotate counterclockwise": "\u05e1\u05d5\u05d1\u05d1 \u05d1\u05db\u05d9\u05d5\u05d5\u05df \u05d4\u05e4\u05d5\u05da \u05dc\u05e9\u05e2\u05d5\u05df", +"Rotate clockwise": "\u05e1\u05d5\u05d1\u05d1 \u05d1\u05db\u05d9\u05d5\u05d5\u05df \u05d4\u05e9\u05e2\u05d5\u05df", +"Flip vertically": "\u05d4\u05e4\u05d5\u05da \u05d0\u05e0\u05db\u05d9\u05ea", +"Flip horizontally": "\u05d4\u05e4\u05d5\u05da \u05d0\u05d5\u05e4\u05e7\u05d9\u05ea", +"Edit image": "\u05e2\u05e8\u05d5\u05da \u05ea\u05de\u05d5\u05e0\u05d4", +"Image options": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05ea\u05de\u05d5\u05e0\u05d4", +"Zoom in": "\u05d4\u05d2\u05d3\u05dc \u05ea\u05e6\u05d5\u05d2\u05d4", +"Zoom out": "\u05d4\u05e7\u05d8\u05df \u05ea\u05e6\u05d5\u05d2\u05d4", +"Crop": "\u05e7\u05e6\u05e5", +"Resize": "\u05e9\u05e0\u05d4 \u05d2\u05d5\u05d3\u05dc", +"Orientation": "\u05db\u05d9\u05d5\u05d5\u05df \u05dc\u05d0\u05d5\u05e8\u05da \/ \u05dc\u05e8\u05d5\u05d7\u05d1", +"Brightness": "\u05d1\u05d4\u05d9\u05e8\u05d5\u05ea", +"Sharpen": "\u05d7\u05d3\u05d3", +"Contrast": "\u05e0\u05d9\u05d2\u05d5\u05d3\u05d9\u05d5\u05ea", +"Color levels": "\u05e8\u05de\u05d5\u05ea \u05e6\u05d1\u05e2\u05d9\u05dd", +"Gamma": "\u05d2\u05d0\u05de\u05d4", +"Invert": "\u05d4\u05d9\u05e4\u05d5\u05da \u05e6\u05d1\u05e2\u05d9\u05dd", +"Apply": "\u05d9\u05d9\u05e9\u05dd", +"Back": "\u05d7\u05d6\u05d5\u05e8", +"Insert date\/time": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d0\u05e8\u05d9\u05da\/\u05e9\u05e2\u05d4", +"Date\/time": "\u05ea\u05d0\u05e8\u05d9\u05da\/\u05e9\u05e2\u05d4", +"Insert\/Edit Link": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e7\u05d9\u05e9\u05d5\u05e8", +"Insert\/edit link": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e7\u05d9\u05e9\u05d5\u05e8", +"Text to display": "\u05d8\u05e7\u05e1\u05d8 \u05dc\u05d4\u05e6\u05d2\u05d4", +"Url": "\u05db\u05ea\u05d5\u05d1\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8", +"Open link in...": "\u05e4\u05ea\u05d7 \u05e7\u05d9\u05e9\u05d5\u05e8 \u05d1...", +"Current window": "\u05d7\u05dc\u05d5\u05df \u05e0\u05d5\u05db\u05d7\u05d9", +"None": "\u05dc\u05dc\u05d0", +"New window": "\u05d7\u05dc\u05d5\u05df \u05d7\u05d3\u05e9", +"Remove link": "\u05de\u05d7\u05e7 \u05e7\u05d9\u05e9\u05d5\u05e8", +"Anchors": "\u05e2\u05d5\u05d2\u05e0\u05d9\u05dd", +"Link...": "\u05e7\u05d9\u05e9\u05d5\u05e8...", +"Paste or type a link": "\u05d4\u05d3\u05d1\u05e7 \u05d0\u05d5 \u05d4\u05e7\u05dc\u05d3 \u05e7\u05d9\u05e9\u05d5\u05e8", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05db\u05ea\u05d5\u05d1\u05ea \u05e9\u05d4\u05db\u05e0\u05e1\u05ea \u05d4\u05d9\u05d0 \u05db\u05ea\u05d5\u05d1\u05ea \u05d0\u05d9\u05de\u05d9\u05d9\u05dc. \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d0\u05ea \u05d4\u05e7\u05d9\u05d3\u05d5\u05de\u05ea :mailto?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u05e0\u05e8\u05d0\u05d4 \u05e9\u05d4\u05db\u05ea\u05d5\u05d1\u05ea \u05e9\u05d4\u05db\u05e0\u05e1\u05ea \u05d4\u05d9\u05d0 \u05e7\u05d9\u05e9\u05d5\u05e8 \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9 \u05d4\u05d0\u05dd \u05d1\u05e8\u05e6\u05d5\u05e0\u05da \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05e7\u05d9\u05d3\u05d5\u05de\u05ea http:\/\/?", +"Link list": "\u05e8\u05e9\u05d9\u05de\u05ea \u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd", +"Insert video": "\u05d4\u05db\u05e0\u05e1 \u05e1\u05e8\u05d8\u05d5\u05df", +"Insert\/edit video": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05e1\u05e8\u05d8\u05d5\u05df", +"Insert\/edit media": "\u05d4\u05db\u05e0\u05e1\/\u05e2\u05e8\u05d5\u05da \u05de\u05d3\u05d9\u05d4", +"Alternative source": "\u05de\u05e7\u05d5\u05e8 \u05de\u05e9\u05e0\u05d9", +"Alternative source URL": "\u05db\u05ea\u05d5\u05d1\u05ea URL \u05dc\u05de\u05e7\u05d5\u05e8 \u05d7\u05dc\u05d5\u05e4\u05d9", +"Media poster (Image URL)": "\u05e4\u05d5\u05e1\u05d8\u05e8 \u05de\u05d3\u05d9\u05d4 (\u05db\u05ea\u05d5\u05d1\u05ea URL \u05dc\u05ea\u05de\u05d5\u05e0\u05d4)", +"Paste your embed code below:": "\u05d4\u05d3\u05d1\u05e7 \u05e7\u05d5\u05d3 \u05d4\u05d8\u05de\u05e2\u05d4 \u05de\u05ea\u05d7\u05ea:", +"Embed": "\u05d4\u05d8\u05de\u05e2", +"Media...": "\u05de\u05d3\u05d9\u05d4...", +"Nonbreaking space": "\u05e8\u05d5\u05d5\u05d7 (\u05dc\u05dc\u05d0 \u05e9\u05d1\u05d9\u05e8\u05ea \u05e9\u05d5\u05e8\u05d4)", +"Page break": "\u05d3\u05e3 \u05d7\u05d3\u05e9", +"Paste as text": "\u05d4\u05d3\u05d1\u05e7 \u05db\u05d8\u05e7\u05e1\u05d8", +"Preview": "\u05ea\u05e6\u05d5\u05d2\u05d4 \u05de\u05e7\u05d3\u05d9\u05de\u05d4", +"Print...": "\u05d4\u05d3\u05e4\u05e1...", +"Save": "\u05e9\u05de\u05d9\u05e8\u05d4", +"Find": "\u05d7\u05e4\u05e9", +"Replace with": "\u05d4\u05d7\u05dc\u05e3 \u05d1", +"Replace": "\u05d4\u05d7\u05dc\u05e3", +"Replace all": "\u05d4\u05d7\u05dc\u05e3 \u05d4\u05db\u05dc", +"Previous": "\u05d4\u05e7\u05d5\u05d3\u05dd", +"Next": "\u05d4\u05d1\u05d0", +"Find and replace...": "\u05d7\u05d9\u05e4\u05d5\u05e9 \u05d5\u05d4\u05d7\u05dc\u05e4\u05d4...", +"Could not find the specified string.": "\u05de\u05d7\u05e8\u05d5\u05d6\u05ea \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0\u05d4", +"Match case": "\u05d4\u05d1\u05d7\u05df \u05d1\u05d9\u05df \u05d0\u05d5\u05ea\u05d9\u05d5\u05ea \u05e7\u05d8\u05e0\u05d5\u05ea \u05dc\u05d2\u05d3\u05d5\u05dc\u05d5\u05ea", +"Find whole words only": "\u05d7\u05e4\u05e9 \u05de\u05d9\u05dc\u05d9\u05dd \u05e9\u05dc\u05de\u05d5\u05ea \u05d1\u05dc\u05d1\u05d3", +"Spell check": "\u05d1\u05d3\u05d9\u05e7\u05ea \u05d0\u05d9\u05d5\u05ea", +"Ignore": "\u05d4\u05ea\u05e2\u05dc\u05dd", +"Ignore all": "\u05d4\u05ea\u05e2\u05dc\u05dd \u05de\u05d4\u05db\u05dc", +"Finish": "\u05e1\u05d9\u05d9\u05dd", +"Add to Dictionary": "\u05d4\u05d5\u05e1\u05e3 \u05dc\u05de\u05d9\u05dc\u05d5\u05df", +"Insert table": "\u05d4\u05db\u05e0\u05e1 \u05d8\u05d1\u05dc\u05d4", +"Table properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05d8\u05d1\u05dc\u05d4", +"Delete table": "\u05de\u05d7\u05e7 \u05d8\u05d1\u05dc\u05d4", +"Cell": "\u05ea\u05d0", +"Row": "\u05e9\u05d5\u05e8\u05d4", +"Column": "\u05e2\u05de\u05d5\u05d3\u05d4", +"Cell properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05ea\u05d0", +"Merge cells": "\u05de\u05d6\u05d2 \u05ea\u05d0\u05d9\u05dd", +"Split cell": "\u05e4\u05e6\u05dc \u05ea\u05d0", +"Insert row before": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9", +"Insert row after": "\u05d4\u05d5\u05e1\u05e3 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9", +"Delete row": "\u05de\u05d7\u05e7 \u05e9\u05d5\u05e8\u05d4", +"Row properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05e9\u05d5\u05e8\u05d4", +"Cut row": "\u05d2\u05d6\u05d5\u05e8 \u05e9\u05d5\u05e8\u05d4", +"Copy row": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4", +"Paste row before": "\u05d4\u05d3\u05d1\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05dc\u05e4\u05e0\u05d9", +"Paste row after": "\u05d4\u05e2\u05ea\u05e7 \u05e9\u05d5\u05e8\u05d4 \u05d0\u05d7\u05e8\u05d9", +"Insert column before": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05dc\u05e4\u05e0\u05d9", +"Insert column after": "\u05d4\u05e2\u05ea\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4 \u05d0\u05d7\u05e8\u05d9", +"Delete column": "\u05de\u05d7\u05e7 \u05e2\u05de\u05d5\u05d3\u05d4", +"Cols": "\u05e2\u05de\u05d5\u05d3\u05d5\u05ea", +"Rows": "\u05e9\u05d5\u05e8\u05d5\u05ea", +"Width": "\u05e8\u05d5\u05d7\u05d1", +"Height": "\u05d2\u05d5\u05d1\u05d4", +"Cell spacing": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05d7\u05d9\u05e6\u05d5\u05e0\u05d9\u05dd \u05dc\u05ea\u05d0", +"Cell padding": "\u05e9\u05d5\u05dc\u05d9\u05d9\u05dd \u05e4\u05e0\u05d9\u05de\u05d9\u05d9\u05dd \u05dc\u05ea\u05d0", +"Show caption": "\u05d4\u05e6\u05d2 \u05db\u05ea\u05d5\u05d1\u05d9\u05ea", +"Left": "\u05e9\u05de\u05d0\u05dc", +"Center": "\u05de\u05e8\u05db\u05d6", +"Right": "\u05d9\u05de\u05d9\u05df", +"Cell type": "\u05e1\u05d5\u05d2 \u05ea\u05d0", +"Scope": "\u05d4\u05d9\u05e7\u05e3", +"Alignment": "\u05d9\u05d9\u05e9\u05d5\u05e8", +"H Align": "\u05d9\u05d9\u05e9\u05d5\u05e8 \u05d0\u05d5\u05e4\u05e7\u05d9", +"V Align": "\u05d9\u05d9\u05e9\u05d5\u05e8 \u05d0\u05e0\u05db\u05d9", +"Top": "\u05e2\u05dc\u05d9\u05d5\u05df", +"Middle": "\u05d0\u05de\u05e6\u05e2", +"Bottom": "\u05ea\u05d7\u05ea\u05d9\u05ea", +"Header cell": "\u05db\u05d5\u05ea\u05e8\u05ea \u05dc\u05ea\u05d0", +"Row group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e9\u05d5\u05e8\u05d5\u05ea", +"Column group": "\u05e7\u05d9\u05d1\u05d5\u05e5 \u05e2\u05de\u05d5\u05d3\u05d5\u05ea", +"Row type": "\u05e1\u05d5\u05d2 \u05e9\u05d5\u05e8\u05d4", +"Header": "\u05db\u05d5\u05ea\u05e8\u05ea", +"Body": "\u05d2\u05d5\u05e3 \u05d4\u05d8\u05d1\u05dc\u05d0", +"Footer": "\u05db\u05d5\u05ea\u05e8\u05ea \u05ea\u05d7\u05ea\u05d5\u05e0\u05d4", +"Border color": "\u05e6\u05d1\u05e2 \u05d2\u05d1\u05d5\u05dc", +"Insert template...": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea...", +"Templates": "\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea", +"Template": "\u05ea\u05d1\u05e0\u05d9\u05ea", +"Text color": "\u05e6\u05d1\u05e2 \u05d4\u05db\u05ea\u05d1", +"Background color": "\u05e6\u05d1\u05e2 \u05e8\u05e7\u05e2", +"Custom...": "\u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea...", +"Custom color": "\u05e6\u05d1\u05e2 \u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea", +"No color": "\u05dc\u05dc\u05d0 \u05e6\u05d1\u05e2", +"Remove color": "\u05d4\u05e1\u05e8 \u05e6\u05d1\u05e2", +"Table of Contents": "\u05ea\u05d5\u05db\u05df \u05e2\u05e0\u05d9\u05d9\u05e0\u05d9\u05dd", +"Show blocks": "\u05d4\u05e6\u05d2 \u05ea\u05d9\u05d1\u05d5\u05ea", +"Show invisible characters": "\u05d4\u05e6\u05d2 \u05ea\u05d5\u05d5\u05d9\u05dd \u05dc\u05d0 \u05e0\u05e8\u05d0\u05d9\u05dd", +"Word count": "\u05e1\u05e4\u05d9\u05e8\u05ea \u05de\u05d9\u05dc\u05d9\u05dd", +"Words: {0}": "\u05de\u05d9\u05dc\u05d9\u05dd: {0}", +"{0} words": "{0} \u05de\u05d9\u05dc\u05d9\u05dd", +"File": "\u05e7\u05d5\u05d1\u05e5", +"Edit": "\u05e2\u05e8\u05d9\u05db\u05d4", +"Insert": "\u05d4\u05d5\u05e1\u05e4\u05d4", +"View": "\u05ea\u05e6\u05d5\u05d2\u05d4", +"Format": "\u05e4\u05d5\u05e8\u05de\u05d8", +"Table": "\u05d8\u05d1\u05dc\u05d4", +"Tools": "\u05db\u05dc\u05d9\u05dd", +"Powered by {0}": "\u05de\u05d5\u05e4\u05e2\u05dc \u05e2\"\u05d9 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u05ea\u05d9\u05d1\u05ea \u05e2\u05e8\u05d9\u05db\u05d4 \u05d7\u05db\u05de\u05d4. \u05dc\u05d7\u05e5 Alt-F9 \u05dc\u05ea\u05e4\u05e8\u05d9\u05d8. Alt-F10 \u05dc\u05ea\u05e6\u05d5\u05d2\u05ea \u05db\u05e4\u05ea\u05d5\u05e8\u05d9\u05dd, Alt-0 \u05dc\u05e2\u05d6\u05e8\u05d4", +"Image title": "\u05db\u05d5\u05ea\u05e8\u05ea \u05ea\u05de\u05d5\u05e0\u05d4", +"Border width": "\u05e8\u05d5\u05d7\u05d1 \u05d2\u05d1\u05d5\u05dc", +"Border style": "\u05e1\u05d2\u05e0\u05d5\u05df \u05d2\u05d1\u05d5\u05dc", +"Error": "\u05e9\u05d2\u05d9\u05d0\u05d4", +"Warn": "\u05d0\u05d6\u05d4\u05e8\u05d4", +"Valid": "\u05d7\u05d5\u05e7\u05d9", +"To open the popup, press Shift+Enter": "\u05db\u05d3\u05d9 \u05dc\u05e4\u05ea\u05d5\u05d7 \u05d0\u05ea \u05d4\u05e4\u05e8\u05d9\u05d8 \u05d4\u05de\u05d5\u05e7\u05e4\u05e5, \u05d4\u05e7\u05e9 \u05e2\u05dc Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u05d0\u05d6\u05d5\u05e8 \u05d8\u05e7\u05e1\u05d8 \u05e2\u05e9\u05d9\u05e8. \u05d4\u05e7\u05e9 \u05e2\u05dc ALT-0 \u05dc\u05e2\u05d6\u05e8\u05d4.", +"System Font": "\u05d2\u05d5\u05e4\u05df \u05de\u05e2\u05e8\u05db\u05ea", +"Failed to upload image: {0}": "\u05db\u05e9\u05dc \u05d1\u05d4\u05e2\u05dc\u05d0\u05ea \u05ea\u05de\u05d5\u05e0\u05d4: {0}", +"Failed to load plugin: {0} from url {1}": "\u05db\u05e9\u05dc \u05d1\u05d8\u05e2\u05d9\u05e0\u05ea \u05d9\u05d9\u05e9\u05d5\u05dd Plugin: {0} \u05de\u05db\u05ea\u05d5\u05d1\u05ea URL\u200f {1}", +"Failed to load plugin url: {0}": "\u05db\u05e9\u05dc \u05d1\u05d8\u05e2\u05d9\u05e0\u05ea \u05db\u05ea\u05d5\u05d1\u05ea URL \u05e9\u05dc \u05d9\u05d9\u05e9\u05d5\u05dd Plugin\u200f: {0}", +"Failed to initialize plugin: {0}": "\u05db\u05e9\u05dc \u05d1\u05d0\u05ea\u05d7\u05d5\u05dc \u05d9\u05d9\u05e9\u05d5\u05dd Plugin\u200f: {0}", +"example": "\u05d3\u05d5\u05d2\u05de\u05d4", +"Search": "\u05d7\u05e4\u05e9", +"All": "\u05d4\u05db\u05dc", +"Currency": "\u05de\u05d8\u05d1\u05e2", +"Text": "\u05d8\u05e7\u05e1\u05d8", +"Quotations": "\u05e9\u05d0\u05dc\u05d5\u05ea", +"Mathematical": "\u05de\u05ea\u05de\u05d8\u05d9", +"Extended Latin": "\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea \u05de\u05d5\u05e8\u05d7\u05d1\u05ea", +"Symbols": "\u05e1\u05de\u05dc\u05d9\u05dd", +"Arrows": "\u05d7\u05d9\u05e6\u05d9\u05dd", +"User Defined": "\u05de\u05d5\u05d2\u05d3\u05e8 \u05e2\u05dc-\u05d9\u05d3\u05d9 \u05d4\u05de\u05e9\u05ea\u05de\u05e9", +"dollar sign": "\u05e1\u05d9\u05de\u05df \u05d3\u05d5\u05dc\u05e8", +"currency sign": "\u05e1\u05d9\u05de\u05df \u05de\u05d8\u05d1\u05e2", +"euro-currency sign": "\u05e1\u05d9\u05de\u05df \u05de\u05d8\u05d1\u05e2 \u05d0\u05d9\u05e8\u05d5", +"colon sign": "\u05e1\u05d9\u05de\u05df \u05e7\u05d5\u05dc\u05d5\u05df", +"cruzeiro sign": "\u05e1\u05d9\u05de\u05df \u05e7\u05e8\u05d5\u05d6\u05e8\u05d5", +"french franc sign": "\u05e1\u05d9\u05de\u05df \u05e4\u05e8\u05e0\u05e7 \u05e6\u05e8\u05e4\u05ea\u05d9", +"lira sign": "\u05e1\u05d9\u05de\u05df \u05dc\u05d9\u05e8\u05d4", +"mill sign": "\u05e1\u05d9\u05de\u05df \u05de\u05d9\u05dc", +"naira sign": "\u05e1\u05d9\u05de\u05df \u05e0\u05d0\u05d9\u05e8\u05d4", +"peseta sign": "\u05e1\u05d9\u05de\u05df \u05e4\u05d6\u05d8\u05d4", +"rupee sign": "\u05e1\u05d9\u05de\u05df \u05e8\u05d5\u05e4\u05d9", +"won sign": "\u05e1\u05d9\u05de\u05df \u05d5\u05d5\u05df", +"new sheqel sign": "\u05e1\u05d9\u05de\u05df \u05e9\u05e7\u05dc \u05d7\u05d3\u05e9", +"dong sign": "\u05e1\u05d9\u05de\u05df \u05d3\u05d5\u05e0\u05d2", +"kip sign": "\u05e1\u05d9\u05de\u05df \u05e7\u05d9\u05e4", +"tugrik sign": "\u05e1\u05d9\u05de\u05df \u05d8\u05d5\u05d2\u05e8\u05d9\u05e7", +"drachma sign": "\u05e1\u05d9\u05de\u05df \u05d3\u05e8\u05db\u05de\u05d4", +"german penny symbol": "\u05e1\u05de\u05dc \u05e4\u05e0\u05d9 \u05d2\u05e8\u05de\u05e0\u05d9", +"peso sign": "\u05e1\u05d9\u05de\u05df \u05e4\u05d6\u05d5", +"guarani sign": "\u05e1\u05d9\u05de\u05df \u05d2\u05d5\u05d0\u05e8\u05e0\u05d9\u05ea", +"austral sign": "\u05e1\u05d9\u05de\u05df \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc", +"hryvnia sign": "\u05e1\u05d9\u05de\u05df \u05e8\u05d9\u05d1\u05e0\u05d9\u05d4", +"cedi sign": "\u05e1\u05d9\u05de\u05df \u05e1\u05d3\u05d9", +"livre tournois sign": "\u05e1\u05d9\u05de\u05df \u05dc\u05d1\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e0\u05d5", +"spesmilo sign": "\u05e1\u05d9\u05de\u05df \u05e1\u05e4\u05e1\u05de\u05d9\u05dc\u05d5", +"tenge sign": "\u05e1\u05d9\u05de\u05df \u05d8\u05e0\u05d2\u05d4", +"indian rupee sign": "\u05e1\u05d9\u05de\u05df \u05e8\u05d5\u05e4\u05d9 \u05d4\u05d5\u05d3\u05d9", +"turkish lira sign": "\u05e1\u05d9\u05de\u05df \u05dc\u05d9\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e7\u05d9\u05ea", +"nordic mark sign": "\u05e1\u05d9\u05de\u05df \u05de\u05d0\u05e8\u05e7 \u05e1\u05e7\u05e0\u05d3\u05d9\u05e0\u05d1\u05d9", +"manat sign": "\u05e1\u05d9\u05de\u05df \u05de\u05d0\u05e0\u05d0\u05d8", +"ruble sign": "\u05e1\u05d9\u05de\u05df \u05e8\u05d5\u05d1\u05dc", +"yen character": "\u05ea\u05d5 \u05d9\u05df", +"yuan character": "\u05ea\u05d5 \u05d9\u05d5\u05d0\u05df", +"yuan character, in hong kong and taiwan": "\u05ea\u05d5 \u05d9\u05d5\u05d0\u05df, \u05d1\u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2 \u05d5\u05d1\u05d8\u05d9\u05d9\u05d5\u05d5\u05d0\u05df", +"yen\/yuan character variant one": "\u05de\u05e9\u05ea\u05e0\u05d4 \u05d0\u05d7\u05d3 \u05e9\u05dc \u05ea\u05d5 \u05d9\u05d5\u05d0\u05df\/\u05d9\u05df", +"Loading emoticons...": "\u05d8\u05d5\u05e2\u05df \u05e1\u05de\u05dc\u05d9 \u05d4\u05d1\u05e2\u05d4...", +"Could not load emoticons": "\u05dc\u05d0 \u05e0\u05d9\u05ea\u05df \u05d4\u05d9\u05d4 \u05dc\u05d8\u05e2\u05d5\u05df \u05e1\u05de\u05dc\u05d9 \u05d4\u05d1\u05e2\u05d4", +"People": "\u05d0\u05e0\u05e9\u05d9\u05dd", +"Animals and Nature": "\u05d1\u05e2\u05dc\u05d9-\u05d7\u05d9\u05d9\u05dd \u05d5\u05d8\u05d1\u05e2", +"Food and Drink": "\u05d0\u05d5\u05db\u05dc \u05d5\u05e9\u05ea\u05d9\u05d9\u05d4", +"Activity": "\u05e4\u05e2\u05d9\u05dc\u05d5\u05ea", +"Travel and Places": "\u05e0\u05e1\u05d9\u05e2\u05d4 \u05d5\u05de\u05e7\u05d5\u05de\u05d5\u05ea", +"Objects": "\u05d0\u05d5\u05d1\u05d9\u05d9\u05e7\u05d8\u05d9\u05dd", +"Flags": "\u05d3\u05d2\u05dc\u05d9\u05dd", +"Characters": "\u05ea\u05d5\u05d5\u05d9\u05dd", +"Characters (no spaces)": "\u05ea\u05d5\u05d5\u05d9\u05dd (\u05dc\u05dc\u05d0 \u05e8\u05d5\u05d5\u05d7\u05d9\u05dd)", +"Error: Form submit field collision.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05d4\u05ea\u05e0\u05d2\u05e9\u05d5\u05ea \u05d1\u05e9\u05d3\u05d4 \u05e9\u05dc\u05d9\u05d7\u05ea \u05d8\u05d5\u05e4\u05e1.", +"Error: No form element found.": "\u05e9\u05d2\u05d9\u05d0\u05d4: \u05dc\u05d0 \u05e0\u05de\u05e6\u05d0 \u05e8\u05db\u05d9\u05d1 \u05d8\u05d5\u05e4\u05e1.", +"Update": "\u05e2\u05d3\u05db\u05df", +"Color swatch": "\u05d3\u05d5\u05d2\u05de\u05d0\u05d5\u05ea \u05e6\u05d1\u05e2", +"Turquoise": "\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6", +"Green": "\u05d9\u05e8\u05d5\u05e7", +"Blue": "\u05db\u05d7\u05d5\u05dc", +"Purple": "\u05e1\u05d2\u05d5\u05dc", +"Navy Blue": "\u05db\u05d7\u05d5\u05dc \u05e6\u05d9", +"Dark Turquoise": "\u05d8\u05d5\u05e8\u05e7\u05d9\u05d6 \u05db\u05d4\u05d4", +"Dark Green": "\u05d9\u05e8\u05d5\u05e7 \u05db\u05d4\u05d4", +"Medium Blue": "\u05db\u05d7\u05d5\u05dc \u05d1\u05d9\u05e0\u05d5\u05e0\u05d9", +"Medium Purple": "\u05e1\u05d2\u05d5\u05dc \u05d1\u05d9\u05e0\u05d5\u05e0\u05d9", +"Midnight Blue": "\u05db\u05d7\u05d5\u05dc \u05d7\u05e6\u05d5\u05ea", +"Yellow": "\u05e6\u05d4\u05d5\u05d1", +"Orange": "\u05db\u05ea\u05d5\u05dd", +"Red": "\u05d0\u05d3\u05d5\u05dd", +"Light Gray": "\u05d0\u05e4\u05d5\u05e8 \u05d1\u05d4\u05d9\u05e8", +"Gray": "\u05d0\u05e4\u05d5\u05e8", +"Dark Yellow": "\u05e6\u05d4\u05d5\u05d1 \u05db\u05d4\u05d4", +"Dark Orange": "\u05db\u05ea\u05d5\u05dd \u05db\u05d4\u05d4", +"Dark Red": "\u05d0\u05d3\u05d5\u05dd \u05db\u05d4\u05d4", +"Medium Gray": "\u05d0\u05e4\u05d5\u05e8 \u05d1\u05d9\u05e0\u05d5\u05e0\u05d9", +"Dark Gray": "\u05d0\u05e4\u05d5\u05e8 \u05db\u05d4\u05d4", +"Black": "\u05e9\u05d7\u05d5\u05e8", +"White": "\u05dc\u05d1\u05df", +"Switch to or from fullscreen mode": "\u05d4\u05d7\u05dc\u05e3 \u05dc\u05de\u05e6\u05d1 \u05de\u05e1\u05da \u05de\u05dc\u05d0 \u05d0\u05d5 \u05e6\u05d0 \u05de\u05de\u05e0\u05d5", +"Open help dialog": "\u05e4\u05ea\u05d7 \u05ea\u05d9\u05d1\u05ea \u05d3\u05d5-\u05e9\u05d9\u05d7 \u05e9\u05dc \u05e2\u05d6\u05e8\u05d4", +"history": "\u05d4\u05d9\u05e1\u05d8\u05d5\u05e8\u05d9\u05d4", +"styles": "\u05e1\u05d2\u05e0\u05d5\u05e0\u05d5\u05ea", +"formatting": "\u05e2\u05d9\u05e6\u05d5\u05d1", +"alignment": "\u05d9\u05d9\u05e9\u05d5\u05e8", +"indentation": "\u05d4\u05d6\u05d7\u05d4", +"permanent pen": "\u05e2\u05d8 \u05e7\u05d1\u05d5\u05e2", +"comments": "\u05d4\u05e2\u05e8\u05d5\u05ea", +"Anchor": "\u05de\u05e7\u05d5\u05dd \u05e2\u05d9\u05d2\u05d5\u05df", +"Special character": "\u05ea\u05d5\u05d5\u05d9\u05dd \u05de\u05d9\u05d5\u05d7\u05d3\u05d9\u05dd", +"Code sample": "\u05d3\u05d5\u05d2\u05de\u05ea \u05e7\u05d5\u05d3", +"Color": "\u05e6\u05d1\u05e2", +"Emoticons": "\u05de\u05d7\u05d5\u05d5\u05ea", +"Document properties": "\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9 \u05de\u05e1\u05de\u05da", +"Image": "\u05ea\u05de\u05d5\u05e0\u05d4", +"Insert link": "\u05d4\u05db\u05e0\u05e1 \u05e7\u05d9\u05e9\u05d5\u05e8", +"Target": "\u05de\u05d8\u05e8\u05d4", +"Link": "\u05e7\u05d9\u05e9\u05d5\u05e8", +"Poster": "\u05e4\u05d5\u05e1\u05d8\u05e8", +"Media": "\u05de\u05d3\u05d9\u05d4", +"Print": "\u05d4\u05d3\u05e4\u05e1", +"Prev": "\u05e7\u05d5\u05d3\u05dd", +"Find and replace": "\u05d7\u05e4\u05e9 \u05d5\u05d4\u05d7\u05dc\u05e3", +"Whole words": "\u05de\u05d9\u05dc\u05d4 \u05e9\u05dc\u05de\u05d4", +"Spellcheck": "\u05d1\u05d5\u05d3\u05e7 \u05d0\u05d9\u05d5\u05ea", +"Caption": "\u05db\u05d9\u05ea\u05d5\u05d1", +"Insert template": "\u05d4\u05db\u05e0\u05e1 \u05ea\u05d1\u05e0\u05d9\u05ea", +"_dir": "rtl" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/hr.js b/common/plugins/editors/tinymce/media/langs/hr.js new file mode 100755 index 0000000000000000000000000000000000000000..ff45c7f5b07b5de20057a333bbbd50a59951080f --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/hr.js @@ -0,0 +1,388 @@ +tinymce.addI18n('hr',{ +"Redo": "Ponovi", +"Undo": "Poni\u0161ti", +"Cut": "Izre\u017ei", +"Copy": "Kopiraj", +"Paste": "Zalijepi", +"Select all": "Odaberi sve", +"New document": "Novi dokument", +"Ok": "U redu", +"Cancel": "Odustani", +"Visual aids": "Vizualna pomo\u0107", +"Bold": "Podebljano", +"Italic": "Kurziv", +"Underline": "Podcrtaj", +"Strikethrough": "Prekri\u017ei", +"Superscript": "Eksponent", +"Subscript": "Indeks", +"Clear formatting": "Izbri\u0161i oblikovanje", +"Align left": "Poravnaj lijevo", +"Align center": "Poravnaj po sredini", +"Align right": "Poravnaj desno", +"Justify": "Obostrano poravnanje", +"Bullet list": "Popis s oznakama", +"Numbered list": "Numerirani popis", +"Decrease indent": "Smanji uvla\u010denje", +"Increase indent": "Pove\u0107aj uvla\u010denje", +"Close": "Zatvori", +"Formats": "Formati", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Va\u0161 preglednik ne podr\u017eava izravan pristup me\u0111uspremniku. Umjesto toga upotrijebite tipkovni\u010dke pre\u010dace Ctrl\u00a0+\u00a0X\/C\/V.", +"Headers": "Zaglavlja", +"Header 1": "Zaglavlje 1", +"Header 2": "Zaglavlje 2", +"Header 3": "Zaglavlje 3", +"Header 4": "Zaglavlje 4", +"Header 5": "Zaglavlje 5", +"Header 6": "Zaglavlje 6", +"Headings": "Zaglavlja", +"Heading 1": "Zaglavlje 1", +"Heading 2": "Zaglavlje 2", +"Heading 3": "Zaglavlje 3", +"Heading 4": "Zaglavlje 4", +"Heading 5": "Zaglavlje 5", +"Heading 6": "Zaglavlje 6", +"Preformatted": "Prethodno oblikovano", +"Div": "Div", +"Pre": "Pre", +"Code": "Kod", +"Paragraph": "Odlomak", +"Blockquote": "Blockquote", +"Inline": "U retku", +"Blocks": "Blokovi", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Akcija zalijepi od sada lijepi \u010disti tekst. Sadr\u017eaj \u0107e biti zaljepljen kao \u010disti tekst sve dok ne isklju\u010dite ovu opciju.", +"Fonts": "Fontovi", +"Font Sizes": "Veli\u010dine fonta", +"Class": "Razred", +"Browse for an image": "Potra\u017eite sliku", +"OR": "ILI", +"Drop an image here": "Ispustite sliku ovdje", +"Upload": "U\u010ditaj", +"Block": "Blok", +"Align": "Poravnaj", +"Default": "Zadano", +"Circle": "Krug", +"Disc": "To\u010dka", +"Square": "Kvadrat", +"Lower Alpha": "Mala slova", +"Lower Greek": "Mala gr\u010dka slova", +"Lower Roman": "Mala rimska slova", +"Upper Alpha": "Velika slova", +"Upper Roman": "Velika rimska slova", +"Anchor...": "Fiksna to\u010dka...", +"Name": "Ime", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id treba po\u010dinjati slovom, a nakon toga slijede samo slova, brojevi, crtice, to\u010dke, dvoto\u010dke i podvlake.", +"You have unsaved changes are you sure you want to navigate away?": "Postoje ne pohranjene izmjene, jeste li sigurni da \u017eelite oti\u0107i?", +"Restore last draft": "Vrati posljednju skicu", +"Special characters...": "Posebni znakovi...", +"Source code": "Izvorni kod", +"Insert\/Edit code sample": "Umetni\/Uredi primjer k\u00f4da", +"Language": "Jezik", +"Code sample...": "Primjerak k\u00f4da...", +"Color Picker": "Izabira\u010d boja", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "S lijeva na desno", +"Right to left": "S desna na lijevo", +"Emoticons...": "Emotikoni...", +"Metadata and Document Properties": "Metapodaci i svojstva dokumenta", +"Title": "Naslov", +"Keywords": "Klju\u010dne rije\u010di", +"Description": "Opis", +"Robots": "Roboti pretra\u017eiva\u010da", +"Author": "Autor", +"Encoding": "Kodna stranica", +"Fullscreen": "Cijeli ekran", +"Action": "Action", +"Shortcut": "Shortcut", +"Help": "Help", +"Address": "Address", +"Focus to menubar": "Focus to menubar", +"Focus to toolbar": "Focus to toolbar", +"Focus to element path": "Focus to element path", +"Focus to contextual toolbar": "Focus to contextual toolbar", +"Insert link (if link plugin activated)": "Insert link (if link plugin activated)", +"Save (if save plugin activated)": "Save (if save plugin activated)", +"Find (if searchreplace plugin activated)": "Find (if searchreplace plugin activated)", +"Plugins installed ({0}):": "Plugins installed ({0}):", +"Premium plugins:": "Premium plugins:", +"Learn more...": "Learn more...", +"You are using {0}": "You are using {0}", +"Plugins": "Dodaci", +"Handy Shortcuts": "Korisni pre\u010daci", +"Horizontal line": "Horizontalna linija", +"Insert\/edit image": "Umetni\/izmijeni sliku", +"Image description": "Opis slike", +"Source": "Izvor", +"Dimensions": "Dimenzije", +"Constrain proportions": "Zadr\u017ei proporcije", +"General": "Op\u0107enito", +"Advanced": "Napredno", +"Style": "Stil", +"Vertical space": "Okomit razmak", +"Horizontal space": "Horizontalan razmak", +"Border": "Rub", +"Insert image": "Umetni sliku", +"Image...": "Slika...", +"Image list": "Image list", +"Rotate counterclockwise": "Rotiraj lijevo", +"Rotate clockwise": "Rotiraj desno", +"Flip vertically": "Obrni vertikalno", +"Flip horizontally": "Obrni horizontalno", +"Edit image": "Uredi sliku", +"Image options": "Opcije slike", +"Zoom in": "Pove\u0107aj", +"Zoom out": "Smanji", +"Crop": "Obre\u017ei", +"Resize": "Promjeni veli\u010dinu", +"Orientation": "Orijentacija", +"Brightness": "Svjetlina", +"Sharpen": "Izo\u0161travanje", +"Contrast": "Kontrast", +"Color levels": "Razine boje", +"Gamma": "Gamma", +"Invert": "Invertiraj", +"Apply": "Primijeni", +"Back": "Natrag", +"Insert date\/time": "Umetni datum\/vrijeme", +"Date\/time": "Datum\/vrijeme", +"Insert\/Edit Link": "Umetni\/uredi poveznicu", +"Insert\/edit link": "Umetni\/izmijeni poveznicu", +"Text to display": "Tekst za prikaz", +"Url": "Url", +"Open link in...": "Otvori poveznicu u...", +"Current window": "Trenuta\u010dni prozor", +"None": "Ni\u0161ta", +"New window": "Novi prozor", +"Remove link": "Ukloni poveznicu", +"Anchors": "Kra\u0107e poveznice", +"Link...": "Poveznica...", +"Paste or type a link": "Zalijepi ili upi\u0161i link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Izgleda da je URL koji ste upisali e-mail adresa. \u017delite li dodati obavezan mailto: prefiks?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Izgleda da je URL koji ste upisali vanjski link. \u017delite li dodati obavezan http:\/\/ prefiks?", +"Link list": "Link list", +"Insert video": "Umetni video", +"Insert\/edit video": "Umetni\/izmijeni video", +"Insert\/edit media": "Umetni\/uredi mediju", +"Alternative source": "Alternativni izvor", +"Alternative source URL": "URL alternativnog izvora", +"Media poster (Image URL)": "Medijski poster (URL slike)", +"Paste your embed code below:": "Umetnite va\u0161 kod za ugradnju ispod:", +"Embed": "Ugradi", +"Media...": "Mediji...", +"Nonbreaking space": "Neprekidaju\u0107i razmak", +"Page break": "Prijelom stranice", +"Paste as text": "Zalijepi kao tekst", +"Preview": "Pregled", +"Print...": "Ispi\u0161i...", +"Save": "Spremi", +"Find": "Tra\u017ei", +"Replace with": "Zamijeni s", +"Replace": "Zamijeni", +"Replace all": "Zamijeni sve", +"Previous": "Prethodno", +"Next": "Slijede\u0107i", +"Find and replace...": "Prona\u0111i i zamijeni...", +"Could not find the specified string.": "Tra\u017eeni tekst nije prona\u0111en", +"Match case": "Pazi na mala i velika slova", +"Find whole words only": "Prona\u0111i samo cijele rije\u010di", +"Spell check": "Provjera pravopisa", +"Ignore": "Zanemari", +"Ignore all": "Zanemari sve", +"Finish": "Zavr\u0161i", +"Add to Dictionary": "Dodaj u rje\u010dnik", +"Insert table": "Umetni tablicu", +"Table properties": "Svojstva tablice", +"Delete table": "Izbri\u0161i tablicu", +"Cell": "Polje", +"Row": "Redak", +"Column": "Stupac", +"Cell properties": "Svojstva polja", +"Merge cells": "Spoji polja", +"Split cell": "Razdvoji polja", +"Insert row before": "Umetni redak prije", +"Insert row after": "Umetni redak nakon", +"Delete row": "Izbri\u0161i redak", +"Row properties": "Svojstva redka", +"Cut row": "Izre\u017ei redak", +"Copy row": "Kopiraj redak", +"Paste row before": "Zalijepi redak prije", +"Paste row after": "Zalijepi redak nakon", +"Insert column before": "Umetni stupac prije", +"Insert column after": "Umetni stupac nakon", +"Delete column": "Izbri\u0161i stupac", +"Cols": "Stupci", +"Rows": "Redci", +"Width": "\u0160irina", +"Height": "Visina", +"Cell spacing": "Razmak izme\u0111u polja", +"Cell padding": "Razmak unutar polja", +"Show caption": "Prika\u017ei natpis", +"Left": "Lijevo", +"Center": "Sredina", +"Right": "Desno", +"Cell type": "Vrsta polja", +"Scope": "Doseg", +"Alignment": "Poravnanje", +"H Align": "H Poravnavanje", +"V Align": "V Poravnavanje", +"Top": "Vrh", +"Middle": "Sredina", +"Bottom": "Dno", +"Header cell": "Polje zaglavlja", +"Row group": "Grupirani redci", +"Column group": "Grupirani stupci", +"Row type": "Vrsta redka", +"Header": "Zaglavlje", +"Body": "Sadr\u017eaj", +"Footer": "Podno\u017eje", +"Border color": "Boja ruba", +"Insert template...": "Umetni predlo\u017eak...", +"Templates": "Predlo\u0161ci", +"Template": "Predlo\u017eak", +"Text color": "Boja teksta", +"Background color": "Boja pozadine", +"Custom...": "Prilago\u0111eno...", +"Custom color": "Prilago\u0111ena boja", +"No color": "Bez boje", +"Remove color": "Ukloni boju", +"Table of Contents": "Sadr\u017eaj", +"Show blocks": "Prika\u017ei blokove", +"Show invisible characters": "Prika\u017ei nevidljive znakove", +"Word count": "Broj rije\u010di", +"Words: {0}": "Rije\u010di: {0}", +"{0} words": "{0} rije\u010d(i)", +"File": "Datoteka", +"Edit": "Izmijeni", +"Insert": "Umetni", +"View": "Pogled", +"Format": "Oblikuj", +"Table": "Tablica", +"Tools": "Alati", +"Powered by {0}": "Omogu\u0107uje {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Pritisni ALT-F9 za izbornik. Pritisni ALT-F10 za alatnu traku. Pritisni ALT-0 za pomo\u0107", +"Image title": "Naslov slike", +"Border width": "\u0160irina granice", +"Border style": "Stil granice", +"Error": "Pogre\u0161ka", +"Warn": "Upozori", +"Valid": "Valjano", +"To open the popup, press Shift+Enter": "Da biste otvorili sko\u010dni prozor, pritisnite Shift\u00a0+\u00a0Enter", +"Rich Text Area. Press ALT-0 for help.": "Podru\u010dje oboga\u0107enog teksta. Pritisnite ALT-0 za pomo\u0107.", +"System Font": "Font sustava", +"Failed to upload image: {0}": "U\u010ditavanje slike nije uspjelo: {0}", +"Failed to load plugin: {0} from url {1}": "U\u010ditavanje dodatka nije uspjelo: {0} s URL-a {1}", +"Failed to load plugin url: {0}": "U\u010ditavanje dodatka nije uspjelo: {0}", +"Failed to initialize plugin: {0}": "Pokretanje dodatka nije uspjelo: {0}", +"example": "primjer", +"Search": "Tra\u017ei", +"All": "Svi", +"Currency": "Valuta", +"Text": "Tekst", +"Quotations": "Navodnici", +"Mathematical": "Matemati\u010dki", +"Extended Latin": "Pro\u0161ireni latinski", +"Symbols": "Simboli", +"Arrows": "Strelice", +"User Defined": "Korisni\u010dki definirano", +"dollar sign": "znak za dolar", +"currency sign": "znak za valutu", +"euro-currency sign": "znak za valutu \u2013 euro", +"colon sign": "znak za kolon", +"cruzeiro sign": "znak za cruzeiro", +"french franc sign": "znak za francuski franak", +"lira sign": "znak za liru", +"mill sign": "znak za mill", +"naira sign": "znak za nairu", +"peseta sign": "znak za pezetu", +"rupee sign": "znak za rupiju", +"won sign": "znak za von", +"new sheqel sign": "znak za novi \u0161ekel", +"dong sign": "znak za dong", +"kip sign": "znak za kip", +"tugrik sign": "znak za tugrik", +"drachma sign": "znak za drahmu", +"german penny symbol": "simbol za njema\u010dki peni", +"peso sign": "znak za pezo", +"guarani sign": "znak za gvarani", +"austral sign": "znak za austral", +"hryvnia sign": "znak za grivnju", +"cedi sign": "znak za cedi", +"livre tournois sign": "znak za livre tournois", +"spesmilo sign": "znak za spesmilo", +"tenge sign": "znak za tengu", +"indian rupee sign": "znak za indijsku rupiju", +"turkish lira sign": "znak za tursku liru", +"nordic mark sign": "znak za nordijsku marku", +"manat sign": "znak za manat", +"ruble sign": "znak za rubalj", +"yen character": "znak za jen", +"yuan character": "znak za juan", +"yuan character, in hong kong and taiwan": "znak za juan, u Hong Kongu i Tajvanu", +"yen\/yuan character variant one": "znak za jen\/juan, prva varijanta", +"Loading emoticons...": "U\u010ditavanje emotikona...", +"Could not load emoticons": "Nije mogu\u0107e u\u010ditati emotikone", +"People": "Ljudi", +"Animals and Nature": "\u017divotinje i priroda", +"Food and Drink": "Hrana i pi\u0107e", +"Activity": "Aktivnosti", +"Travel and Places": "Putovanje i mjesta", +"Objects": "Predmeti", +"Flags": "Zastave", +"Characters": "Znakovi", +"Characters (no spaces)": "Znakovi (bez razmaka)", +"Error: Form submit field collision.": "Pogre\u0161ka: sukob polja za podno\u0161enje obrasca.", +"Error: No form element found.": "Pogre\u0161ka: nema elementa oblika.", +"Update": "A\u017euriraj", +"Color swatch": "Uzorak boje", +"Turquoise": "Tirkizna", +"Green": "Zelena", +"Blue": "Plava", +"Purple": "Ljubi\u010dasta", +"Navy Blue": "Mornarsko plava", +"Dark Turquoise": "Tamnotirkizna", +"Dark Green": "Tamnozelena", +"Medium Blue": "Srednje plava", +"Medium Purple": "Srednje ljubi\u010dasta", +"Midnight Blue": "Pono\u0107no plava", +"Yellow": "\u017duta", +"Orange": "Naran\u010dasta", +"Red": "Crvena", +"Light Gray": "Svijetlosiva", +"Gray": "Siva", +"Dark Yellow": "Tamno\u017euta", +"Dark Orange": "Tamnonaran\u010dasta", +"Dark Red": "Tamnocrvena", +"Medium Gray": "Srednje siva", +"Dark Gray": "Tamnosiva", +"Black": "Crna", +"White": "Bijela", +"Switch to or from fullscreen mode": "Prebacivanje u prikaz preko cijelog zaslona ili iz njega", +"Open help dialog": "Otvori dijalo\u0161ki okvir za pomo\u0107", +"history": "povijest", +"styles": "stilovi", +"formatting": "oblikovanje", +"alignment": "poravnanje", +"indentation": "uvlaka", +"permanent pen": "trajna olovka", +"comments": "komentari", +"Anchor": "Sidro", +"Special character": "Poseban znak", +"Color": "Boja", +"Emoticons": "Emotikoni", +"Document properties": "Svojstva dokumenta", +"Image": "Slika", +"Insert link": "Umetni poveznicu", +"Target": "Meta", +"Link": "Link", +"Poster": "Poster", +"Media": "Media", +"Print": "Ispis", +"Prev": "Prethodni", +"Find and replace": "Prona\u0111i i zamijeni", +"Whole words": "Cijele rije\u010di", +"Spellcheck": "Provjeri pravopis", +"Caption": "Natpis", +"Insert template": "Umetni predlo\u017eak" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/hu_HU.js b/common/plugins/editors/tinymce/media/langs/hu_HU.js new file mode 100755 index 0000000000000000000000000000000000000000..aca75e2dcb804f80318d041080e8223b49e07664 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/hu_HU.js @@ -0,0 +1,389 @@ +tinymce.addI18n('hu_HU',{ +"Redo": "Ism\u00e9t", +"Undo": "Visszavon\u00e1s", +"Cut": "Kiv\u00e1g\u00e1s", +"Copy": "M\u00e1sol\u00e1s", +"Paste": "Beilleszt\u00e9s", +"Select all": "Minden kijel\u00f6l\u00e9se", +"New document": "\u00daj dokumentum", +"Ok": "Rendben", +"Cancel": "M\u00e9gse", +"Visual aids": "Vizu\u00e1lis seg\u00e9deszk\u00f6z\u00f6k", +"Bold": "F\u00e9lk\u00f6v\u00e9r", +"Italic": "D\u0151lt", +"Underline": "Al\u00e1h\u00fazott", +"Strikethrough": "\u00c1th\u00fazott", +"Superscript": "Fels\u0151 index", +"Subscript": "Als\u00f3 index", +"Clear formatting": "Form\u00e1z\u00e1s t\u00f6rl\u00e9se", +"Align left": "Balra igaz\u00edt", +"Align center": "K\u00f6z\u00e9pre igaz\u00edt", +"Align right": "Jobbra igaz\u00edt", +"Justify": "Sorkiz\u00e1rt", +"Bullet list": "Listajeles lista", +"Numbered list": "Sz\u00e1mozott lista", +"Decrease indent": "Beh\u00faz\u00e1s cs\u00f6kkent\u00e9se", +"Increase indent": "Beh\u00faz\u00e1s n\u00f6vel\u00e9se", +"Close": "Bez\u00e1r", +"Formats": "Form\u00e1tumok", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "A b\u00f6ng\u00e9sz\u0151d nem t\u00e1mogatja a k\u00f6zvetlen hozz\u00e1f\u00e9r\u00e9st a v\u00e1g\u00f3laphoz. K\u00e9rlek, haszn\u00e1ld a Ctrl+X\/C\/V billenty\u0171ket.", +"Headers": "C\u00edmsorok", +"Header 1": "C\u00edmsor 1", +"Header 2": "C\u00edmsor 2", +"Header 3": "C\u00edmsor 3", +"Header 4": "C\u00edmsor 4", +"Header 5": "C\u00edmsor 5", +"Header 6": "C\u00edmsor 6", +"Headings": "Fejl\u00e9cek", +"Heading 1": "1. fejl\u00e9c", +"Heading 2": "2. fejl\u00e9c", +"Heading 3": "3. fejl\u00e9c", +"Heading 4": "4. fejl\u00e9c", +"Heading 5": "5. fejl\u00e9c", +"Heading 6": "6. fejl\u00e9c", +"Preformatted": "El\u0151form\u00e1zott", +"Div": "Div", +"Pre": "Pre", +"Code": "K\u00f3d", +"Paragraph": "Bekezd\u00e9s", +"Blockquote": "Id\u00e9zetblokk", +"Inline": "Foly\u00f3 sz\u00f6veg", +"Blocks": "Blokkok", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Beilleszt\u00e9s mostant\u00f3l egyszer\u0171 sz\u00f6veg m\u00f3dban. A tartalmak mostant\u00f3l egyszer\u0171 sz\u00f6vegk\u00e9nt lesznek beillesztve, am\u00edg nem kapcsolod ki ezt az opci\u00f3t.", +"Fonts": "Bet\u0171t\u00edpusok", +"Font Sizes": "Bet\u0171m\u00e9retek", +"Class": "Oszt\u00e1ly", +"Browse for an image": "K\u00e9p keres\u00e9se tall\u00f3z\u00e1ssal", +"OR": "VAGY", +"Drop an image here": "H\u00fazz ide egy k\u00e9pet", +"Upload": "Felt\u00f6lt\u00e9s", +"Block": "Blokk", +"Align": "Igaz\u00edt\u00e1s", +"Default": "Alap\u00e9rtelmezett", +"Circle": "K\u00f6r", +"Disc": "Pont", +"Square": "N\u00e9gyzet", +"Lower Alpha": "Kisbet\u0171", +"Lower Greek": "Kis g\u00f6r\u00f6g sz\u00e1m", +"Lower Roman": "Kis r\u00f3mai sz\u00e1m", +"Upper Alpha": "Nagybet\u0171", +"Upper Roman": "Nagy r\u00f3mai sz\u00e1m", +"Anchor...": "Horgony...", +"Name": "N\u00e9v", +"Id": "Azonos\u00edt\u00f3", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Az azonos\u00edt\u00f3nak bet\u0171vel kell kezd\u0151dnie, azut\u00e1n csak bet\u0171ket, sz\u00e1mokat, gondolatjeleket, pontokat, kett\u0151spontokat vagy al\u00e1h\u00faz\u00e1st tartalmazhat.", +"You have unsaved changes are you sure you want to navigate away?": "Nem mentett m\u00f3dos\u00edt\u00e1said vannak, biztos hogy el akarsz navig\u00e1lni?", +"Restore last draft": "Utols\u00f3 piszkozat vissza\u00e1ll\u00edt\u00e1sa", +"Special characters...": "Speci\u00e1lis karakterek...", +"Source code": "Forr\u00e1sk\u00f3d", +"Insert\/Edit code sample": "K\u00f3dminta besz\u00far\u00e1sa\/szerkeszt\u00e9se", +"Language": "Nyelv", +"Code sample...": "K\u00f3dminta...", +"Color Picker": "Sz\u00ednv\u00e1laszt\u00f3", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Balr\u00f3l jobbra", +"Right to left": "Jobbr\u00f3l balra", +"Emoticons...": "Hangulatjelek...", +"Metadata and Document Properties": "Metaadatok \u00e9s a dokumentum tulajdons\u00e1gai", +"Title": "C\u00edm", +"Keywords": "Kulcsszavak", +"Description": "Le\u00edr\u00e1s", +"Robots": "Robotok", +"Author": "Szerz\u0151", +"Encoding": "K\u00f3dol\u00e1s", +"Fullscreen": "Teljes k\u00e9perny\u0151", +"Action": "M\u0171velet", +"Shortcut": "Parancsikon", +"Help": "S\u00fag\u00f3", +"Address": "C\u00edm", +"Focus to menubar": "F\u00f3kusz a men\u00fcre", +"Focus to toolbar": "F\u00f3kusz az eszk\u00f6zt\u00e1rra", +"Focus to element path": "F\u00f3kusz az elemek \u00fatvonal\u00e1ra", +"Focus to contextual toolbar": "F\u00f3kusz a k\u00f6rnyezetf\u00fcgg\u0151 eszk\u00f6zt\u00e1rra", +"Insert link (if link plugin activated)": "Hivatkoz\u00e1s besz\u00far\u00e1sa (ha a hivatkoz\u00e1s b\u0151v\u00edtm\u00e9ny enged\u00e9lyezett)", +"Save (if save plugin activated)": "Ment\u00e9s (ha a ment\u00e9s b\u0151v\u00edtm\u00e9ny enged\u00e9lyezett)", +"Find (if searchreplace plugin activated)": "Keres\u00e9s (ha a keres\u00e9s \u00e9s csere b\u0151v\u00edtm\u00e9ny enged\u00e9lyezett)", +"Plugins installed ({0}):": "Telep\u00edtett b\u0151v\u00edtm\u00e9nyek ({0}):", +"Premium plugins:": "Pr\u00e9mium b\u0151v\u00edtm\u00e9nyek:", +"Learn more...": "Tudj meg t\u00f6bbet...", +"You are using {0}": "Haszn\u00e1latban: {0}", +"Plugins": "Pluginek", +"Handy Shortcuts": "Hasznos linkek", +"Horizontal line": "V\u00edzszintes vonal", +"Insert\/edit image": "K\u00e9p beilleszt\u00e9se\/szerkeszt\u00e9se", +"Image description": "K\u00e9p le\u00edr\u00e1sa", +"Source": "Forr\u00e1s", +"Dimensions": "M\u00e9retek", +"Constrain proportions": "M\u00e9retar\u00e1ny", +"General": "\u00c1ltal\u00e1nos", +"Advanced": "Halad\u00f3", +"Style": "St\u00edlus", +"Vertical space": "Vertik\u00e1lis hely", +"Horizontal space": "Horizont\u00e1lis hely", +"Border": "Szeg\u00e9ly", +"Insert image": "K\u00e9p beilleszt\u00e9se", +"Image...": "K\u00e9p...", +"Image list": "K\u00e9p lista", +"Rotate counterclockwise": "Forgat\u00e1s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val ellent\u00e9tesen", +"Rotate clockwise": "Forgat\u00e1s az \u00f3ramutat\u00f3 j\u00e1r\u00e1s\u00e1val megegyez\u0151en", +"Flip vertically": "F\u00fcgg\u0151leges t\u00fckr\u00f6z\u00e9s", +"Flip horizontally": "V\u00edzszintes t\u00fckr\u00f6z\u00e9s", +"Edit image": "K\u00e9p szerkeszt\u00e9se", +"Image options": "K\u00e9p be\u00e1ll\u00edt\u00e1sok", +"Zoom in": "Nagy\u00edt\u00e1s", +"Zoom out": "Kicsiny\u00edt\u00e9s", +"Crop": "K\u00e9p v\u00e1g\u00e1s", +"Resize": "\u00c1tm\u00e9retez\u00e9s", +"Orientation": "K\u00e9p t\u00e1jol\u00e1s", +"Brightness": "F\u00e9nyer\u0151", +"Sharpen": "\u00c9less\u00e9g", +"Contrast": "Kontraszt", +"Color levels": "Sz\u00ednszint", +"Gamma": "Gamma", +"Invert": "Inverz k\u00e9p", +"Apply": "Ment\u00e9s", +"Back": "Vissza", +"Insert date\/time": "D\u00e1tum\/id\u0151 beilleszt\u00e9se", +"Date\/time": "D\u00e1tum\/id\u0151", +"Insert\/Edit Link": "Hivatkoz\u00e1s beilleszt\u00e9se\/szerkeszt\u00e9se", +"Insert\/edit link": "Hivatkoz\u00e1s beilleszt\u00e9se\/szerkeszt\u00e9se", +"Text to display": "Megjelen\u0151 sz\u00f6veg", +"Url": "Url", +"Open link in...": "Hivatkoz\u00e1s megnyit\u00e1sa...", +"Current window": "Jelenlegi ablak", +"None": "Nincs", +"New window": "\u00daj ablak", +"Remove link": "Hivatkoz\u00e1s t\u00f6rl\u00e9se", +"Anchors": "Horgonyok", +"Link...": "Hivatkoz\u00e1s...", +"Paste or type a link": "Hivatkoz\u00e1s be\u00edr\u00e1sa vagy beilleszt\u00e9se", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "A megadott URL email c\u00edmnek t\u0171nik. Szeretn\u00e9d hozz\u00e1adni a sz\u00fcks\u00e9ges mailto: el\u0151tagot?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "A megadott URL k\u00fcls\u0151 c\u00edmnek t\u0171nik. Szeretn\u00e9d hozz\u00e1adni a sz\u00fcks\u00e9ges http:\/\/ el\u0151tagot?", +"Link list": "Hivatkoz\u00e1slista", +"Insert video": "Vide\u00f3 beilleszt\u00e9se", +"Insert\/edit video": "Vide\u00f3 beilleszt\u00e9se\/szerkeszt\u00e9se", +"Insert\/edit media": "M\u00e9dia besz\u00far\u00e1sa\/beilleszt\u00e9se", +"Alternative source": "Alternat\u00edv forr\u00e1s", +"Alternative source URL": "Alternat\u00edv forr\u00e1s URL", +"Media poster (Image URL)": "M\u00e9dia poszter (k\u00e9p URL)", +"Paste your embed code below:": "Illeszd be a be\u00e1gyaz\u00f3 k\u00f3dot alulra:", +"Embed": "Be\u00e1gyaz\u00e1s", +"Media...": "M\u00e9dia...", +"Nonbreaking space": "Nem t\u00f6rhet\u0151 sz\u00f3k\u00f6z", +"Page break": "Oldalt\u00f6r\u00e9s", +"Paste as text": "Beilleszt\u00e9s sz\u00f6vegk\u00e9nt", +"Preview": "El\u0151n\u00e9zet", +"Print...": "Nyomtat\u00e1s...", +"Save": "Ment\u00e9s", +"Find": "Keres\u00e9s", +"Replace with": "Csere erre", +"Replace": "Csere", +"Replace all": "Az \u00f6sszes cser\u00e9je", +"Previous": "El\u0151z\u0151", +"Next": "K\u00f6vetkez\u0151", +"Find and replace...": "Keres\u00e9s \u00e9s csere...", +"Could not find the specified string.": "A be\u00edrt kifejez\u00e9s nem tal\u00e1lhat\u00f3.", +"Match case": "Kis \u00e9s nagybet\u0171k megk\u00fcl\u00f6nb\u00f6ztet\u00e9se", +"Find whole words only": "Csak teljes szavak keres\u00e9se", +"Spell check": "Helyes\u00edr\u00e1s-ellen\u0151rz\u00e9s", +"Ignore": "Figyelmen k\u00edv\u00fcl hagy", +"Ignore all": "Mindent figyelmen k\u00edv\u00fcl hagy", +"Finish": "Befejez\u00e9s", +"Add to Dictionary": "Sz\u00f3t\u00e1rhoz ad", +"Insert table": "T\u00e1bl\u00e1zat beilleszt\u00e9se", +"Table properties": "T\u00e1bl\u00e1zat tulajdons\u00e1gok", +"Delete table": "T\u00e1bl\u00e1zat t\u00f6rl\u00e9se", +"Cell": "Cella", +"Row": "Sor", +"Column": "Oszlop", +"Cell properties": "Cella tulajdons\u00e1gok", +"Merge cells": "Cell\u00e1k egyes\u00edt\u00e9se", +"Split cell": "Cell\u00e1k sz\u00e9tv\u00e1laszt\u00e1sa", +"Insert row before": "Sor besz\u00far\u00e1sa el\u00e9", +"Insert row after": "Sor besz\u00far\u00e1sa m\u00f6g\u00e9", +"Delete row": "Sor t\u00f6rl\u00e9se", +"Row properties": "Sor tulajdons\u00e1gai", +"Cut row": "Sor kiv\u00e1g\u00e1sa", +"Copy row": "Sor m\u00e1sol\u00e1sa", +"Paste row before": "Sor beilleszt\u00e9se el\u00e9", +"Paste row after": "Sor beilleszt\u00e9se m\u00f6g\u00e9", +"Insert column before": "Oszlop besz\u00far\u00e1sa el\u00e9", +"Insert column after": "Oszlop besz\u00far\u00e1sa m\u00f6g\u00e9", +"Delete column": "Oszlop t\u00f6rl\u00e9se", +"Cols": "Oszlopok", +"Rows": "Sorok", +"Width": "Sz\u00e9less\u00e9g", +"Height": "Magass\u00e1g", +"Cell spacing": "Cell\u00e1k t\u00e1vols\u00e1ga", +"Cell padding": "Cella m\u00e9rete", +"Show caption": "C\u00edm megjelen\u00edt\u00e9se", +"Left": "Bal", +"Center": "K\u00f6z\u00e9p", +"Right": "Jobb", +"Cell type": "Cella t\u00edpusa", +"Scope": "Hat\u00f3k\u00f6r", +"Alignment": "Igaz\u00edt\u00e1s", +"H Align": "V\u00edzszintes igaz\u00edt\u00e1s", +"V Align": "F\u00fcgg\u0151leges igaz\u00edt\u00e1s", +"Top": "Fel\u00fcl", +"Middle": "K\u00f6z\u00e9pen", +"Bottom": "Alul", +"Header cell": "Fejl\u00e9c cella", +"Row group": "Sor csoport", +"Column group": "Oszlop csoport", +"Row type": "Sor t\u00edpus", +"Header": "Fejl\u00e9c", +"Body": "Sz\u00f6vegt\u00f6rzs", +"Footer": "L\u00e1bl\u00e9c", +"Border color": "Szeg\u00e9ly sz\u00edne", +"Insert template...": "Sablon besz\u00far\u00e1sa...", +"Templates": "Sablonok", +"Template": "Sablon", +"Text color": "Sz\u00f6veg sz\u00edne", +"Background color": "H\u00e1tt\u00e9r sz\u00edn", +"Custom...": "Egy\u00e9ni...", +"Custom color": "Egy\u00e9ni sz\u00edn", +"No color": "Nincs sz\u00edn", +"Remove color": "Sz\u00edn t\u00f6rl\u00e9se", +"Table of Contents": "Tartalomjegyz\u00e9k", +"Show blocks": "Blokkok mutat\u00e1sa", +"Show invisible characters": "L\u00e1thatatlan karakterek mutat\u00e1sa", +"Word count": "Szavak sz\u00e1ma", +"Words: {0}": "Szavak: {0}", +"{0} words": "{0} sz\u00f3", +"File": "F\u00e1jl", +"Edit": "Szerkeszt\u00e9s", +"Insert": "Beilleszt\u00e9s", +"View": "N\u00e9zet", +"Format": "Form\u00e1tum", +"Table": "T\u00e1bl\u00e1zat", +"Tools": "Eszk\u00f6z\u00f6k", +"Powered by {0}": "\u00dczemelteti: {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text ter\u00fclet. Nyomj ALT-F9-et a men\u00fch\u00f6z. Nyomj ALT-F10-et az eszk\u00f6zt\u00e1rhoz. Nyomj ALT-0-t a s\u00fag\u00f3hoz", +"Image title": "K\u00e9p c\u00edme", +"Border width": "Szeg\u00e9ly vastags\u00e1ga", +"Border style": "Szeg\u00e9ly st\u00edlusa", +"Error": "Hiba", +"Warn": "Figyelmeztet\u00e9s", +"Valid": "\u00c9rv\u00e9nyes", +"To open the popup, press Shift+Enter": "A felugr\u00f3 ablak megnyit\u00e1s\u00e1hoz nyomja meg a Shift+Enter billenty\u0171t", +"Rich Text Area. Press ALT-0 for help.": "Vizu\u00e1lis szerkeszt\u0151 ter\u00fclet. Nyomjon ALT-0-t a s\u00fag\u00f3hoz.", +"System Font": "Rendszer-bet\u0171t\u00edpus", +"Failed to upload image: {0}": "Nem siker\u00fclt felt\u00f6lteni a k\u00e9pet: {0}", +"Failed to load plugin: {0} from url {1}": "Nem siker\u00fclt bet\u00f6lteni a be\u00e9p\u00fcl\u0151 modult: {0} err\u0151l a webc\u00edmr\u0151l: {1}", +"Failed to load plugin url: {0}": "Nem siker\u00fclt bet\u00f6lteni a be\u00e9p\u00fcl\u0151 modul url-\u00e9t: {0}", +"Failed to initialize plugin: {0}": "Nem siker\u00fclt inicializ\u00e1lni a be\u00e9p\u00fcl\u0151 modult: {0}", +"example": "p\u00e9lda", +"Search": "Keres\u00e9s", +"All": "Minden", +"Currency": "P\u00e9nznem", +"Text": "Sz\u00f6veg", +"Quotations": "Id\u00e9z\u0151jelek", +"Mathematical": "Matematikai", +"Extended Latin": "B\u0151v\u00edtett latin", +"Symbols": "Szimb\u00f3lumok", +"Arrows": "Nyilak", +"User Defined": "Felhaszn\u00e1l\u00f3 \u00e1ltal meghat\u00e1rozott", +"dollar sign": "doll\u00e1r jel", +"currency sign": "valuta jel", +"euro-currency sign": "euro-valuta jel", +"colon sign": "kett\u0151spont", +"cruzeiro sign": "cruzeiro jel", +"french franc sign": "francia frank jel", +"lira sign": "l\u00edra jel", +"mill sign": "mill jel", +"naira sign": "naira jel", +"peseta sign": "peseta jel", +"rupee sign": "r\u00fapia jel", +"won sign": "won jel", +"new sheqel sign": "\u00faj shekel jel", +"dong sign": "dong jel", +"kip sign": "kip jel", +"tugrik sign": "tugrik jel", +"drachma sign": "drachma jel", +"german penny symbol": "n\u00e9met penny jel", +"peso sign": "peso jel", +"guarani sign": "guarani jel", +"austral sign": "austral jel", +"hryvnia sign": "hrivnya jel", +"cedi sign": "cedi jel", +"livre tournois sign": "livre tournois jel", +"spesmilo sign": "spesmilo jel", +"tenge sign": "tenge jel", +"indian rupee sign": "r\u00fapel jel", +"turkish lira sign": "t\u00f6r\u00f6k l\u00edra jel", +"nordic mark sign": "\u00e9szaki m\u00e1rka jel", +"manat sign": "manat jel", +"ruble sign": "rubel jel", +"yen character": "jen karakter", +"yuan character": "j\u00fcan karakter", +"yuan character, in hong kong and taiwan": "hongkongi \u00e9s tajvani j\u00fcan karakter", +"yen\/yuan character variant one": "jen\/j\u00fcan karaktervari\u00e1ns", +"Loading emoticons...": "Hangulatjelek bet\u00f6lt\u00e9se...", +"Could not load emoticons": "Nem siker\u00fclt a hangulatjelek bet\u00f6lt\u00e9se", +"People": "Emberek", +"Animals and Nature": "\u00c1llatok \u00e9s term\u00e9szet", +"Food and Drink": "\u00c9tel, ital", +"Activity": "Tev\u00e9kenys\u00e9gek", +"Travel and Places": "Utaz\u00e1s \u00e9s helyek", +"Objects": "T\u00e1rgyak", +"Flags": "Z\u00e1szl\u00f3k", +"Characters": "Karakterek", +"Characters (no spaces)": "Karakterek (sz\u00f3k\u00f6z\u00f6k n\u00e9lk\u00fcl)", +"Error: Form submit field collision.": "Hiba: \u00dctk\u00f6z\u00e9s t\u00f6rt\u00e9nt az \u0171rlap elk\u00fcld\u00e9sekor.", +"Error: No form element found.": "Hiba: Nem tal\u00e1lhat\u00f3 \u0171rlap elem.", +"Update": "Friss\u00edt\u00e9s", +"Color swatch": "Sz\u00ednpaletta", +"Turquoise": "T\u00fcrkiz", +"Green": "Z\u00f6ld", +"Blue": "K\u00e9k", +"Purple": "Lila", +"Navy Blue": "Tengerk\u00e9k", +"Dark Turquoise": "S\u00f6t\u00e9tt\u00fcrkiz", +"Dark Green": "S\u00f6t\u00e9tz\u00f6ld", +"Medium Blue": "Kir\u00e1lyk\u00e9k", +"Medium Purple": "K\u00f6z\u00e9plila", +"Midnight Blue": "\u00c9jf\u00e9lk\u00e9k", +"Yellow": "S\u00e1rga", +"Orange": "Narancss\u00e1rga", +"Red": "Piros", +"Light Gray": "Vil\u00e1gossz\u00fcrke", +"Gray": "Sz\u00fcrke", +"Dark Yellow": "S\u00f6t\u00e9ts\u00e1rga", +"Dark Orange": "S\u00f6t\u00e9t narancss\u00e1rga", +"Dark Red": "S\u00f6t\u00e9tv\u00f6r\u00f6s", +"Medium Gray": "K\u00f6z\u00e9psz\u00fcrke", +"Dark Gray": "S\u00f6t\u00e9tsz\u00fcrke", +"Black": "Fekete", +"White": "Feh\u00e9r", +"Switch to or from fullscreen mode": "Teljes vagy norm\u00e1l k\u00e9perny\u0151s m\u00f3dra v\u00e1lt\u00e1s", +"Open help dialog": "S\u00fag\u00f3ablak megnyit\u00e1sa", +"history": "el\u0151zm\u00e9nyek", +"styles": "st\u00edlusok", +"formatting": "form\u00e1z\u00e1s", +"alignment": "igaz\u00edt\u00e1s", +"indentation": "beh\u00faz\u00e1s", +"permanent pen": "sz\u00f6vegkiemel\u0151", +"comments": "megjegyz\u00e9sek", +"Anchor": "Horgony", +"Special character": "Speci\u00e1lis karakter", +"Code sample": "K\u00f3d p\u00e9lda", +"Color": "Sz\u00edn", +"Emoticons": "Vigyorok", +"Document properties": "Dokumentum tulajdons\u00e1gai", +"Image": "K\u00e9p", +"Insert link": "Hivatkoz\u00e1s beilleszt\u00e9se", +"Target": "C\u00e9l", +"Link": "Hivatkoz\u00e1s", +"Poster": "El\u0151n\u00e9zeti k\u00e9p", +"Media": "M\u00e9dia", +"Print": "Nyomtat\u00e1s", +"Prev": "El\u0151z\u0151", +"Find and replace": "Keres\u00e9s \u00e9s csere", +"Whole words": "Csak ha ez a teljes sz\u00f3", +"Spellcheck": "Helyes\u00edr\u00e1s ellen\u0151rz\u00e9s", +"Caption": "Felirat", +"Insert template": "Sablon beilleszt\u00e9se" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/id.js b/common/plugins/editors/tinymce/media/langs/id.js new file mode 100755 index 0000000000000000000000000000000000000000..87d61c23ec92da95cf9c7a7dc784345034ab5161 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/id.js @@ -0,0 +1,389 @@ +tinymce.addI18n('id',{ +"Redo": "Ulang", +"Undo": "Batalkan", +"Cut": "Potong", +"Copy": "Salin", +"Paste": "Rekat", +"Select all": "Pilih semua", +"New document": "Dokumen baru", +"Ok": "Ok", +"Cancel": "Batal", +"Visual aids": "Alat bantu visual", +"Bold": "Tebal", +"Italic": "Miring", +"Underline": "Garis bawah", +"Strikethrough": "Coret", +"Superscript": "Superskrip", +"Subscript": "Subskrip", +"Clear formatting": "Kosongkan format", +"Align left": "Rata kiri", +"Align center": "Rata tengah", +"Align right": "Rata kanan", +"Justify": "Rata penuh", +"Bullet list": "Daftar bersimbol", +"Numbered list": "Daftar bernomor", +"Decrease indent": "Kurangi inden", +"Increase indent": "Tambah inden", +"Close": "Tutup", +"Formats": "Format", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browser anda tidak mendukung akses langsung ke papan klip. Silakan gunakan pintasan Ctrl+X\/C\/V dari keyboard.", +"Headers": "Judul", +"Header 1": "Judul 1", +"Header 2": "Judul 2", +"Header 3": "Judul 3", +"Header 4": "Judul 4", +"Header 5": "Judul 5", +"Header 6": "Judul 6", +"Headings": "Kepala", +"Heading 1": "Kepala 1", +"Heading 2": "Kepala 2", +"Heading 3": "Kepala 3", +"Heading 4": "Kepala 4", +"Heading 5": "Kepala 5", +"Heading 6": "Kepala 6", +"Preformatted": "Praformat", +"Div": "Div", +"Pre": "Pre", +"Code": "Kode", +"Paragraph": "Paragraf", +"Blockquote": "Kutipan", +"Inline": "Baris", +"Blocks": "Blok", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Penempelan sekarang dalam modus teks biasa. Konten sekarang akan disisipkan sebagai teks biasa sampai Anda memadamkan pilihan ini.", +"Fonts": "Huruf", +"Font Sizes": "Ukuran Huruf", +"Class": "Kelas", +"Browse for an image": "Jelajahi gambar", +"OR": "ATAU", +"Drop an image here": "Simpan gambar di sini", +"Upload": "Unggah", +"Block": "Blok", +"Align": "Sejajarkan", +"Default": "Bawaan", +"Circle": "Lingkaran", +"Disc": "Cakram", +"Square": "Kotak", +"Lower Alpha": "Huruf Kecil", +"Lower Greek": "Huruf Kecil Yunani", +"Lower Roman": "Huruf Kecil Romawi", +"Upper Alpha": "Huruf Besar", +"Upper Roman": "Huruf Besar Romawi", +"Anchor...": "Jangkar..", +"Name": "Nama", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id harus dimulai dengan huruf, dan hanya diikuti oleh huruf, angka, koma, titik, titik koma atau garis bawah.", +"You have unsaved changes are you sure you want to navigate away?": "Anda memiliki perubahan yang belum disimpan, yakin ingin beralih ?", +"Restore last draft": "Muat kembali draft sebelumnya", +"Special characters...": "Karakter khusus...", +"Source code": "Kode sumber", +"Insert\/Edit code sample": "Tambah\/Edit contoh kode", +"Language": "Bahasa", +"Code sample...": "Sampel kode...", +"Color Picker": "Pemilih warna", +"R": "M", +"G": "H", +"B": "B", +"Left to right": "Kiri ke kanan", +"Right to left": "Kanan ke kiri", +"Emoticons...": "Emotikon...", +"Metadata and Document Properties": "Metadata dan Properti Dokumen", +"Title": "Judul", +"Keywords": "Kata kunci", +"Description": "Deskripsi", +"Robots": "Robot", +"Author": "Penulis", +"Encoding": "Enkoding", +"Fullscreen": "Layar penuh", +"Action": "Tindakan", +"Shortcut": "Pintasan", +"Help": "Bantuan", +"Address": "Alamat", +"Focus to menubar": "Fokus ke menubar", +"Focus to toolbar": "Fokus ke toolbar", +"Focus to element path": "Fokus ke jalur elemen", +"Focus to contextual toolbar": "Fokus ke toolbar kontekstual", +"Insert link (if link plugin activated)": "Masukan link (jika plugin diaktifkan)", +"Save (if save plugin activated)": "Simpan (jika plugin simpan diaktifkan)", +"Find (if searchreplace plugin activated)": "Cari (jika plugin searchplace diaktifkan)", +"Plugins installed ({0}):": "Plugin terpasang ({0})", +"Premium plugins:": "Plugin premium:", +"Learn more...": "Pelajari selengkapnya...", +"You are using {0}": "Anda menggunakan {0}", +"Plugins": "Plugin", +"Handy Shortcuts": "Pintasan Praktis", +"Horizontal line": "Garis horisontal", +"Insert\/edit image": "Sisip\/sunting gambar", +"Image description": "Deskripsi gambar", +"Source": "Sumber", +"Dimensions": "Dimensi", +"Constrain proportions": "Samakan proporsi", +"General": "Umum", +"Advanced": "Lanjutan", +"Style": "Gaya", +"Vertical space": "Spasi vertikal", +"Horizontal space": "Spasi horisontal", +"Border": "Batas", +"Insert image": "Sisipkan gambar", +"Image...": "Gambar...", +"Image list": "Daftar gambar", +"Rotate counterclockwise": "Putar berlawananjarumjam", +"Rotate clockwise": "Putar searahjarumjam", +"Flip vertically": "Balik vertikal", +"Flip horizontally": "Balik horisontal", +"Edit image": "Sunting gambar", +"Image options": "Opsi gambar", +"Zoom in": "Perbesar", +"Zoom out": "Perkecil", +"Crop": "Krop", +"Resize": "Ubah ukuran", +"Orientation": "Orientasi", +"Brightness": "Kecerahan", +"Sharpen": "Ketajaman", +"Contrast": "Kontras", +"Color levels": "Tingakt warna", +"Gamma": "Gamma", +"Invert": "Kebalikan", +"Apply": "Terapkan", +"Back": "Kembali", +"Insert date\/time": "Sisipkan tanggal\/waktu", +"Date\/time": "Tanggal\/waktu", +"Insert\/Edit Link": "Masukkan\/Edit Tautan", +"Insert\/edit link": "Sisip\/sunting tautan", +"Text to display": "Teks yang ditampilkan", +"Url": "Tautan", +"Open link in...": "Buka tautan dalam...", +"Current window": "Jendela saat ini", +"None": "Tidak ada", +"New window": "Jendela baru", +"Remove link": "Buang tautan", +"Anchors": "Jangkar", +"Link...": "Tautan...", +"Paste or type a link": "Tempel atau ketik sebuah tautan", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Tautan yang anda masukkan sepertinya adalah alamat email. Apakah Anda ingin menambahkan prefiks mailto: yang dibutuhkan?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Tautan yang anda masukkan sepertinya adalah tautan eksternal. Apakah Anda ingin menambahkan prefiks http:\/\/ yang dibutuhkan?", +"Link list": "Daftar tautan", +"Insert video": "Sisipkan video", +"Insert\/edit video": "Sisip\/sunting video", +"Insert\/edit media": "Sisip\/sunting media", +"Alternative source": "Sumber alternatif", +"Alternative source URL": "URL Sumber alternatif", +"Media poster (Image URL)": "Poster media (URL gambar)", +"Paste your embed code below:": "Tempel kode yang diembed dibawah ini:", +"Embed": "Embed", +"Media...": "Media...", +"Nonbreaking space": "Spasi", +"Page break": "Baris baru", +"Paste as text": "Tempel sebagai teks biasa", +"Preview": "Pratinjau", +"Print...": "Cetak...", +"Save": "Simpan", +"Find": "Cari", +"Replace with": "Ganti dengan", +"Replace": "Ganti", +"Replace all": "Ganti semua", +"Previous": "Sebelumnya", +"Next": "Berikutnya", +"Find and replace...": "Cari dan ganti...", +"Could not find the specified string.": "Tidak dapat menemukan string yang dimaksud.", +"Match case": "Samakan besar kecil huruf", +"Find whole words only": "Cari hanya kata utuh", +"Spell check": "Periksa ejaan", +"Ignore": "Abaikan", +"Ignore all": "Abaikan semua", +"Finish": "Selesai", +"Add to Dictionary": "Tambahkan ke kamus", +"Insert table": "Sisipkan tabel", +"Table properties": "Properti tabel", +"Delete table": "Hapus tabel", +"Cell": "Sel", +"Row": "Baris", +"Column": "Kolom", +"Cell properties": "Properti sel", +"Merge cells": "Gabung sel", +"Split cell": "Bagi sel", +"Insert row before": "Sisipkan baris sebelum", +"Insert row after": "Sisipkan baris setelah", +"Delete row": "Hapus baris", +"Row properties": "Properti baris", +"Cut row": "Penggal baris", +"Copy row": "Salin baris", +"Paste row before": "Tempel baris sebelum", +"Paste row after": "Tempel baris setelah", +"Insert column before": "Sisipkan kolom sebelum", +"Insert column after": "Sisipkan kolom setelah", +"Delete column": "Hapus kolom", +"Cols": "Kolom", +"Rows": "Baris", +"Width": "Lebar", +"Height": "Tinggi", +"Cell spacing": "Spasi sel ", +"Cell padding": "Lapisan sel", +"Show caption": "Perlihatkan keterangan", +"Left": "Kiri", +"Center": "Tengah", +"Right": "Kanan", +"Cell type": "Tipe sel", +"Scope": "Skup", +"Alignment": "Penjajaran", +"H Align": "Rata Samping", +"V Align": "Rata Atas", +"Top": "Atas", +"Middle": "Tengah", +"Bottom": "Bawah", +"Header cell": "Judul sel", +"Row group": "Kelompok baris", +"Column group": "Kelompok kolom", +"Row type": "Tipe baris", +"Header": "Judul", +"Body": "Body", +"Footer": "Footer", +"Border color": "Warna batas", +"Insert template...": "Masukkan template...", +"Templates": "Templat", +"Template": "Templat", +"Text color": "Warna teks", +"Background color": "Warna latar", +"Custom...": "Atur sendiri...", +"Custom color": "Warna sendiri", +"No color": "Tidak berwarna", +"Remove color": "Hapus warna", +"Table of Contents": "Daftar Isi", +"Show blocks": "Tampilkan blok", +"Show invisible characters": "Tampilkan karakter tak tampak", +"Word count": "Hitungan kata", +"Words: {0}": "Kata: {0}", +"{0} words": "{0} kata", +"File": "Berkas", +"Edit": "Sunting", +"Insert": "Sisip", +"View": "Tampilan", +"Format": "Format", +"Table": "Tabel", +"Tools": "Alat", +"Powered by {0}": "Didukung oleh {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Area teks kaya. Tekan ALT-F9 untuk menu. Tekan ALT-F10 untuk toolbar. Tekan ALT-0 untuk bantuan", +"Image title": "Judul gambar", +"Border width": "Lebar pinggiran", +"Border style": "Gaya pinggiran", +"Error": "Kesalahan", +"Warn": "Peringatkan", +"Valid": "Valid", +"To open the popup, press Shift+Enter": "Untuk membuka popup, tekan Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Area Teks Kaya. Tekan ALT-0 untuk bantuan.", +"System Font": "Huruf Sistem", +"Failed to upload image: {0}": "Gagal mengunggah gambar: {0}", +"Failed to load plugin: {0} from url {1}": "Gagal memuat plugin: {0} dari url {1}", +"Failed to load plugin url: {0}": "Gagal memuat url plugin: {0}", +"Failed to initialize plugin: {0}": "Gagal memulai plugin: {0}", +"example": "contoh", +"Search": "Cari", +"All": "Semua", +"Currency": "Mata Uang", +"Text": "Teks", +"Quotations": "Kutipan", +"Mathematical": "Matematis", +"Extended Latin": "Latin Diperluas", +"Symbols": "Simbol", +"Arrows": "Panah", +"User Defined": "Ditentukan Pengguna", +"dollar sign": "tanda dolar", +"currency sign": "tanda mata uang", +"euro-currency sign": "tanda mata uang eropa", +"colon sign": "tanda titik dua", +"cruzeiro sign": "tanda cruzeiro", +"french franc sign": "tanda franc prancis", +"lira sign": "tanda lira", +"mill sign": "tanda mill", +"naira sign": "tanda naira", +"peseta sign": "tanda peseta", +"rupee sign": "tanda rupee", +"won sign": "tanda won", +"new sheqel sign": "tanda sheqel baru", +"dong sign": "tanda dong", +"kip sign": "tanda kip", +"tugrik sign": "tanda tugrik", +"drachma sign": "tanda drachma", +"german penny symbol": "simbol penny jerman", +"peso sign": "tanda peso", +"guarani sign": "tanda guarani", +"austral sign": "tanda austral", +"hryvnia sign": "tanda hryvnia", +"cedi sign": "tanda cedi", +"livre tournois sign": "tanda livre tournois", +"spesmilo sign": "tanda spesmilo", +"tenge sign": "tanda tenge", +"indian rupee sign": "tanda rupee india", +"turkish lira sign": "tanda lira turki", +"nordic mark sign": "tanda mark nordik", +"manat sign": "tanda manat", +"ruble sign": "tanda ruble", +"yen character": "karakter yen", +"yuan character": "karakter yuan", +"yuan character, in hong kong and taiwan": "karakter yuan, di hong kong dan taiwan", +"yen\/yuan character variant one": "varian satu karakter yen\/yuan", +"Loading emoticons...": "Memuat emotikon...", +"Could not load emoticons": "Tidak dapat memuat emotikon", +"People": "Orang", +"Animals and Nature": "Hewan dan Alam", +"Food and Drink": "Makanan dan Minuman", +"Activity": "Aktivitas", +"Travel and Places": "Perjalanan dan Lokasi", +"Objects": "Objek", +"Flags": "Bendera", +"Characters": "Karakter", +"Characters (no spaces)": "Karakter (tanpa spasi)", +"Error: Form submit field collision.": "Kesalahan: Benturan bidang pengiriman bentuk.", +"Error: No form element found.": "Kesalahan: tidak ditemukan elemen bentuk.", +"Update": "Perbarui", +"Color swatch": "Contoh warna", +"Turquoise": "Turquoise", +"Green": "Hijau", +"Blue": "Biru", +"Purple": "Ungu", +"Navy Blue": "Biru Navy", +"Dark Turquoise": "Turquoise Gelap", +"Dark Green": "Hijau Gelap", +"Medium Blue": "Biru Medium", +"Medium Purple": "Ungu Medium", +"Midnight Blue": "Biru Midnight", +"Yellow": "Kuning", +"Orange": "Jingga", +"Red": "Merah", +"Light Gray": "Abu Muda", +"Gray": "Abu-abu", +"Dark Yellow": "Kuning Gelap", +"Dark Orange": "Jingga Gelap", +"Dark Red": "Merah Gelap", +"Medium Gray": "Abu Medium", +"Dark Gray": "Abu Gelap", +"Black": "Hitam", +"White": "Putih", +"Switch to or from fullscreen mode": "Alihkan ke atau dari mode layar penuh", +"Open help dialog": "Buka dialog bantuan", +"history": "riwayat", +"styles": "gaya", +"formatting": "pemformatan", +"alignment": "penyejajaran", +"indentation": "indentasi", +"permanent pen": "pena permanen", +"comments": "komentar", +"Anchor": "Jangkar", +"Special character": "Spesial karakter", +"Code sample": "Contoh kode", +"Color": "Warna", +"Emoticons": "Emotikon", +"Document properties": "Properti dokumwn", +"Image": "Gambar", +"Insert link": "Sisipkan tautan", +"Target": "Jendela tujuan", +"Link": "Tautan", +"Poster": "Penulis", +"Media": "Media", +"Print": "Cetak", +"Prev": "Sebelumnya", +"Find and replace": "Cari dan ganti", +"Whole words": "Semua kata", +"Spellcheck": "Periksa ejaan", +"Caption": "Caption", +"Insert template": "Sisipkan templat" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/it.js b/common/plugins/editors/tinymce/media/langs/it.js new file mode 100755 index 0000000000000000000000000000000000000000..0cbea084baee0469636e9663095eb49c19bedfcb --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/it.js @@ -0,0 +1,389 @@ +tinymce.addI18n('it',{ +"Redo": "Ripristina", +"Undo": "Annulla", +"Cut": "Taglia", +"Copy": "Copia", +"Paste": "Incolla", +"Select all": "Seleziona tutto", +"New document": "Nuovo documento", +"Ok": "OK", +"Cancel": "Annulla", +"Visual aids": "Aiuti visivi", +"Bold": "Grassetto", +"Italic": "Corsivo", +"Underline": "Sottolineato", +"Strikethrough": "Barrato", +"Superscript": "Apice", +"Subscript": "Pedice", +"Clear formatting": "Cancella la formattazione", +"Align left": "Allinea a sinistra", +"Align center": "Allinea al centro", +"Align right": "Allinea a destra", +"Justify": "Giustifica", +"Bullet list": "Elenco puntato", +"Numbered list": "Elenco numerato", +"Decrease indent": "Riduci rientro", +"Increase indent": "Aumenta rientro", +"Close": "Chiudi", +"Formats": "Formati", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Il browser non supporta l'accesso diretto alla cartella degli appunti. Usare i tasti di scelta rapida Ctrl+X\/C\/V.", +"Headers": "Intestazioni", +"Header 1": "Intestazione 1", +"Header 2": "Intestazione 2", +"Header 3": "Intestazione 3", +"Header 4": "Intestazione 4", +"Header 5": "Intestazione 5", +"Header 6": "Intestazione 6", +"Headings": "Titoli", +"Heading 1": "Titolo 1", +"Heading 2": "Titolo 2", +"Heading 3": "Titolo 3", +"Heading 4": "Titolo 4", +"Heading 5": "Titolo 5", +"Heading 6": "Titolo 6", +"Preformatted": "Preformattato", +"Div": "Div", +"Pre": "Pre", +"Code": "Codice", +"Paragraph": "Paragrafo", +"Blockquote": "Blockquote", +"Inline": "In linea", +"Blocks": "Blocchi", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Incolla \u00e8 in modalit\u00e0 testo normale. I contenuti sono incollati come testo normale se non disattivi l'opzione.", +"Fonts": "Caratteri", +"Font Sizes": "Dimensioni caratteri", +"Class": "Classe", +"Browse for an image": "Cerca un'immagine", +"OR": "OPPURE", +"Drop an image here": "Rilasciare un'immagine qui", +"Upload": "Carica", +"Block": "Blocco", +"Align": "Allinea", +"Default": "Default", +"Circle": "Cerchio", +"Disc": "Disco", +"Square": "Quadrato", +"Lower Alpha": "Alpha Minore", +"Lower Greek": "Greek Minore", +"Lower Roman": "Roman Minore", +"Upper Alpha": "Alpha Superiore", +"Upper Roman": "Roman Superiore", +"Anchor...": "Ancoraggio...", +"Name": "Nome", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'id dovrebbe cominciare con una lettera, seguito solo da lettere, numeri, linee, punti, virgole.", +"You have unsaved changes are you sure you want to navigate away?": "Non hai salvato delle modifiche, sei sicuro di andartene?", +"Restore last draft": "Ripristina l'ultima bozza.", +"Special characters...": "Caratteri speciali...", +"Source code": "Codice Sorgente", +"Insert\/Edit code sample": "Inserisci\/Modifica esempio di codice", +"Language": "Lingua", +"Code sample...": "Esempio di codice...", +"Color Picker": "Selezione colori", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Da Sinistra a Destra", +"Right to left": "Da Destra a Sinistra", +"Emoticons...": "Emoticon...", +"Metadata and Document Properties": "Metadata e propriet\u00e0 del documento", +"Title": "Titolo", +"Keywords": "Parola Chiave", +"Description": "Descrizione", +"Robots": "Robot", +"Author": "Autore", +"Encoding": "Codifica", +"Fullscreen": "Schermo Intero", +"Action": "Azione", +"Shortcut": "Scorciatoia", +"Help": "Aiuto", +"Address": "Indirizzo", +"Focus to menubar": "Focus sulla barra del menu", +"Focus to toolbar": "Focus sulla barra degli strumenti", +"Focus to element path": "Focus sul percorso dell'elemento", +"Focus to contextual toolbar": "Focus sulla barra degli strumenti contestuale", +"Insert link (if link plugin activated)": "Inserisci link (se il plugin link \u00e8 attivato)", +"Save (if save plugin activated)": "Salva (se il plugin save \u00e8 attivato)", +"Find (if searchreplace plugin activated)": "Trova (se il plugin searchreplace \u00e8 attivato)", +"Plugins installed ({0}):": "Plugin installati ({0}):", +"Premium plugins:": "Plugin Premium:", +"Learn more...": "Per saperne di pi\u00f9...", +"You are using {0}": "Stai usando {0}", +"Plugins": "Plugin", +"Handy Shortcuts": "Scorciatoia pratica", +"Horizontal line": "Linea Orizzontale", +"Insert\/edit image": "Aggiungi\/Modifica Immagine", +"Image description": "Descrizione Immagine", +"Source": "Fonte", +"Dimensions": "Dimenzioni", +"Constrain proportions": "Mantieni Proporzioni", +"General": "Generale", +"Advanced": "Avanzato", +"Style": "Stile", +"Vertical space": "Spazio Verticale", +"Horizontal space": "Spazio Orizzontale", +"Border": "Bordo", +"Insert image": "Inserisci immagine", +"Image...": "Immagine...", +"Image list": "Elenco immagini", +"Rotate counterclockwise": "Ruota in senso antiorario", +"Rotate clockwise": "Ruota in senso orario", +"Flip vertically": "Rifletti verticalmente", +"Flip horizontally": "Rifletti orizzontalmente", +"Edit image": "Modifica immagine", +"Image options": "Opzioni immagine", +"Zoom in": "Ingrandisci", +"Zoom out": "Rimpicciolisci", +"Crop": "Taglia", +"Resize": "Ridimensiona", +"Orientation": "Orientamento", +"Brightness": "Luminosit\u00e0", +"Sharpen": "Contrasta", +"Contrast": "Contrasto", +"Color levels": "Livelli colore", +"Gamma": "Gamma", +"Invert": "Inverti", +"Apply": "Applica", +"Back": "Indietro", +"Insert date\/time": "Inserisci Data\/Ora", +"Date\/time": "Data\/Ora", +"Insert\/Edit Link": "Inserisci\/modifica collegamento", +"Insert\/edit link": "Inserisci\/Modifica Link", +"Text to display": "Testo da Visualizzare", +"Url": "Url", +"Open link in...": "Apri collegamento in...", +"Current window": "Finestra corrente", +"None": "No", +"New window": "Nuova Finestra", +"Remove link": "Rimuovi link", +"Anchors": "Anchors", +"Link...": "Collegamento...", +"Paste or type a link": "Incolla o digita un collegamento", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL inserito sembra essere un indirizzo email. Vuoi aggiungere il prefisso necessario mailto:?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL inserito sembra essere un collegamento esterno. Vuoi aggiungere il prefisso necessario http:\/\/?", +"Link list": "Elenco link", +"Insert video": "Inserisci Video", +"Insert\/edit video": "Inserisci\/Modifica Video", +"Insert\/edit media": "Inserisci\/Modifica Media", +"Alternative source": "Alternativo", +"Alternative source URL": "URL sorgente alternativa", +"Media poster (Image URL)": "Poster dell'oggetto multimediale (URL dell'immagine)", +"Paste your embed code below:": "Incolla il codice d'incorporamento qui:", +"Embed": "Incorporare", +"Media...": "Oggetto multimediale...", +"Nonbreaking space": "Spazio unificatore", +"Page break": "Interruzione di pagina", +"Paste as text": "incolla come testo", +"Preview": "Anteprima", +"Print...": "Stampa...", +"Save": "Salva", +"Find": "Trova", +"Replace with": "Sostituisci Con", +"Replace": "Sostituisci", +"Replace all": "Sostituisci Tutto", +"Previous": "Indietro", +"Next": "Successivo", +"Find and replace...": "Trova e sostituisci...", +"Could not find the specified string.": "Impossibile trovare la parola specifica.", +"Match case": "Maiuscole\/Minuscole ", +"Find whole words only": "Trova solo parole intere", +"Spell check": "Controllo ortografia", +"Ignore": "Ignora", +"Ignore all": "Ignora Tutto", +"Finish": "Termina", +"Add to Dictionary": "Aggiungi al Dizionario", +"Insert table": "Inserisci Tabella", +"Table properties": "Propiet\u00e0 della Tabella", +"Delete table": "Cancella Tabella", +"Cell": "Cella", +"Row": "Riga", +"Column": "Colonna", +"Cell properties": "Propiet\u00e0 della Cella", +"Merge cells": "Unisci Cella", +"Split cell": "Dividi Cella", +"Insert row before": "Inserisci una Riga Prima", +"Insert row after": "Inserisci una Riga Dopo", +"Delete row": "Cancella Riga", +"Row properties": "Propriet\u00e0 della Riga", +"Cut row": "Taglia Riga", +"Copy row": "Copia Riga", +"Paste row before": "Incolla una Riga Prima", +"Paste row after": "Incolla una Riga Dopo", +"Insert column before": "Inserisci una Colonna Prima", +"Insert column after": "Inserisci una Colonna Dopo", +"Delete column": "Cancella Colonna", +"Cols": "Colonne", +"Rows": "Righe", +"Width": "Larghezza", +"Height": "Altezza", +"Cell spacing": "Spaziatura della Cella", +"Cell padding": "Padding della Cella", +"Show caption": "Mostra didascalia", +"Left": "Sinistra", +"Center": "Centro", +"Right": "Destra", +"Cell type": "Tipo di Cella", +"Scope": "Campo", +"Alignment": "Allineamento", +"H Align": "Allineamento H", +"V Align": "Allineamento V", +"Top": "In alto", +"Middle": "In mezzo", +"Bottom": "In fondo", +"Header cell": "cella d'intestazione", +"Row group": "Gruppo di Righe", +"Column group": "Gruppo di Colonne", +"Row type": "Tipo di Riga", +"Header": "Header", +"Body": "Body", +"Footer": "Footer", +"Border color": "Colore bordo", +"Insert template...": "Inserisci modello...", +"Templates": "Template", +"Template": "Modello", +"Text color": "Colore Testo", +"Background color": "Colore Background", +"Custom...": "Personalizzato...", +"Custom color": "Colore personalizzato", +"No color": "Nessun colore", +"Remove color": "Rimuovi colore", +"Table of Contents": "Tabella dei contenuti", +"Show blocks": "Mostra Blocchi", +"Show invisible characters": "Mostra Caratteri Invisibili", +"Word count": "Conteggio parole", +"Words: {0}": "Parole: {0}", +"{0} words": "{0} parole", +"File": "File", +"Edit": "Modifica", +"Insert": "Inserisci", +"View": "Visualiza", +"Format": "Formato", +"Table": "Tabella", +"Tools": "Strumenti", +"Powered by {0}": "Fornito da {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Premi ALT-F9 per il men\u00f9. Premi ALT-F10 per la barra degli strumenti. Premi ALT-0 per l'aiuto.", +"Image title": "Titolo immagine", +"Border width": "Larghezza del bordo", +"Border style": "Stile del bordo", +"Error": "Errore", +"Warn": "Avviso", +"Valid": "Valido", +"To open the popup, press Shift+Enter": "Per aprire il popup, premere Shift+Invio", +"Rich Text Area. Press ALT-0 for help.": "Area di testo RTF. Premere ALT-0 per la guida.", +"System Font": "Carattere di sistema", +"Failed to upload image: {0}": "Caricamento immagine fallito: {0}", +"Failed to load plugin: {0} from url {1}": "Caricamento plugin fallito: {0} dall'URL {1}", +"Failed to load plugin url: {0}": "Caricamento URL plugin fallito: {0}", +"Failed to initialize plugin: {0}": "Inizializzazione plugin fallita: {0}", +"example": "esempio", +"Search": "Cerca", +"All": "Tutto", +"Currency": "Valuta", +"Text": "Testo", +"Quotations": "Citazioni", +"Mathematical": "Caratteri matematici", +"Extended Latin": "Latino esteso", +"Symbols": "Simboli", +"Arrows": "Frecce", +"User Defined": "Definito dall'utente", +"dollar sign": "simbolo del dollaro", +"currency sign": "simbolo di valuta", +"euro-currency sign": "simbolo dell'euro", +"colon sign": "simbolo del col\u00f3n", +"cruzeiro sign": "simbolo del cruzeiro", +"french franc sign": "simbolo del franco francese", +"lira sign": "simbolo della lira", +"mill sign": "simbolo del mill", +"naira sign": "simbolo della naira", +"peseta sign": "simbolo della peseta", +"rupee sign": "simbolo della rup\u00eca", +"won sign": "simbolo del won", +"new sheqel sign": "simbolo del nuovo shekel", +"dong sign": "simbolo del dong", +"kip sign": "simbolo del kip", +"tugrik sign": "simbolo del tugrik", +"drachma sign": "simbolo della dracma", +"german penny symbol": "simbolo del pfennig tedesco", +"peso sign": "simbolo del peso", +"guarani sign": "simbolo del guaran\u00ec", +"austral sign": "simbolo dell'austral", +"hryvnia sign": "simbolo della hryvnia", +"cedi sign": "simbolo del cedi", +"livre tournois sign": "simbolo della lira di Tours", +"spesmilo sign": "simbolo dello spesmilo", +"tenge sign": "simbolo del tenge", +"indian rupee sign": "simbolo della rup\u00eca indiana", +"turkish lira sign": "simbolo della lira turca", +"nordic mark sign": "simbolo del marco nordico", +"manat sign": "simbolo del manat", +"ruble sign": "simbolo del rublo", +"yen character": "simbolo dello yen", +"yuan character": "simbolo dello yuan", +"yuan character, in hong kong and taiwan": "simbolo dello yuan, Hong Kong e Taiwan", +"yen\/yuan character variant one": "simbolo yen\/yuan variante uno", +"Loading emoticons...": "Caricamento emoticon in corso", +"Could not load emoticons": "Impossibile caricare emoticon", +"People": "Persone", +"Animals and Nature": "Animali e natura", +"Food and Drink": "Cibi e bevande", +"Activity": "Attivit\u00e0", +"Travel and Places": "Viaggi e luoghi", +"Objects": "Oggetti", +"Flags": "Bandiere", +"Characters": "Caratteri", +"Characters (no spaces)": "Caratteri (senza spazi)", +"Error: Form submit field collision.": "Errore: Conflitto di campi nel modulo inviato.", +"Error: No form element found.": "Errore: Nessun elemento di modulo trovato.", +"Update": "Aggiorna", +"Color swatch": "Campione di colore", +"Turquoise": "Turchese", +"Green": "Verde", +"Blue": "Blu", +"Purple": "Viola", +"Navy Blue": "Blu scuro", +"Dark Turquoise": "Turchese scuro", +"Dark Green": "Verde scuro", +"Medium Blue": "Blu medio", +"Medium Purple": "Viola medio", +"Midnight Blue": "Blu notte", +"Yellow": "Giallo", +"Orange": "Arancio", +"Red": "Rosso", +"Light Gray": "Grigio chiaro", +"Gray": "Grigio", +"Dark Yellow": "Giallo scuro", +"Dark Orange": "Arancio scuro", +"Dark Red": "Rosso scuro", +"Medium Gray": "Grigio medio", +"Dark Gray": "Grigio scuro", +"Black": "Nero", +"White": "Bianco", +"Switch to or from fullscreen mode": "Attiva\/disattiva la modalit\u00e0 schermo intero", +"Open help dialog": "Apri la finestra di aiuto", +"history": "cronologia", +"styles": "stili", +"formatting": "formattazione", +"alignment": "allineamento", +"indentation": "indentazione", +"permanent pen": "penna indelebile", +"comments": "commenti", +"Anchor": "Fissa", +"Special character": "Carattere Speciale", +"Code sample": "Esempio di codice", +"Color": "Colore", +"Emoticons": "Emoction", +"Document properties": "Propriet\u00e0 Documento", +"Image": "Immagine", +"Insert link": "Inserisci il Link", +"Target": "Target", +"Link": "Collegamento", +"Poster": "Anteprima", +"Media": "Media", +"Print": "Stampa", +"Prev": "Precedente", +"Find and replace": "Trova e Sostituisci", +"Whole words": "Parole Sbagliate", +"Spellcheck": "Controllo ortografico", +"Caption": "Didascalia", +"Insert template": "Inserisci Template" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/it_IT.js b/common/plugins/editors/tinymce/media/langs/it_IT.js new file mode 100755 index 0000000000000000000000000000000000000000..73b332267c4a98cf2e225b3287798c790feaf44d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/it_IT.js @@ -0,0 +1,370 @@ +tinymce.addI18n('it_IT',{ +"Redo": "Ripristina", +"Undo": "Annulla", +"Cut": "Taglia", +"Copy": "Copia", +"Paste": "Incolla", +"Select all": "Seleziona tutto", +"New document": "Nuovo documento", +"Ok": "OK", +"Cancel": "Annulla", +"Visual aids": "Aiuti visivi", +"Bold": "Grassetto", +"Italic": "Corsivo", +"Underline": "Sottolineato", +"Strikethrough": "Barrato", +"Superscript": "Apice", +"Subscript": "Pedice", +"Clear formatting": "Cancella la formattazione", +"Align left": "Allinea a sinistra", +"Align center": "Allinea al centro", +"Align right": "Allinea a destra", +"Justify": "Giustifica", +"Bullet list": "Elenco puntato", +"Numbered list": "Elenco numerato", +"Decrease indent": "Riduci rientro", +"Increase indent": "Aumenta rientro", +"Close": "Chiudi", +"Formats": "Formati", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Il browser non supporta l'accesso diretto alla cartella degli appunti. Usare i tasti di scelta rapida Ctrl+X\/C\/V.", +"Headers": "Intestazioni", +"Header 1": "Intestazione 1", +"Header 2": "Intestazione 2", +"Header 3": "Intestazione 3", +"Header 4": "Intestazione 4", +"Header 5": "Intestazione 5", +"Header 6": "Intestazione 6", +"Headings": "Titoli", +"Heading 1": "Titolo 1", +"Heading 2": "Titolo 2", +"Heading 3": "Titolo 3", +"Heading 4": "Titolo 4", +"Heading 5": "Titolo 5", +"Heading 6": "Titolo 6", +"Preformatted": "Preformattato", +"Div": "Div", +"Pre": "Pre", +"Code": "Codice", +"Paragraph": "Paragrafo", +"Blockquote": "Blockquote", +"Inline": "In linea", +"Blocks": "Blocchi", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Incolla \u00e8 in modalit\u00e0 testo normale. I contenuti saranno incollati come testo normale se non viene disattivata questa opzione.", +"Fonts": "Caratteri", +"Font Sizes": "Dimensioni caratteri", +"Class": "Classe", +"Browse for an image": "Cerca un'immagine", +"OR": "OPPURE", +"Drop an image here": "Rilasciare un'immagine qui", +"Upload": "Carica", +"Block": "Blocco", +"Align": "Allinea", +"Default": "Predefinito", +"Circle": "Circolo", +"Disc": "Disco", +"Square": "Quadrato", +"Lower Alpha": "Alfabetico minuscolo", +"Lower Greek": "Greco minuscolo", +"Lower Roman": "Romano minuscolo", +"Upper Alpha": "Alfabetico maiuscolo", +"Upper Roman": "Romano maiuscolo", +"Anchor...": "Ancoraggio...", +"Name": "Nome", +"Id": "ID", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "L'ID dovrebbe cominciare con una lettera, seguita unicamente da lettere, numeri, linee, punti, due punti o caratteri di sottolineatura.", +"You have unsaved changes are you sure you want to navigate away?": "Ci sono modifiche non salvate, si \u00e8 sicuro di volere uscire?", +"Restore last draft": "Ripristina l'ultima bozza", +"Special characters...": "Caratteri speciali...", +"Source code": "Codice sorgente", +"Insert\/Edit code sample": "Inserisci\/modifica esempio di codice", +"Language": "Lingua", +"Code sample...": "Esempio di codice...", +"Color Picker": "Selezione colori", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Da sinistra a destra", +"Right to left": "Da destra a sinistra", +"Emoticons...": "Emoticon...", +"Metadata and Document Properties": "Metadata e propriet\u00e0 del documento", +"Title": "Titolo", +"Keywords": "Parole chiave", +"Description": "Descrizione", +"Robots": "Robot", +"Author": "Autore", +"Encoding": "Codifica", +"Fullscreen": "A tutto schermo", +"Action": "Azione", +"Shortcut": "Collegamento", +"Help": "Guida", +"Address": "Indirizzo", +"Focus to menubar": "Imposta stato attivo per la barra dei menu", +"Focus to toolbar": "Imposta stato attivo per la barra degli strumenti", +"Focus to element path": "Imposta stato attivo per il percorso dell'elemento", +"Focus to contextual toolbar": "Imposta stato attivo per la barra degli strumenti contestuale", +"Insert link (if link plugin activated)": "Inserisci un collegamento (se \u00e8 attivato l'apposito plugin)", +"Save (if save plugin activated)": "Salva (se \u00e8 attivato l'apposito plugin)", +"Find (if searchreplace plugin activated)": "Trova (se \u00e8 attivato l'apposito plugin)", +"Plugins installed ({0}):": "Plugin installati ({0}):", +"Premium plugins:": "Plugin Premium:", +"Learn more...": "Maggiori informazioni...", +"You are using {0}": "Si sta utilizzando {0}", +"Plugins": "Plugin", +"Handy Shortcuts": "Scorciatoie utili", +"Horizontal line": "Linea orizzontale", +"Insert\/edit image": "Inserisci\/modifica immagine", +"Image description": "Descrizione immagine", +"Source": "Fonte", +"Dimensions": "Dimensioni", +"Constrain proportions": "Mantieni proporzioni", +"General": "Generali", +"Advanced": "Avanzate", +"Style": "Stile", +"Vertical space": "Spazio verticale", +"Horizontal space": "Spazio orizzontale", +"Border": "Bordo", +"Insert image": "Inserisci immagine", +"Image...": "Immagine...", +"Image list": "Elenco immagini", +"Rotate counterclockwise": "Ruota in senso antiorario", +"Rotate clockwise": "Ruota in senso orario", +"Flip vertically": "Rifletti verticalmente", +"Flip horizontally": "Rifletti orizzontalmente", +"Edit image": "Modifica immagine", +"Image options": "Opzioni immagine", +"Zoom in": "Ingrandisci", +"Zoom out": "Zoom indietro", +"Crop": "Ritaglia", +"Resize": "Ridimensiona", +"Orientation": "Orientamento", +"Brightness": "Luminosit\u00e0", +"Sharpen": "Nitidezza", +"Contrast": "Contrasto", +"Color levels": "Livelli di colore", +"Gamma": "Gamma", +"Invert": "Inverti", +"Apply": "Applica", +"Back": "Indietro", +"Insert date\/time": "Inserisci data\/ora", +"Date\/time": "Data\/ora", +"Insert\/Edit Link": "Inserisci\/modifica collegamento", +"Insert\/edit link": "Inserisci\/modifica collegamento", +"Text to display": "Testo da visualizzare", +"Url": "URL", +"Open link in...": "Apri collegamento in...", +"Current window": "Finestra corrente", +"None": "Nessuno", +"New window": "Nuova finestra", +"Remove link": "Rimuovi collegamento", +"Anchors": "Ancoraggi", +"Link...": "Collegamento...", +"Paste or type a link": "Incolla o digita un collegamento", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "L'URL inserito sembra essere un indirizzo email. Si vuole aggiungere il necessario prefisso mailto:?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "L'URL inserito sembra essere un collegamento esterno. Si vuole aggiungere il necessario prefisso http:\/\/?", +"Link list": "Elenco collegamenti", +"Insert video": "Inserisci video", +"Insert\/edit video": "Inserisci\/modifica video", +"Insert\/edit media": "Inserisci\/modifica oggetti multimediali", +"Alternative source": "Sorgente alternativa", +"Alternative source URL": "URL sorgente alternativa", +"Media poster (Image URL)": "Poster dell'oggetto multimediale (URL dell'immagine)", +"Paste your embed code below:": "Incolla il codice d'incorporamento di seguito:", +"Embed": "Incorpora", +"Media...": "Oggetto multimediale...", +"Nonbreaking space": "Spazio indivisibile", +"Page break": "Interruzione di pagina", +"Paste as text": "Incolla senza formattazioni", +"Preview": "Anteprima", +"Print...": "Stampa...", +"Save": "Salva", +"Find": "Trova", +"Replace with": "Sostituisci con", +"Replace": "Sostituisci", +"Replace all": "Sostituisci tutto", +"Previous": "Indietro", +"Next": "Avanti", +"Find and replace...": "Trova e sostituisci...", +"Could not find the specified string.": "Impossibile trovare la stringa specificata.", +"Match case": "Maiuscole\/minuscole", +"Find whole words only": "Trova solo parole intere", +"Spell check": "Controllo ortografia", +"Ignore": "Ignora", +"Ignore all": "Ignora tutto", +"Finish": "Fine", +"Add to Dictionary": "Aggiungi al dizionario", +"Insert table": "Inserisci tabella", +"Table properties": "Propriet\u00e0 della tabella", +"Delete table": "Elimina tabella", +"Cell": "Cella", +"Row": "Riga", +"Column": "Colonna", +"Cell properties": "Propriet\u00e0 cella", +"Merge cells": "Unisci le celle", +"Split cell": "Dividi la cella", +"Insert row before": "Inserisci riga prima", +"Insert row after": "Inserisci riga dopo", +"Delete row": "Elimina riga", +"Row properties": "Propriet\u00e0 della riga", +"Cut row": "Taglia riga", +"Copy row": "Copia riga", +"Paste row before": "Incolla riga prima", +"Paste row after": "Incolla riga dopo", +"Insert column before": "Inserisci colonna prima", +"Insert column after": "Inserisci colonna dopo", +"Delete column": "Elimina colonna", +"Cols": "Colonne", +"Rows": "Righe", +"Width": "Larghezza", +"Height": "Altezza", +"Cell spacing": "Spaziatura tra celle", +"Cell padding": "Spaziatura interna celle", +"Show caption": "Mostra didascalia", +"Left": "Sinistra", +"Center": "Centro", +"Right": "Destra", +"Cell type": "Tipo di cella", +"Scope": "Ambito", +"Alignment": "Allineamento", +"H Align": "Allineamento H", +"V Align": "Allineamento V", +"Top": "In alto", +"Middle": "Centrato", +"Bottom": "In basso", +"Header cell": "Cella d'intestazione", +"Row group": "Gruppo di righe", +"Column group": "Gruppo di colonne", +"Row type": "Tipo di riga", +"Header": "Intestazione", +"Body": "Corpo", +"Footer": "Pi\u00e8 di pagina", +"Border color": "Colore del bordo", +"Insert template...": "Inserisci modello...", +"Templates": "Modelli", +"Template": "Modello", +"Text color": "Colore testo", +"Background color": "Colore dello sfondo", +"Custom...": "Personalizzato...", +"Custom color": "Colore personalizzato", +"No color": "Nessun colore", +"Remove color": "Rimuovi colore", +"Table of Contents": "Sommario", +"Show blocks": "Mostra blocchi", +"Show invisible characters": "Mostra caratteri invisibili", +"Word count": "Conteggio parole", +"Words: {0}": "Parole: {0}", +"{0} words": "{0} parole", +"File": "File", +"Edit": "Modifica", +"Insert": "Inserisci", +"View": "Visualizza", +"Format": "Formato", +"Table": "Tabella", +"Tools": "Strumenti", +"Powered by {0}": "Con tecnologia {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Area di testo RTF. Premere ALT-F9 per il menu. Premere ALT-F10 per la barra degli strumenti. Premere ALT-0 per la guida.", +"Image title": "Titolo immagine", +"Border width": "Larghezza del bordo", +"Border style": "Stile del bordo", +"Error": "Errore", +"Warn": "Avviso", +"Valid": "Valido", +"To open the popup, press Shift+Enter": "Per aprire il popup, premere Shift+Invio", +"Rich Text Area. Press ALT-0 for help.": "Area di testo RTF. Premere ALT-0 per la guida.", +"System Font": "Carattere di sistema", +"Failed to upload image: {0}": "Caricamento immagine fallito: {0}", +"Failed to load plugin: {0} from url {1}": "Caricamento plugin fallito: {0} dall'URL {1}", +"Failed to load plugin url: {0}": "Caricamento URL plugin fallito: {0}", +"Failed to initialize plugin: {0}": "Inizializzazione plugin fallita: {0}", +"example": "esempio", +"Search": "Cerca", +"All": "Tutto", +"Currency": "Valuta", +"Text": "Testo", +"Quotations": "Citazioni", +"Mathematical": "Caratteri matematici", +"Extended Latin": "Latino esteso", +"Symbols": "Simboli", +"Arrows": "Frecce", +"User Defined": "Definito dall'utente", +"dollar sign": "simbolo del dollaro", +"currency sign": "simbolo di valuta", +"euro-currency sign": "simbolo dell'euro", +"colon sign": "simbolo del col\u00f3n", +"cruzeiro sign": "simbolo del cruzeiro", +"french franc sign": "simbolo del franco francese", +"lira sign": "simbolo della lira", +"mill sign": "simbolo del mill", +"naira sign": "simbolo della naira", +"peseta sign": "simbolo della peseta", +"rupee sign": "simbolo della rup\u00eca", +"won sign": "simbolo del won", +"new sheqel sign": "simbolo del nuovo shekel", +"dong sign": "simbolo del dong", +"kip sign": "simbolo del kip", +"tugrik sign": "simbolo del tugrik", +"drachma sign": "simbolo della dracma", +"german penny symbol": "simbolo del pfennig tedesco", +"peso sign": "simbolo del peso", +"guarani sign": "simbolo del guaran\u00ec", +"austral sign": "simbolo dell'austral", +"hryvnia sign": "simbolo della hryvnia", +"cedi sign": "simbolo del cedi", +"livre tournois sign": "simbolo della lira di Tours", +"spesmilo sign": "simbolo dello spesmilo", +"tenge sign": "simbolo del tenge", +"indian rupee sign": "simbolo della rup\u00eca indiana", +"turkish lira sign": "simbolo della lira turca", +"nordic mark sign": "simbolo del marco nordico", +"manat sign": "simbolo del manat", +"ruble sign": "simbolo del rublo", +"yen character": "simbolo dello yen", +"yuan character": "simbolo dello yuan", +"yuan character, in hong kong and taiwan": "simbolo dello yuan, Hong Kong e Taiwan", +"yen\/yuan character variant one": "simbolo yen\/yuan variante uno", +"Loading emoticons...": "Caricamento emoticon in corso", +"Could not load emoticons": "Impossibile caricare emoticon", +"People": "Persone", +"Animals and Nature": "Animali e natura", +"Food and Drink": "Cibi e bevande", +"Activity": "Attivit\u00e0", +"Travel and Places": "Viaggi e luoghi", +"Objects": "Oggetti", +"Flags": "Bandiere", +"Characters": "Caratteri", +"Characters (no spaces)": "Caratteri (senza spazi)", +"Error: Form submit field collision.": "Errore: Conflitto di campi nel modulo inviato.", +"Error: No form element found.": "Errore: Nessun elemento di modulo trovato.", +"Update": "Aggiorna", +"Color swatch": "Campione di colore", +"Turquoise": "Turchese", +"Green": "Verde", +"Blue": "Blu", +"Purple": "Viola", +"Navy Blue": "Blu scuro", +"Dark Turquoise": "Turchese scuro", +"Dark Green": "Verde scuro", +"Medium Blue": "Blu medio", +"Medium Purple": "Viola medio", +"Midnight Blue": "Blu notte", +"Yellow": "Giallo", +"Orange": "Arancio", +"Red": "Rosso", +"Light Gray": "Grigio chiaro", +"Gray": "Grigio", +"Dark Yellow": "Giallo scuro", +"Dark Orange": "Arancio scuro", +"Dark Red": "Rosso scuro", +"Medium Gray": "Grigio medio", +"Dark Gray": "Grigio scuro", +"Black": "Nero", +"White": "Bianco", +"Switch to or from fullscreen mode": "Attiva\/disattiva la modalit\u00e0 schermo intero", +"Open help dialog": "Apri la finestra di aiuto", +"history": "cronologia", +"styles": "stili", +"formatting": "formattazione", +"alignment": "allineamento", +"indentation": "indentazione", +"permanent pen": "penna indelebile", +"comments": "commenti" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ja.js b/common/plugins/editors/tinymce/media/langs/ja.js new file mode 100755 index 0000000000000000000000000000000000000000..5374f87f00b6cd3594da09072982e8efeedb76f3 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ja.js @@ -0,0 +1,389 @@ +tinymce.addI18n('ja',{ +"Redo": "\u3084\u308a\u76f4\u3057", +"Undo": "\u5143\u306b\u623b\u3059", +"Cut": "\u5207\u308a\u53d6\u308a", +"Copy": "\u30b3\u30d4\u30fc", +"Paste": "\u8cbc\u308a\u4ed8\u3051", +"Select all": "\u3059\u3079\u3066\u9078\u629e", +"New document": "\u65b0\u898f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8", +"Ok": "OK", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u8868\u306e\u67a0\u7dda\u3092\u70b9\u7dda\u3067\u8868\u793a", +"Bold": "\u592a\u5b57", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u7dda", +"Strikethrough": "\u53d6\u6d88\u7dda", +"Superscript": "\u4e0a\u4ed8\u304d", +"Subscript": "\u4e0b\u4ed8\u304d", +"Clear formatting": "\u66f8\u5f0f\u3092\u30af\u30ea\u30a2", +"Align left": "\u5de6\u63c3\u3048", +"Align center": "\u4e2d\u592e\u63c3\u3048", +"Align right": "\u53f3\u63c3\u3048", +"Justify": "\u4e21\u7aef\u63c3\u3048", +"Bullet list": "\u7b87\u6761\u66f8\u304d", +"Numbered list": "\u756a\u53f7\u4ed8\u304d\u7b87\u6761\u66f8\u304d", +"Decrease indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u6e1b\u3089\u3059", +"Increase indent": "\u30a4\u30f3\u30c7\u30f3\u30c8\u3092\u5897\u3084\u3059", +"Close": "\u9589\u3058\u308b", +"Formats": "\u66f8\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u304a\u4f7f\u3044\u306e\u30d6\u30e9\u30a6\u30b6\u3067\u306f\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\u6a5f\u80fd\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u30ad\u30fc\u30dc\u30fc\u30c9\u306e\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8\uff08Ctrl+X, Ctrl+C, Ctrl+V\uff09\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002", +"Headers": "\u30d8\u30c3\u30c0\u30fc", +"Header 1": "\u30d8\u30c3\u30c0\u30fc 1", +"Header 2": "\u30d8\u30c3\u30c0\u30fc 2", +"Header 3": "\u30d8\u30c3\u30c0\u30fc 3", +"Header 4": "\u30d8\u30c3\u30c0\u30fc 4", +"Header 5": "\u30d8\u30c3\u30c0\u30fc 5", +"Header 6": "\u30d8\u30c3\u30c0\u30fc 6", +"Headings": "\u898b\u51fa\u3057", +"Heading 1": "\u898b\u51fa\u30571", +"Heading 2": "\u898b\u51fa\u30572", +"Heading 3": "\u898b\u51fa\u30573", +"Heading 4": "\u898b\u51fa\u30574", +"Heading 5": "\u898b\u51fa\u30575", +"Heading 6": "\u898b\u51fa\u30576", +"Preformatted": "\u66f8\u5f0f\u8a2d\u5b9a\u6e08\u307f", +"Div": "Div", +"Pre": "Pre", +"Code": "\u30b3\u30fc\u30c9", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u30d6\u30ed\u30c3\u30af\u5f15\u7528", +"Inline": "\u30a4\u30f3\u30e9\u30a4\u30f3", +"Blocks": "\u30d6\u30ed\u30c3\u30af", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u8cbc\u308a\u4ed8\u3051\u306f\u73fe\u5728\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u30e2\u30fc\u30c9\u3067\u3059\u3002\u3053\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u30aa\u30d5\u306b\u3057\u306a\u3044\u9650\u308a\u5185\u5bb9\u306f\u30d7\u30ec\u30fc\u30f3\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051\u3089\u308c\u307e\u3059\u3002", +"Fonts": "\u30d5\u30a9\u30f3\u30c8", +"Font Sizes": "\u30d5\u30a9\u30f3\u30c8\u30b5\u30a4\u30ba", +"Class": "\u30af\u30e9\u30b9", +"Browse for an image": "\u753b\u50cf\u3092\u53c2\u7167", +"OR": "\u307e\u305f\u306f", +"Drop an image here": "\u3053\u3053\u306b\u753b\u50cf\u3092\u30c9\u30ed\u30c3\u30d7", +"Upload": "\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9", +"Block": "\u30d6\u30ed\u30c3\u30af", +"Align": "\u914d\u7f6e", +"Default": "\u30c7\u30d5\u30a9\u30eb\u30c8", +"Circle": "\u5186", +"Disc": "\u70b9", +"Square": "\u56db\u89d2", +"Lower Alpha": "\u5c0f\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8", +"Lower Greek": "\u5c0f\u6587\u5b57\u306e\u30ae\u30ea\u30b7\u30e3\u6587\u5b57", +"Lower Roman": "\u5c0f\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57", +"Upper Alpha": "\u5927\u6587\u5b57\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8", +"Upper Roman": "\u5927\u6587\u5b57\u306e\u30ed\u30fc\u30de\u6570\u5b57", +"Anchor...": "\u30a2\u30f3\u30ab\u30fc...", +"Name": "\u30a2\u30f3\u30ab\u30fc\u540d", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID\u306f\u6587\u5b57\u3067\u59cb\u307e\u308a\u3001\u6587\u5b57\u3001\u6570\u5b57\u3001\u30c0\u30c3\u30b7\u30e5\u3001\u30c9\u30c3\u30c8\u3001\u30b3\u30ed\u30f3\u307e\u305f\u306f\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2\u3067\u59cb\u307e\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u307e\u3060\u4fdd\u5b58\u3057\u3066\u3044\u306a\u3044\u5909\u66f4\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u672c\u5f53\u306b\u3053\u306e\u30da\u30fc\u30b8\u3092\u96e2\u308c\u307e\u3059\u304b\uff1f", +"Restore last draft": "\u524d\u56de\u306e\u4e0b\u66f8\u304d\u3092\u5fa9\u6d3b\u3055\u305b\u308b", +"Special characters...": "\u7279\u6b8a\u6587\u5b57...", +"Source code": "\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9", +"Insert\/Edit code sample": "\u30b3\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Language": "\u8a00\u8a9e", +"Code sample...": "\u30b3\u30fc\u30c9\u306e\u30b5\u30f3\u30d7\u30eb...", +"Color Picker": "\u30ab\u30e9\u30fc\u30d4\u30c3\u30ab\u30fc", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u5de6\u304b\u3089\u53f3", +"Right to left": "\u53f3\u304b\u3089\u5de6", +"Emoticons...": "\u7d75\u6587\u5b57...", +"Metadata and Document Properties": "\u30e1\u30bf\u30c7\u30fc\u30bf\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30d7\u30ed\u30d1\u30c6\u30a3", +"Title": "\u30bf\u30a4\u30c8\u30eb", +"Keywords": "\u30ad\u30fc\u30ef\u30fc\u30c9", +"Description": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u5185\u5bb9", +"Robots": "\u30ed\u30dc\u30c3\u30c4", +"Author": "\u8457\u8005", +"Encoding": "\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0", +"Fullscreen": "\u5168\u753b\u9762\u8868\u793a", +"Action": "\u30a2\u30af\u30b7\u30e7\u30f3", +"Shortcut": "\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8", +"Help": "\u30d8\u30eb\u30d7", +"Address": "\u30a2\u30c9\u30ec\u30b9", +"Focus to menubar": "\u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u306b\u30d5\u30a9\u30fc\u30ab\u30b9", +"Focus to toolbar": "\u30c4\u30fc\u30eb\u30d0\u30fc\u306b\u30d5\u30a9\u30fc\u30ab\u30b9", +"Focus to element path": "\u8981\u7d20\u30d1\u30b9\u306b\u30d5\u30a9\u30fc\u30ab\u30b9", +"Focus to contextual toolbar": "\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30c4\u30fc\u30eb\u30d0\u30fc\u306b\u30d5\u30a9\u30fc\u30ab\u30b9", +"Insert link (if link plugin activated)": "\u30ea\u30f3\u30af\u3092\u633f\u5165 (\u30ea\u30f3\u30af\u30d7\u30e9\u30b0\u30a4\u30f3\u6709\u52b9\u6642)", +"Save (if save plugin activated)": "\u4fdd\u5b58 (\u4fdd\u5b58\u30d7\u30e9\u30b0\u30a4\u30f3\u6709\u52b9\u6642)", +"Find (if searchreplace plugin activated)": "\u691c\u7d22(\u7f6e\u63db\u30d7\u30e9\u30b0\u30a4\u30f3\u6709\u52b9\u6642)", +"Plugins installed ({0}):": "\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u30d7\u30e9\u30b0\u30a4\u30f3 ({0}):", +"Premium plugins:": "\u30d7\u30ec\u30df\u30a2\u30e0\u30d7\u30e9\u30b0\u30a4\u30f3:", +"Learn more...": "\u8a73\u7d30...", +"You are using {0}": "\u3042\u306a\u305f\u306f {0} \u4f7f\u7528\u4e2d", +"Plugins": "\u30d7\u30e9\u30b0\u30a4\u30f3", +"Handy Shortcuts": "\u4fbf\u5229\u306a\u30b7\u30e7\u30fc\u30c8\u30ab\u30c3\u30c8", +"Horizontal line": "\u6c34\u5e73\u7f6b\u7dda", +"Insert\/edit image": "\u753b\u50cf\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Image description": "\u753b\u50cf\u306e\u8aac\u660e\u6587", +"Source": "\u753b\u50cf\u306e\u30bd\u30fc\u30b9", +"Dimensions": "\u753b\u50cf\u30b5\u30a4\u30ba\uff08\u6a2a\u30fb\u7e26\uff09", +"Constrain proportions": "\u7e26\u6a2a\u6bd4\u3092\u4fdd\u6301\u3059\u308b", +"General": "\u4e00\u822c", +"Advanced": "\u8a73\u7d30\u8a2d\u5b9a", +"Style": "\u30b9\u30bf\u30a4\u30eb", +"Vertical space": "\u7e26\u65b9\u5411\u306e\u4f59\u767d", +"Horizontal space": "\u6a2a\u65b9\u5411\u306e\u4f59\u767d", +"Border": "\u67a0\u7dda", +"Insert image": "\u753b\u50cf\u306e\u633f\u5165", +"Image...": "\u753b\u50cf..", +"Image list": "\u753b\u50cf\u4e00\u89a7", +"Rotate counterclockwise": "\u53cd\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2", +"Rotate clockwise": "\u6642\u8a08\u56de\u308a\u306b\u56de\u8ee2", +"Flip vertically": "\u4e0a\u4e0b\u306b\u53cd\u8ee2", +"Flip horizontally": "\u6c34\u5e73\u306b\u53cd\u8ee2", +"Edit image": "\u753b\u50cf\u306e\u7de8\u96c6", +"Image options": "\u753b\u50cf\u30aa\u30d7\u30b7\u30e7\u30f3", +"Zoom in": "\u30ba\u30fc\u30e0\u30a4\u30f3", +"Zoom out": "\u30ba\u30fc\u30e0\u30a2\u30a6\u30c8", +"Crop": "\u30af\u30ed\u30c3\u30d7", +"Resize": "\u30ea\u30b5\u30a4\u30ba", +"Orientation": "\u5411\u304d", +"Brightness": "\u660e\u308b\u3055", +"Sharpen": "\u30b7\u30e3\u30fc\u30d7\u5316", +"Contrast": "\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8", +"Color levels": "\u30ab\u30e9\u30fc\u30ec\u30d9\u30eb", +"Gamma": "\u30ac\u30f3\u30de", +"Invert": "\u53cd\u8ee2", +"Apply": "\u9069\u7528", +"Back": "\u623b\u308b", +"Insert date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b", +"Date\/time": "\u65e5\u4ed8\u30fb\u6642\u523b", +"Insert\/Edit Link": "\u30ea\u30f3\u30af\u306e\u633f\u5165\/\u7de8\u96c6", +"Insert\/edit link": "\u30ea\u30f3\u30af\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Text to display": "\u30ea\u30f3\u30af\u5143\u30c6\u30ad\u30b9\u30c8", +"Url": "\u30ea\u30f3\u30af\u5148URL", +"Open link in...": "\u30ea\u30f3\u30af\u306e\u958b\u304d\u65b9...", +"Current window": "\u540c\u3058\u30a6\u30a3\u30f3\u30c9\u30a6", +"None": "\u306a\u3057", +"New window": "\u65b0\u898f\u30a6\u30a3\u30f3\u30c9\u30a6", +"Remove link": "\u30ea\u30f3\u30af\u306e\u524a\u9664", +"Anchors": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09", +"Link...": "\u30ea\u30f3\u30af...", +"Paste or type a link": "\u30ea\u30f3\u30af\u3092\u30da\u30fc\u30b9\u30c8\u307e\u305f\u306f\u5165\u529b", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u30e1\u30fc\u30eb\u30a2\u30c9\u30ec\u30b9\u306e\u3088\u3046\u3067\u3059\u3002\u300cmailto:\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u5165\u529b\u3055\u308c\u305fURL\u306f\u5916\u90e8\u30ea\u30f3\u30af\u306e\u3088\u3046\u3067\u3059\u3002\u300chttp:\/\/\u300d\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059\u304b\uff1f", +"Link list": "\u30ea\u30f3\u30af\u4e00\u89a7", +"Insert video": "\u52d5\u753b", +"Insert\/edit video": "\u52d5\u753b\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Insert\/edit media": "\u30e1\u30c7\u30a3\u30a2\u306e\u633f\u5165\u30fb\u7de8\u96c6", +"Alternative source": "\u4ee3\u66ff\u52d5\u753b\u306e\u5834\u6240", +"Alternative source URL": "\u4ee3\u66ff\u30bd\u30fc\u30b9URL", +"Media poster (Image URL)": "\u30e1\u30c7\u30a3\u30a2\u30dd\u30b9\u30bf\u30fc (\u753b\u50cfURL)", +"Paste your embed code below:": "\u57cb\u3081\u8fbc\u307f\u7528\u30b3\u30fc\u30c9\u3092\u4e0b\u8a18\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002", +"Embed": "\u57cb\u3081\u8fbc\u307f", +"Media...": "\u30e1\u30c7\u30a3\u30a2\u2026", +"Nonbreaking space": "\u56fa\u5b9a\u30b9\u30da\u30fc\u30b9\uff08 \uff09", +"Page break": "\u30da\u30fc\u30b8\u533a\u5207\u308a", +"Paste as text": "\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u8cbc\u308a\u4ed8\u3051", +"Preview": "\u30d7\u30ec\u30d3\u30e5\u30fc", +"Print...": "\u5370\u5237...", +"Save": "\u4fdd\u5b58", +"Find": "\u691c\u7d22", +"Replace with": "\u7f6e\u304d\u63db\u3048\u308b\u6587\u5b57", +"Replace": "\u7f6e\u304d\u63db\u3048", +"Replace all": "\u5168\u3066\u3092\u7f6e\u304d\u63db\u3048\u308b", +"Previous": "\u524d\u3078", +"Next": "\u6b21", +"Find and replace...": "\u7f6e\u63db...", +"Could not find the specified string.": "\u304a\u63a2\u3057\u306e\u6587\u5b57\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002", +"Match case": "\u5927\u6587\u5b57\u30fb\u5c0f\u6587\u5b57\u3092\u533a\u5225\u3059\u308b", +"Find whole words only": "\u8a9e\u5168\u4f53\u3092\u542b\u3080\u3082\u306e\u306e\u307f\u691c\u7d22", +"Spell check": "\u30b9\u30da\u30eb\u30c1\u30a7\u30c3\u30af", +"Ignore": "\u7121\u8996", +"Ignore all": "\u5168\u3066\u3092\u7121\u8996", +"Finish": "\u7d42\u4e86", +"Add to Dictionary": "\u8f9e\u66f8\u306b\u8ffd\u52a0", +"Insert table": "\u8868\u306e\u633f\u5165", +"Table properties": "\u8868\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Delete table": "\u8868\u306e\u524a\u9664", +"Cell": "\u30bb\u30eb", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u30bb\u30eb\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Merge cells": "\u30bb\u30eb\u306e\u7d50\u5408", +"Split cell": "\u30bb\u30eb\u306e\u5206\u5272", +"Insert row before": "\u4e0a\u5074\u306b\u884c\u3092\u633f\u5165", +"Insert row after": "\u4e0b\u5074\u306b\u884c\u3092\u633f\u5165", +"Delete row": "\u884c\u306e\u524a\u9664", +"Row properties": "\u884c\u306e\u8a73\u7d30\u8a2d\u5b9a", +"Cut row": "\u884c\u306e\u5207\u308a\u53d6\u308a", +"Copy row": "\u884c\u306e\u30b3\u30d4\u30fc", +"Paste row before": "\u4e0a\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051", +"Paste row after": "\u4e0b\u5074\u306b\u884c\u3092\u8cbc\u308a\u4ed8\u3051", +"Insert column before": "\u5de6\u5074\u306b\u5217\u3092\u633f\u5165", +"Insert column after": "\u53f3\u5074\u306b\u5217\u3092\u633f\u5165", +"Delete column": "\u5217\u306e\u524a\u9664", +"Cols": "\u5217\u6570", +"Rows": "\u884c\u6570", +"Width": "\u5e45", +"Height": "\u9ad8\u3055", +"Cell spacing": "\u30bb\u30eb\u306e\u9593\u9694", +"Cell padding": "\u30bb\u30eb\u5185\u4f59\u767d\uff08\u30d1\u30c7\u30a3\u30f3\u30b0\uff09", +"Show caption": "\u30ad\u30e3\u30d7\u30b7\u30e7\u30f3\u306e\u8868\u793a", +"Left": "\u5de6\u5bc4\u305b", +"Center": "\u4e2d\u592e\u63c3\u3048", +"Right": "\u53f3\u5bc4\u305b", +"Cell type": "\u30bb\u30eb\u30bf\u30a4\u30d7", +"Scope": "\u30b9\u30b3\u30fc\u30d7", +"Alignment": "\u914d\u7f6e", +"H Align": "\u6c34\u5e73\u65b9\u5411\u306e\u914d\u7f6e", +"V Align": "\u5782\u76f4\u65b9\u5411\u306e\u914d\u7f6e", +"Top": "\u4e0a", +"Middle": "\u4e2d\u592e", +"Bottom": "\u4e0b", +"Header cell": "\u30d8\u30c3\u30c0\u30fc\u30bb\u30eb", +"Row group": "\u884c\u30b0\u30eb\u30fc\u30d7", +"Column group": "\u5217\u30b0\u30eb\u30fc\u30d7", +"Row type": "\u884c\u30bf\u30a4\u30d7", +"Header": "\u30d8\u30c3\u30c0\u30fc", +"Body": "\u30dc\u30c7\u30a3\u30fc", +"Footer": "\u30d5\u30c3\u30bf\u30fc", +"Border color": "\u67a0\u7dda\u306e\u8272", +"Insert template...": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165..", +"Templates": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u540d", +"Template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8", +"Text color": "\u30c6\u30ad\u30b9\u30c8\u306e\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u30ab\u30b9\u30bf\u30e0...", +"Custom color": "\u30ab\u30b9\u30bf\u30e0\u30ab\u30e9\u30fc", +"No color": "\u30ab\u30e9\u30fc\u306a\u3057", +"Remove color": "\u8272\u8a2d\u5b9a\u3092\u89e3\u9664", +"Table of Contents": "\u76ee\u6b21", +"Show blocks": "\u6587\u7ae0\u306e\u533a\u5207\u308a\u3092\u70b9\u7dda\u3067\u8868\u793a", +"Show invisible characters": "\u4e0d\u53ef\u8996\u6587\u5b57\u3092\u8868\u793a", +"Word count": "\u6587\u5b57\u6570\u30ab\u30a6\u30f3\u30c8", +"Words: {0}": "\u5358\u8a9e\u6570: {0}", +"{0} words": "{0} \u30ef\u30fc\u30c9", +"File": "\u30d5\u30a1\u30a4\u30eb", +"Edit": "\u7de8\u96c6", +"Insert": "\u633f\u5165", +"View": "\u8868\u793a", +"Format": "\u66f8\u5f0f", +"Table": "\u8868", +"Tools": "\u30c4\u30fc\u30eb", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u66f8\u5f0f\u4ed8\u304d\u30c6\u30ad\u30b9\u30c8\u306e\u7de8\u96c6\u753b\u9762\u3002ALT-F9\u3067\u30e1\u30cb\u30e5\u30fc\u3001ALT-F10\u3067\u30c4\u30fc\u30eb\u30d0\u30fc\u3001ALT-0\u3067\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002", +"Image title": "\u753b\u50cf\u30bf\u30a4\u30c8\u30eb", +"Border width": "\u67a0\u7dda\u5e45", +"Border style": "\u67a0\u7dda\u30b9\u30bf\u30a4\u30eb", +"Error": "\u30a8\u30e9\u30fc", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u52b9", +"To open the popup, press Shift+Enter": "\u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u3092\u958b\u304f\u306b\u306f\u3001Shift+Enter\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044", +"Rich Text Area. Press ALT-0 for help.": "\u30ea\u30c3\u30c1\u30c6\u30ad\u30b9\u30c8\u30a8\u30ea\u30a2\u3002Alt-0\u3067\u30d8\u30eb\u30d7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002", +"System Font": "\u30b7\u30b9\u30c6\u30e0\u30d5\u30a9\u30f3\u30c8", +"Failed to upload image: {0}": "\u753b\u50cf{0}\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f", +"Failed to load plugin: {0} from url {1}": "URL{1}\u304b\u3089\u306e\u30d7\u30e9\u30b0\u30a4\u30f3{0}\u306e\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f", +"Failed to load plugin url: {0}": "\u30d7\u30e9\u30b0\u30a4\u30f3\u306eURL{0}\u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f", +"Failed to initialize plugin: {0}": "\u30d7\u30e9\u30b0\u30a4\u30f3{0}\u306e\u521d\u671f\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f", +"example": "\u4f8b", +"Search": "\u691c\u7d22", +"All": "\u3059\u3079\u3066", +"Currency": "\u901a\u8ca8", +"Text": "\u30c6\u30ad\u30b9\u30c8", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66\u8a18\u53f7", +"Extended Latin": "\u30e9\u30c6\u30f3\u6587\u5b57\u62e1\u5f35", +"Symbols": "\u8a18\u53f7", +"Arrows": "\u77e2\u5370", +"User Defined": "\u30e6\u30fc\u30b6\u30fc\u5b9a\u7fa9", +"dollar sign": "\u30c9\u30eb\u8a18\u53f7", +"currency sign": "\u901a\u8ca8\u8a18\u53f7", +"euro-currency sign": "\u30e6\u30fc\u30ed\u8a18\u53f7", +"colon sign": "\u30b3\u30ed\u30f3\u8a18\u53f7", +"cruzeiro sign": "\u30af\u30eb\u30bc\u30a4\u30ed\u8a18\u53f7", +"french franc sign": "\u30d5\u30e9\u30f3\u30b9\u30d5\u30e9\u30f3\u8a18\u53f7", +"lira sign": "\u30ea\u30e9\u8a18\u53f7", +"mill sign": "\u30df\u30eb\u8a18\u53f7", +"naira sign": "\u30ca\u30a4\u30e9\u8a18\u53f7", +"peseta sign": "\u30da\u30bb\u30bf\u8a18\u53f7", +"rupee sign": "\u30eb\u30d4\u30fc\u8a18\u53f7", +"won sign": "\u30a6\u30a9\u30f3\u8a18\u53f7", +"new sheqel sign": "\u65b0\u30b7\u30a7\u30b1\u30eb\u8a18\u53f7", +"dong sign": "\u30c9\u30f3\u8a18\u53f7", +"kip sign": "\u30ad\u30fc\u30d7\u8a18\u53f7", +"tugrik sign": "\u30c8\u30a5\u30b0\u30eb\u30b0\u8a18\u53f7", +"drachma sign": "\u30c9\u30e9\u30af\u30de\u8a18\u53f7", +"german penny symbol": "\u30c9\u30a4\u30c4\u30da\u30cb\u30fc\u8a18\u53f7", +"peso sign": "\u30da\u30bd\u8a18\u53f7", +"guarani sign": "\u30ac\u30e9\u30cb\u8a18\u53f7", +"austral sign": "\u30a2\u30a6\u30b9\u30c8\u30e9\u30eb\u8a18\u53f7", +"hryvnia sign": "\u30d5\u30ea\u30f4\u30cb\u30e3\u8a18\u53f7", +"cedi sign": "\u30bb\u30c7\u30a3\u8a18\u53f7", +"livre tournois sign": "\u30c8\u30a5\u30fc\u30eb\u30dd\u30f3\u30c9\u8a18\u53f7", +"spesmilo sign": "\u30b9\u30da\u30b9\u30df\u30fc\u30ed\u8a18\u53f7", +"tenge sign": "\u30c6\u30f3\u30b2\u8a18\u53f7", +"indian rupee sign": "\u30a4\u30f3\u30c9\u30eb\u30d4\u30fc\u8a18\u53f7", +"turkish lira sign": "\u30c8\u30eb\u30b3\u30ea\u30e9\u8a18\u53f7", +"nordic mark sign": "\u5317\u6b27\u30de\u30eb\u30af\u8a18\u53f7", +"manat sign": "\u30de\u30ca\u30c8\u8a18\u53f7", +"ruble sign": "\u30eb\u30fc\u30d6\u30eb\u8a18\u53f7", +"yen character": "\u5186\u8a18\u53f7", +"yuan character": "\u4eba\u6c11\u5143\u8a18\u53f7", +"yuan character, in hong kong and taiwan": "\u9999\u6e2f\u304a\u3088\u3073\u53f0\u6e7e\u306b\u304a\u3051\u308b\u5143\u8a18\u53f7", +"yen\/yuan character variant one": "\u5186\/\u5143\u8a18\u53f7\u306e\u30d0\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3", +"Loading emoticons...": "\u7d75\u6587\u5b57\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u307e\u3059...", +"Could not load emoticons": "\u7d75\u6587\u5b57\u304c\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093\u3067\u3057\u305f\u3002", +"People": "\u4eba", +"Animals and Nature": "\u52d5\u7269\u3068\u81ea\u7136", +"Food and Drink": "\u98df\u3079\u7269\u3068\u98f2\u307f\u7269", +"Activity": "\u884c\u52d5", +"Travel and Places": "\u65c5\u884c\u3068\u5834\u6240", +"Objects": "\u7269", +"Flags": "\u65d7", +"Characters": "\u6587\u5b57\u6570", +"Characters (no spaces)": "\u6587\u5b57\u6570 (\u30b9\u30da\u30fc\u30b9\u306a\u3057)", +"Error: Form submit field collision.": "\u30a8\u30e9\u30fc\uff1a\u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u7af6\u5408\u3057\u3066\u3044\u307e\u3059\u3002", +"Error: No form element found.": "\u30a8\u30e9\u30fc\uff1a\u30d5\u30a9\u30fc\u30e0\u8981\u7d20\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u8272\u306e\u898b\u672c", +"Turquoise": "\u30bf\u30fc\u30b3\u30a4\u30ba", +"Green": "\u30b0\u30ea\u30fc\u30f3", +"Blue": "\u30d6\u30eb\u30fc", +"Purple": "\u30d1\u30fc\u30d7\u30eb", +"Navy Blue": "\u30cd\u30a4\u30d3\u30fc", +"Dark Turquoise": "\u30c0\u30fc\u30af\u30bf\u30fc\u30b3\u30a4\u30ba", +"Dark Green": "\u30c0\u30fc\u30af\u30b0\u30ea\u30fc\u30f3", +"Medium Blue": "\u30e1\u30c7\u30a3\u30a2\u30e0\u30d6\u30eb\u30fc", +"Medium Purple": "\u30df\u30c7\u30a3\u30a2\u30e0\u30d1\u30fc\u30d7\u30eb", +"Midnight Blue": "\u30df\u30c3\u30c9\u30ca\u30a4\u30c8\u30d6\u30eb\u30fc", +"Yellow": "\u30a4\u30a8\u30ed\u30fc", +"Orange": "\u30aa\u30ec\u30f3\u30b8", +"Red": "\u30ec\u30c3\u30c9", +"Light Gray": "\u30e9\u30a4\u30c8\u30b0\u30ec\u30fc", +"Gray": "\u30b0\u30ec\u30fc", +"Dark Yellow": "\u30c0\u30fc\u30af\u30a4\u30a8\u30ed\u30fc", +"Dark Orange": "\u30c0\u30fc\u30af\u30aa\u30ec\u30f3\u30b8", +"Dark Red": "\u30c0\u30fc\u30af\u30ec\u30c3\u30c9", +"Medium Gray": "\u30df\u30c7\u30a3\u30a2\u30e0\u30b0\u30ec\u30fc", +"Dark Gray": "\u30c0\u30fc\u30af\u30b0\u30ec\u30fc", +"Black": "\u30d6\u30e9\u30c3\u30af", +"White": "\u30db\u30ef\u30a4\u30c8", +"Switch to or from fullscreen mode": "\u30d5\u30eb\u30b9\u30af\u30ea\u30fc\u30f3\u30e2\u30fc\u30c9\u5207\u66ff", +"Open help dialog": "\u30d8\u30eb\u30d7\u30c0\u30a4\u30a2\u30ed\u30b0\u3092\u958b\u304f", +"history": "\u5c65\u6b74", +"styles": "\u30b9\u30bf\u30a4\u30eb", +"formatting": "\u66f8\u5f0f", +"alignment": "\u914d\u7f6e", +"indentation": "\u30a4\u30f3\u30c7\u30f3\u30c8", +"permanent pen": "\u86cd\u5149\u30da\u30f3", +"comments": "\u30b3\u30e1\u30f3\u30c8", +"Anchor": "\u30a2\u30f3\u30ab\u30fc\uff08\u30ea\u30f3\u30af\u306e\u5230\u9054\u70b9\uff09", +"Special character": "\u7279\u6b8a\u6587\u5b57", +"Code sample": "\u30b3\u30fc\u30c9\u30b5\u30f3\u30d7\u30eb", +"Color": "\u30ab\u30e9\u30fc", +"Emoticons": "\u7d75\u6587\u5b57", +"Document properties": "\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3", +"Image": "\u753b\u50cf", +"Insert link": "\u30ea\u30f3\u30af", +"Target": "\u30bf\u30fc\u30b2\u30c3\u30c8\u5c5e\u6027", +"Link": "\u30ea\u30f3\u30af", +"Poster": "\u4ee3\u66ff\u753b\u50cf\u306e\u5834\u6240", +"Media": "\u30e1\u30c7\u30a3\u30a2", +"Print": "\u5370\u5237", +"Prev": "\u524d", +"Find and replace": "\u691c\u7d22\u3068\u7f6e\u304d\u63db\u3048", +"Whole words": "\u5358\u8a9e\u5358\u4f4d\u3067\u691c\u7d22\u3059\u308b", +"Spellcheck": "\u30b9\u30da\u30eb\u30c1\u30a7\u30c3\u30af", +"Caption": "\u8868\u984c", +"Insert template": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306e\u633f\u5165" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/kk.js b/common/plugins/editors/tinymce/media/langs/kk.js new file mode 100755 index 0000000000000000000000000000000000000000..1ca6542f4a511c640d94531dd090f3b225356a92 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/kk.js @@ -0,0 +1,388 @@ +tinymce.addI18n('kk',{ +"Redo": "\u049a\u0430\u0439\u0442\u0430\u0440\u0443", +"Undo": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443", +"Cut": "\u049a\u0438\u044b\u043f \u0430\u043b\u0443", +"Copy": "\u041a\u04e9\u0448\u0456\u0440\u0443", +"Paste": "\u049a\u043e\u044e", +"Select all": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b\u043d \u0442\u0430\u04a3\u0434\u0430\u0443", +"New document": "\u0416\u0430\u04a3\u0430 \u049b\u04b1\u0436\u0430\u0442", +"Ok": "\u041e\u041a", +"Cancel": "\u0411\u0430\u0441 \u0442\u0430\u0440\u0442\u0443", +"Visual aids": "\u041a\u04e9\u0440\u043d\u0435\u043a\u0456 \u049b\u04b1\u0440\u0430\u043b\u0434\u0430\u0440", +"Bold": "\u049a\u0430\u043b\u044b\u04a3", +"Italic": "\u041a\u04e9\u043b\u0431\u0435\u0443", +"Underline": "\u0410\u0441\u0442\u044b \u0441\u044b\u0437\u044b\u043b\u0493\u0430\u043d", +"Strikethrough": "\u0421\u044b\u0437\u044b\u043b\u0493\u0430\u043d", +"Superscript": "\u0416\u043e\u043b \u04af\u0441\u0442\u0456", +"Subscript": "\u0416\u043e\u043b \u0430\u0441\u0442\u044b", +"Clear formatting": "\u041f\u0456\u0448\u0456\u043c\u0434\u0435\u0443\u0434\u0456 \u0442\u0430\u0437\u0430\u043b\u0430\u0443", +"Align left": "\u0421\u043e\u043b\u0493\u0430 \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"Align center": "\u041e\u0440\u0442\u0430\u0441\u044b\u043d\u0430 \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"Align right": "\u041e\u04a3\u0493\u0430 \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"Justify": "\u0415\u043d\u0456 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"Bullet list": "\u0422\u0430\u04a3\u0431\u0430\u043b\u0430\u043d\u0493\u0430\u043d \u0442\u0456\u0437\u0456\u043c", +"Numbered list": "\u041d\u04e9\u043c\u0456\u0440\u043b\u0435\u043d\u0433\u0435\u043d \u0442\u0456\u0437\u0456\u043c", +"Decrease indent": "\u0428\u0435\u0433\u0456\u043d\u0456\u0441\u0442\u0456 \u043a\u0435\u043c\u0456\u0442\u0443", +"Increase indent": "\u0428\u0435\u0433\u0456\u043d\u0456\u0441\u0442\u0456 \u0430\u0440\u0442\u0442\u044b\u0440\u0443", +"Close": "\u0416\u0430\u0431\u0443", +"Formats": "\u041f\u0456\u0448\u0456\u043c\u0434\u0435\u0440", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u0456\u04a3\u0456\u0437 \u0430\u0440\u0430\u043b\u044b\u049b \u0441\u0430\u049b\u0442\u0430\u0493\u044b\u0448\u049b\u0430 \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u049b\u0430\u0442\u044b\u043d\u0430\u0439 \u0430\u043b\u043c\u0430\u0439\u0434\u044b. Ctrl+X\/C\/V \u043f\u0435\u0440\u043d\u0435\u043b\u0435\u0440 \u0442\u0456\u0440\u043a\u0435\u0441\u0456\u043c\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u04a3\u044b\u0437.", +"Headers": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430\u043b\u0430\u0440", +"Header 1": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 1", +"Header 2": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 2", +"Header 3": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 3", +"Header 4": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 4", +"Header 5": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 5", +"Header 6": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 6", +"Headings": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0442\u0430\u0440", +"Heading 1": "1-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Heading 2": "2-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Heading 3": "3-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Heading 4": "4-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Heading 5": "5-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Heading 6": "6-\u0442\u0430\u049b\u044b\u0440\u044b\u043f", +"Preformatted": "\u0410\u043b\u0434\u044b\u043d \u0430\u043b\u0430 \u043f\u0456\u0448\u0456\u043c\u0434\u0435\u043b\u0433\u0435\u043d", +"Div": "Div", +"Pre": "Pre", +"Code": "\u041a\u043e\u0434", +"Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444", +"Blockquote": "\u0414\u04d9\u0439\u0435\u043a\u0441\u04e9\u0437", +"Inline": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0456\u043b\u0433\u0435\u043d", +"Blocks": "\u0411\u043b\u043e\u043a\u0442\u0430\u0440", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u041e\u0441\u044b \u043e\u043f\u0446\u0438\u044f \u04e9\u0448\u0456\u0440\u0456\u043b\u043c\u0435\u0433\u0435\u043d\u0448\u0435, \u0431\u0443\u0444\u0435\u0440\u0434\u0435\u0433\u0456 \u043c\u04d9\u0442\u0456\u043d \u043a\u04d9\u0434\u0456\u043c\u0433\u0456 \u043c\u04d9\u0442\u0456\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u049b\u043e\u0439\u044b\u043b\u0430\u0434\u044b.", +"Fonts": "\u049a\u0430\u0440\u0456\u043f\u0442\u0435\u0440", +"Font Sizes": "\u049a\u0430\u0440\u0456\u043f \u04e9\u043b\u0448\u0435\u043c\u0434\u0435\u0440\u0456", +"Class": "\u0421\u044b\u043d\u044b\u043f", +"Browse for an image": "\u041a\u0435\u0441\u043a\u0456\u043d\u0434\u0456 \u0448\u043e\u043b\u0443", +"OR": "\u041d\u0415\u041c\u0415\u0421\u0415", +"Drop an image here": "\u041a\u0435\u0441\u043a\u0456\u043d\u0434\u0456 \u043e\u0441\u044b \u0436\u0435\u0440\u0434\u0435 \u0442\u0430\u0441\u0442\u0430\u04a3\u044b\u0437", +"Upload": "\u0416\u04af\u043a\u0442\u0435\u043f \u0441\u0430\u043b\u0443", +"Block": "\u0411\u043b\u043e\u043a", +"Align": "\u0422\u0443\u0440\u0430\u043b\u0430\u0443", +"Default": "\u04d8\u0434\u0435\u043f\u043a\u0456", +"Circle": "\u0428\u0435\u04a3\u0431\u0435\u0440", +"Disc": "\u0414\u0438\u0441\u043a", +"Square": "\u0428\u0430\u0440\u0448\u044b", +"Lower Alpha": "\u041a\u0456\u0448\u0456 \u04d9\u0440\u0456\u043f\u0442\u0435\u0440", +"Lower Greek": "\u041a\u0456\u0448\u0456 \u0433\u0440\u0435\u043a \u04d9\u0440\u0456\u043f\u0442\u0435\u0440\u0456", +"Lower Roman": "\u041a\u0456\u0448\u0456 \u0440\u0438\u043c \u0446\u0438\u0444\u0440\u043b\u0430\u0440\u044b", +"Upper Alpha": "\u0411\u0430\u0441 \u04d9\u0440\u0456\u043f\u0442\u0435\u0440", +"Upper Roman": "\u0411\u0430\u0441 \u0440\u0438\u043c \u0446\u0438\u0444\u0440\u043b\u0430\u0440\u044b", +"Anchor...": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435...", +"Name": "\u0410\u0442\u044b", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u04d9\u0440\u0456\u043f\u0442\u0435\u043d \u0431\u0430\u0441\u0442\u0430\u043b\u044b\u043f, \u04d9\u0440\u0456\u043f\u0442\u0435\u0440, \u0441\u0430\u043d\u0434\u0430\u0440, \u0441\u044b\u0437\u044b\u049b\u0448\u0430\u043b\u0430\u0440, \u043d\u04af\u043a\u0442\u0435\u043b\u0435\u0440 \u0436\u04d9\u043d\u0435 \u0442.\u0431 \u0436\u0430\u043b\u0493\u0430\u0441\u0443\u044b \u0442\u0438\u0456\u0441.", +"You have unsaved changes are you sure you want to navigate away?": "\u0421\u0430\u049b\u0442\u0430\u043b\u043c\u0430\u0493\u0430\u043d \u04e9\u0437\u0433\u0435\u0440\u0456\u0441\u0442\u0435\u0440 \u0431\u0430\u0440. \u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d \u0431\u0430\u0441\u049b\u0430 \u0436\u0435\u0440\u0433\u0435 \u043a\u0435\u0442\u0443\u0434\u0456 \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?", +"Restore last draft": "\u0421\u043e\u04a3\u0493\u044b \u0441\u0430\u049b\u0442\u0430\u043b\u0493\u0430\u043d\u0434\u044b \u049b\u0430\u043b\u043f\u044b\u043d\u0430 \u043a\u0435\u043b\u0442\u0456\u0440\u0443", +"Special characters...": "\u0410\u0440\u043d\u0430\u0439\u044b \u0442\u0430\u04a3\u0431\u0430\u043b\u0430\u0440...", +"Source code": "\u0411\u0430\u0441\u0442\u0430\u043f\u049b\u044b \u043a\u043e\u0434", +"Insert\/Edit code sample": "\u041a\u043e\u0434 \u04af\u043b\u0433\u0456\u0441\u0456\u043d \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443", +"Language": "\u0422\u0456\u043b", +"Code sample...": "\u041a\u043e\u0434 \u04af\u043b\u0433\u0456\u0441\u0456...", +"Color Picker": "\u0422\u04af\u0441 \u0442\u0430\u04a3\u0434\u0430\u0443 \u049b\u04b1\u0440\u0430\u043b\u044b", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u0421\u043e\u043b\u0434\u0430\u043d \u043e\u04a3\u0493\u0430", +"Right to left": "\u041e\u04a3\u043d\u0430\u043d \u0441\u043e\u043b\u0493\u0430", +"Emoticons...": "\u042d\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0434\u0430\u0440...", +"Metadata and Document Properties": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u0436\u04d9\u043d\u0435 \u049b\u04b1\u0436\u0430\u0442 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b", +"Title": "\u0410\u0442\u0430\u0443\u044b", +"Keywords": "Meta-keywords", +"Description": "\u0421\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b", +"Robots": "Meta-robots", +"Author": "Meta-author", +"Encoding": "Meta-charset", +"Fullscreen": "\u0422\u043e\u043b\u044b\u049b \u044d\u043a\u0440\u0430\u043d", +"Action": "\u04d8\u0440\u0435\u043a\u0435\u0442", +"Shortcut": "\u041f\u0435\u0440\u043d\u0435\u043b\u0435\u0440 \u0442\u0456\u0440\u043a\u0435\u0441\u0456\u043c\u0456", +"Help": "\u0410\u043d\u044b\u049b\u0442\u0430\u043c\u0430", +"Address": "\u041c\u0435\u043a\u0435\u043d\u0436\u0430\u0439", +"Focus to menubar": "\u041c\u04d9\u0437\u0456\u0440 \u0436\u043e\u043b\u0430\u0493\u044b\u043d \u0444\u043e\u043a\u0443\u0441\u0442\u0430\u0443", +"Focus to toolbar": "\u049a\u04b1\u0440\u0430\u043b\u0434\u0430\u0440 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d \u0444\u043e\u043a\u0443\u0441\u0442\u0430\u0443", +"Focus to element path": "\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0436\u043e\u043b\u044b\u043d \u0444\u043e\u043a\u0443\u0441\u0442\u0430\u0443", +"Focus to contextual toolbar": "\u041c\u04d9\u0442\u0456\u043d\u043c\u04d9\u043d\u0434\u0456\u043a \u049b\u04b1\u0440\u0430\u043b\u0434\u0430\u0440 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d \u0444\u043e\u043a\u0443\u0441\u0442\u0430\u0443", +"Insert link (if link plugin activated)": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443 (\u0441\u0456\u043b\u0442\u0435\u043c\u0435 \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0433\u0435\u043d \u0431\u043e\u043b\u0441\u0430)", +"Save (if save plugin activated)": "\u0421\u0430\u049b\u0442\u0430\u0443 (\u0441\u0430\u049b\u0442\u0430\u0443 \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0433\u0435\u043d \u0431\u043e\u043b\u0441\u0430)", +"Find (if searchreplace plugin activated)": "\u0422\u0430\u0431\u0443 (\u0456\u0437\u0434\u0435\u0443\/\u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443 \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456\u0440\u0456\u043b\u0433\u0435\u043d \u0431\u043e\u043b\u0441\u0430)", +"Plugins installed ({0}):": "\u041e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c\u0434\u0435\u0440 ({0}):", +"Premium plugins:": "\u041f\u0440\u0435\u043c\u0438\u0443\u043c \u049b\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c\u0434\u0435\u0440:", +"Learn more...": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u043c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440...", +"You are using {0}": "\u0421\u0456\u0437 {0} \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0434\u0430\u0441\u044b\u0437", +"Plugins": "\u049a\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c\u0434\u0435\u0440", +"Handy Shortcuts": "\u042b\u04a3\u0493\u0430\u0439\u043b\u044b \u043f\u0435\u0440\u043d\u0435\u043b\u0435\u0440 \u0442\u0456\u0440\u043a\u0435\u0441\u0456\u043c\u0434\u0435\u0440\u0456", +"Horizontal line": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3 \u0441\u044b\u0437\u044b\u049b", +"Insert\/edit image": "\u0421\u0443\u0440\u0435\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443", +"Image description": "\u0421\u0443\u0440\u0435\u0442 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u043c\u0430\u0441\u044b", +"Source": "\u0410\u0434\u0440\u0435\u0441\u0456", +"Dimensions": "\u04e8\u043b\u0448\u0435\u043c\u0434\u0435\u0440\u0456", +"Constrain proportions": "\u041f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u044f\u043b\u0430\u0440\u0434\u044b \u0441\u0430\u049b\u0442\u0430\u0443", +"General": "\u0416\u0430\u043b\u043f\u044b", +"Advanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430", +"Style": "\u0421\u0442\u0438\u043b\u0456", +"Vertical space": "\u0422\u0456\u043a \u043a\u0435\u04a3\u0434\u0456\u0433\u0456", +"Horizontal space": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u0456\u043d\u0435\u043d \u049b\u0430\u043b\u0430\u0442\u044b\u043d \u043e\u0440\u044b\u043d", +"Border": "\u0416\u0438\u0435\u0433\u0456", +"Insert image": "\u0421\u0443\u0440\u0435\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Image...": "\u041a\u0435\u0441\u043a\u0456\u043d...", +"Image list": "\u041a\u0435\u0441\u043a\u0456\u043d\u0434\u0435\u0440 \u0442\u0456\u0437\u0456\u043c\u0456", +"Rotate counterclockwise": "\u0421\u0430\u0493\u0430\u0442 \u0442\u0456\u043b\u0456\u043d\u0456\u04a3 \u0431\u0430\u0493\u044b\u0442\u044b\u043d\u0430 \u049b\u0430\u0440\u0441\u044b \u0431\u04b1\u0440\u0443", +"Rotate clockwise": "\u0421\u0430\u0493\u0430\u0442 \u0442\u0456\u043b\u0456\u043d\u0456\u04a3 \u0431\u0430\u0493\u044b\u0442\u044b\u043c\u0435\u043d \u0431\u04b1\u0440\u0443", +"Flip vertically": "\u0422\u0456\u0433\u0456\u043d\u0435\u043d \u0430\u0443\u0434\u0430\u0440\u0443", +"Flip horizontally": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u043d\u0435\u043d \u0430\u0443\u0434\u0430\u0440\u0443", +"Edit image": "\u0421\u0443\u0440\u0435\u0442\u0442\u0456 \u04e9\u0437\u0433\u0435\u0440\u0442\u0443", +"Image options": "\u0421\u0443\u0440\u0435\u0442 \u0431\u0430\u043f\u0442\u0430\u0443\u043b\u0430\u0440\u044b", +"Zoom in": "\u0416\u0430\u049b\u044b\u043d\u0434\u0430\u0442\u0443", +"Zoom out": "\u0410\u043b\u044b\u0441\u0442\u0430\u0442\u0443", +"Crop": "\u041a\u0435\u0441\u0443", +"Resize": "\u04e8\u043b\u0448\u0435\u043c\u0456\u043d \u04e9\u0437\u0433\u0435\u0440\u0442\u0443", +"Orientation": "\u0411\u0430\u0493\u0434\u0430\u0440", +"Brightness": "\u0410\u0448\u044b\u049b\u0442\u0430\u0443", +"Sharpen": "\u041d\u0430\u049b\u0442\u044b\u043b\u0430\u0443", +"Contrast": "\u049a\u043e\u044e\u043b\u0430\u0442\u0443", +"Color levels": "\u0422\u04af\u0441 \u0434\u0435\u04a3\u0433\u0435\u0439\u043b\u0435\u0440\u0456", +"Gamma": "\u0413\u0430\u043c\u043c\u0430", +"Invert": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Apply": "\u0421\u0430\u049b\u0442\u0430\u0443", +"Back": "\u0410\u0440\u0442\u049b\u0430", +"Insert date\/time": "\u041a\u04af\u043d\/\u0443\u0430\u049b\u044b\u0442 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Date\/time": "\u041a\u04af\u043d\/\u0443\u0430\u049b\u044b\u0442", +"Insert\/Edit Link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u04e9\u04a3\u0434\u0435\u0443", +"Insert\/edit link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443", +"Text to display": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u0435\u0442\u0456\u043d \u043c\u04d9\u0442\u0456\u043d", +"Url": "URL-\u0430\u0434\u0440\u0435\u0441\u0456", +"Open link in...": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u0430\u0448\u0443...", +"Current window": "\u0410\u0493\u044b\u043c\u0434\u0430\u0493\u044b \u0442\u0435\u0440\u0435\u0437\u0435", +"None": "\u0416\u043e\u049b", +"New window": "\u0416\u0430\u04a3\u0430 \u0442\u0435\u0440\u0435\u0437\u0435", +"Remove link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u0430\u043b\u044b\u043f \u0442\u0430\u0441\u0442\u0430\u0443", +"Anchors": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043b\u0435\u0440", +"Link...": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435...", +"Paste or type a link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043d\u0456 \u049b\u043e\u0439\u044b\u04a3\u044b\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u0442\u0435\u0440\u0456\u04a3\u0456\u0437", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0421\u0456\u0437 \u0435\u04a3\u0433\u0456\u0437\u0456\u043f \u0442\u04b1\u0440\u0493\u0430\u043d URL e-mail \u0430\u0434\u0440\u0435\u0441\u0456 \u0431\u043e\u043b\u044b\u043f \u0442\u0430\u0431\u044b\u043b\u0430\u0434\u044b. \u0410\u043b\u0434\u044b\u043d\u0430 mailto: \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0456\u043d \u049b\u043e\u0441\u0443\u0434\u044b \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0421\u0456\u0437 \u0435\u04a3\u0433\u0456\u0437\u0456\u043f \u0442\u04b1\u0440\u0493\u0430\u043d URL \u0441\u044b\u0440\u0442\u049b\u044b \u0441\u0456\u043b\u0442\u0435\u043c\u0435 \u0431\u043e\u043b\u044b\u043f \u0442\u0430\u0431\u044b\u043b\u0430\u0434\u044b. \u0410\u043b\u0434\u044b\u043d\u0430 http:\/\/ \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0456\u043d \u049b\u043e\u0441\u0443\u0434\u044b \u049b\u0430\u043b\u0430\u0439\u0441\u044b\u0437 \u0431\u0430?", +"Link list": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435\u043b\u0435\u0440 \u0442\u0456\u0437\u0456\u043c\u0456", +"Insert video": "\u0412\u0438\u0434\u0435\u043e \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Insert\/edit video": "\u0412\u0438\u0434\u0435\u043e \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443", +"Insert\/edit media": "\u041c\u0435\u0434\u0438\u0430 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443\/\u0442\u04af\u0437\u0435\u0442\u0443", +"Alternative source": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0430\u0434\u0440\u0435\u0441\u0456", +"Alternative source URL": "\u0411\u0430\u043b\u0430\u043c\u0430\u043b\u044b \u043a\u04e9\u0437\u0434\u0456\u04a3 URL \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b", +"Media poster (Image URL)": "\u041c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u0434\u044b \u0436\u0430\u0440\u0438\u044f\u043b\u0430\u0443\u0448\u044b (\u043a\u0435\u0441\u043a\u0456\u043d\u043d\u0456\u04a3 URL \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b)", +"Paste your embed code below:": "\u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043a\u043e\u0434\u0442\u044b \u043a\u04e9\u0448\u0456\u0440\u0456\u043f \u0430\u043b\u044b\u043f, \u049b\u043e\u0439\u044b\u04a3\u044b\u0437:", +"Embed": "\u0415\u043d\u0434\u0456\u0440\u0443", +"Media...": "\u041c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b...", +"Nonbreaking space": "\u04ae\u0437\u0434\u0456\u043a\u0441\u0456\u0437 \u0431\u043e\u0441 \u043e\u0440\u044b\u043d", +"Page break": "\u0411\u0435\u0442 \u04af\u0437\u0456\u043b\u0456\u043c\u0456", +"Paste as text": "\u041c\u04d9\u0442\u0456\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u049b\u043e\u044e", +"Preview": "\u0410\u043b\u0434\u044b\u043d-\u0430\u043b\u0430 \u049b\u0430\u0440\u0430\u0443", +"Print...": "\u0411\u0430\u0441\u044b\u043f \u0448\u044b\u0493\u0430\u0440\u0443...", +"Save": "\u0421\u0430\u049b\u0442\u0430\u0443", +"Find": "\u0422\u0430\u0431\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u04d9\u0442\u0456\u043d", +"Replace with": "\u0410\u0443\u044b\u0441\u0442\u044b\u0440\u0430\u0442\u044b\u043d \u043c\u04d9\u0442\u0456\u043d", +"Replace": "\u0410\u0443\u044b\u0441\u0442\u044b\u0440\u0443", +"Replace all": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b\u043d \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443", +"Previous": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b", +"Next": "\u041a\u0435\u043b\u0435\u0441\u0456", +"Find and replace...": "\u0422\u0430\u0431\u0443 \u0436\u04d9\u043d\u0435 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443...", +"Could not find the specified string.": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u0433\u0435\u043d \u0436\u043e\u043b \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.", +"Match case": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0434\u0456 \u0435\u0441\u043a\u0435\u0440\u0443", +"Find whole words only": "\u0422\u0435\u043a \u0431\u04af\u0442\u0456\u043d \u0441\u04e9\u0437\u0434\u0435\u0440\u0434\u0456 \u0442\u0430\u0431\u0443", +"Spell check": "\u0415\u043c\u043b\u0435\u043d\u0456 \u0442\u0435\u043a\u0441\u0435\u0440\u0443", +"Ignore": "\u0415\u043b\u0435\u043c\u0435\u0443", +"Ignore all": "\u0415\u0448\u049b\u0430\u0439\u0441\u044b\u0441\u044b\u043d \u0435\u043b\u0435\u043c\u0435\u0443", +"Finish": "\u0410\u044f\u049b\u0442\u0430\u0443", +"Add to Dictionary": "\u0421\u04e9\u0437\u0434\u0456\u043a\u043a\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Insert table": "\u041a\u0435\u0441\u0442\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Table properties": "\u041a\u0435\u0441\u0442\u0435 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b", +"Delete table": "\u041a\u0435\u0441\u0442\u0435\u043d\u0456 \u0436\u043e\u044e", +"Cell": "\u04b0\u044f\u0448\u044b\u049b", +"Row": "\u0416\u043e\u043b", +"Column": "\u0411\u0430\u0493\u0430\u043d", +"Cell properties": "\u04b0\u044f\u0448\u044b\u049b \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b", +"Merge cells": "\u04b0\u044f\u0448\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u0431\u0456\u0440\u0456\u043a\u0442\u0456\u0440\u0443", +"Split cell": "\u04b0\u044f\u0448\u044b\u049b\u0442\u044b \u0431\u04e9\u043b\u0443", +"Insert row before": "\u04ae\u0441\u0442\u0456\u043d\u0435 \u0436\u043e\u043b \u049b\u043e\u0441\u0443", +"Insert row after": "\u0410\u0441\u0442\u044b\u043d\u0430 \u0436\u043e\u043b \u049b\u043e\u0441\u0443", +"Delete row": "\u0416\u043e\u043b\u0434\u044b \u0436\u043e\u044e", +"Row properties": "\u0416\u043e\u043b \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b", +"Cut row": "\u0416\u043e\u043b\u0434\u044b \u049b\u0438\u044b\u043f \u0430\u043b\u0443", +"Copy row": "\u0416\u043e\u043b\u0434\u044b \u043a\u04e9\u0448\u0456\u0440\u0443", +"Paste row before": "\u0416\u043e\u043b\u0434\u044b\u04a3 \u04af\u0441\u0442\u0456\u043d\u0435 \u049b\u043e\u044e", +"Paste row after": "\u0416\u043e\u043b\u0434\u044b\u04a3 \u0430\u0441\u0442\u044b\u043d\u0430 \u049b\u043e\u044e", +"Insert column before": "\u0410\u043b\u0434\u044b\u043d\u0430 \u0431\u0430\u0493\u0430\u043d \u049b\u043e\u0441\u0443", +"Insert column after": "\u0410\u0440\u0442\u044b\u043d\u0430 \u0431\u0430\u0493\u0430\u043d \u049b\u043e\u0441\u0443", +"Delete column": "\u0411\u0430\u0493\u0430\u043d\u0434\u044b \u0436\u043e\u044e", +"Cols": "\u0411\u0430\u0493\u0430\u043d\u044b", +"Rows": "\u0416\u043e\u043b\u044b", +"Width": "\u04b0\u0437\u044b\u043d\u0434\u044b\u0493\u044b", +"Height": "\u0411\u0438\u0456\u043a\u0442\u0456\u0433\u0456", +"Cell spacing": "\u04b0\u044f\u0448\u044b\u049b \u0430\u0440\u0430\u043b\u044b\u0493\u044b", +"Cell padding": "\u04b0\u044f\u0448\u044b\u049b \u043a\u0435\u04a3\u0434\u0456\u0433\u0456", +"Show caption": "\u0416\u0430\u0437\u0431\u0430\u043d\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443", +"Left": "\u0421\u043e\u043b\u0493\u0430", +"Center": "\u041e\u0440\u0442\u0430\u0441\u044b\u043d\u0430", +"Right": "\u041e\u04a3\u0493\u0430", +"Cell type": "\u04b0\u044f\u0448\u044b\u049b \u0442\u0438\u043f\u0456", +"Scope": "\u0410\u0443\u043c\u0430\u0493\u044b", +"Alignment": "\u041e\u0440\u043d\u0430\u043b\u0430\u0441\u0443\u044b", +"H Align": "\u041a\u04e9\u043b\u0434\u0435\u043d\u0435\u04a3\u043d\u0435\u043d \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"V Align": "\u0422\u0456\u0433\u0456\u043d\u0435\u043d \u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"Top": "\u04ae\u0441\u0442\u0456", +"Middle": "\u041e\u0440\u0442\u0430\u0441\u044b", +"Bottom": "\u0410\u0441\u0442\u044b", +"Header cell": "\u0422\u0430\u049b\u044b\u0440\u044b\u043f\u0448\u0430 \u04b1\u044f\u0448\u044b\u049b", +"Row group": "\u0416\u043e\u043b \u0442\u043e\u0431\u044b", +"Column group": "\u0411\u0430\u0493\u0430\u043d \u0442\u043e\u0431\u044b", +"Row type": "\u0416\u043e\u043b \u0442\u0438\u043f\u0456", +"Header": "\u0411\u0430\u0441 \u0436\u0430\u0493\u044b", +"Body": "\u041d\u0435\u0433\u0456\u0437\u0433\u0456 \u0431\u04e9\u043b\u0456\u0433\u0456", +"Footer": "\u0410\u044f\u049b \u0436\u0430\u0493\u044b", +"Border color": "\u0416\u0438\u0435\u043a \u0442\u04af\u0441\u0456", +"Insert template...": "\u04ae\u043b\u0433\u0456 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443...", +"Templates": "\u04ae\u043b\u0433\u0456\u043b\u0435\u0440", +"Template": "\u04ae\u043b\u0433\u0456", +"Text color": "\u041c\u04d9\u0442\u0456\u043d \u0442\u04af\u0441\u0456", +"Background color": "\u04e8\u04a3\u0456\u043d\u0456\u04a3 \u0442\u04af\u0441\u0456", +"Custom...": "\u04e8\u0437\u0433\u0435\u0440\u0442\u0443", +"Custom color": "\u0422\u04af\u0441 \u04e9\u0437\u0433\u0435\u0440\u0442\u0443", +"No color": "\u0422\u04af\u0441\u0441\u0456\u0437", +"Remove color": "\u0422\u04af\u0441\u0442\u0456 \u0436\u043e\u044e", +"Table of Contents": "\u041c\u0430\u0437\u043c\u04b1\u043d\u0434\u0430\u0440 \u043a\u0435\u0441\u0442\u0435\u0441\u0456", +"Show blocks": "\u0411\u043b\u043e\u043a\u0442\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443", +"Show invisible characters": "\u041a\u04e9\u0440\u0456\u043d\u0431\u0435\u0439\u0442\u0456\u043d \u0442\u0430\u04a3\u0431\u0430\u043b\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443", +"Word count": "\u0421\u04e9\u0437 \u0441\u0430\u043d\u044b", +"Words: {0}": "\u0421\u04e9\u0437 \u0441\u0430\u043d\u044b: {0}", +"{0} words": "{0} \u0441\u04e9\u0437", +"File": "\u0424\u0430\u0439\u043b", +"Edit": "\u0422\u04af\u0437\u0435\u0442\u0443", +"Insert": "\u041a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"View": "\u041a\u04e9\u0440\u0456\u043d\u0456\u0441", +"Format": "\u0424\u043e\u0440\u043c\u0430\u0442", +"Table": "\u041a\u0435\u0441\u0442\u0435", +"Tools": "\u049a\u04b1\u0440\u0430\u043b\u0434\u0430\u0440", +"Powered by {0}": "{0} \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0441\u044b\u043d\u0430 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0433\u0435\u043d", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0424\u043e\u0440\u043c\u0430\u0442\u0442\u0430\u043b\u0493\u0430\u043d \u043c\u04d9\u0442\u0456\u043d \u0430\u0443\u043c\u0430\u0493\u044b. \u041c\u0435\u043d\u044e \u043a\u04e9\u0440\u0441\u0435\u0442\u0443 \u04af\u0448\u0456\u043d ALT-F9 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437. \u049a\u04b1\u0440\u0430\u043b\u0434\u0430\u0440 \u043f\u0430\u043d\u0435\u043b\u0456\u043d \u043a\u04e9\u0440\u0441\u0435\u0442\u0443 \u04af\u0448\u0456\u043d ALT-F10 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437. \u041a\u04e9\u043c\u0435\u043a \u0430\u043b\u0443 \u04af\u0448\u0456\u043d ALT-0 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.", +"Image title": "\u041a\u0435\u0441\u043a\u0456\u043d \u0430\u0442\u0430\u0443\u044b", +"Border width": "\u0416\u0438\u0435\u043a \u0435\u043d\u0456", +"Border style": "\u0416\u0438\u0435\u043a \u043c\u04d9\u043d\u0435\u0440\u0456", +"Error": "\u049a\u0430\u0442\u0435", +"Warn": "\u0415\u0441\u043a\u0435\u0440\u0442\u0443", +"Valid": "\u0416\u0430\u0440\u0430\u043c\u0434\u044b", +"To open the popup, press Shift+Enter": "\u049a\u0430\u043b\u049b\u044b\u043c\u0430\u043b\u044b \u0442\u0435\u0440\u0435\u0437\u0435\u043d\u0456 \u0430\u0448\u0443 \u04af\u0448\u0456\u043d Shift+Enter \u0431\u0430\u0441\u044b\u04a3\u044b\u0437", +"Rich Text Area. Press ALT-0 for help.": "\u041f\u0456\u0448\u0456\u043c\u0434\u0435\u043b\u0433\u0435\u043d \u043c\u04d9\u0442\u0456\u043d \u0430\u0443\u043c\u0430\u0493\u044b. \u0410\u043d\u044b\u049b\u0442\u0430\u043c\u0430 \u0430\u043b\u0443 \u04af\u0448\u0456\u043d ALT-0 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.", +"System Font": "\u0416\u04af\u0439\u0435 \u049b\u0430\u0440\u043f\u0456", +"Failed to upload image: {0}": "\u041a\u0435\u0441\u043a\u0456\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0441\u0430\u043b\u044b\u043d\u0431\u0430\u0434\u044b: {0}", +"Failed to load plugin: {0} from url {1}": "\u049a\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c \u0436\u04af\u043a\u0442\u0435\u043b\u043c\u0435\u0434\u0456: {0} {1} URL \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b\u043d\u0430\u043d", +"Failed to load plugin url: {0}": "\u049a\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c \u0436\u04af\u043a\u0442\u0435\u043b\u043c\u0435\u0434\u0456 URL \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b: {0}", +"Failed to initialize plugin: {0}": "\u049a\u043e\u0441\u044b\u043b\u0430\u0442\u044b\u043d \u043c\u043e\u0434\u0443\u043b\u044c \u0431\u0430\u043f\u0442\u0430\u043d\u0434\u044b\u0440\u044b\u043b\u043c\u0430\u0434\u044b: {0}", +"example": "\u043c\u044b\u0441\u0430\u043b", +"Search": "\u0406\u0437\u0434\u0435\u0443", +"All": "\u0411\u0430\u0440\u043b\u044b\u0493\u044b", +"Currency": "\u0412\u0430\u043b\u044e\u0442\u0430", +"Text": "\u041c\u04d9\u0442\u0456\u043d", +"Quotations": "\u0422\u044b\u0440\u043d\u0430\u049b\u0448\u0430\u043b\u0430\u0440", +"Mathematical": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0430\u043b\u044b\u049b", +"Extended Latin": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d \u043b\u0430\u0442\u044b\u043d", +"Symbols": "\u0422\u0430\u04a3\u0431\u0430\u043b\u0430\u0440", +"Arrows": "\u041a\u04e9\u0440\u0441\u0435\u0442\u043a\u0456\u043b\u0435\u0440", +"User Defined": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u0493\u0430\u043d", +"dollar sign": "\u0434\u043e\u043b\u043b\u0430\u0440 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"currency sign": "\u0432\u0430\u043b\u044e\u0442\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"euro-currency sign": "\u0435\u0443\u0440\u043e \u0432\u0430\u043b\u044e\u0442\u0430\u0441\u044b\u043d\u044b\u04a3 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"colon sign": "\u049b\u043e\u0441 \u043d\u04af\u043a\u0442\u0435 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"cruzeiro sign": "\u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"french franc sign": "\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0434\u044b\u049b \u0444\u0440\u0430\u043d\u043a \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"lira sign": "\u043b\u0438\u0440\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"mill sign": "\u043c\u0438\u043b\u043b \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"naira sign": "\u043d\u0430\u0439\u0440\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"peseta sign": "\u043f\u0435\u0441\u0435\u0442\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"rupee sign": "\u0440\u0443\u043f\u0438\u044f \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"won sign": "\u0432\u043e\u043d \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"new sheqel sign": "\u0436\u0430\u04a3\u0430 \u0448\u0435\u043a\u0435\u043b\u044c \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"dong sign": "\u0434\u043e\u043d\u0433 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"kip sign": "\u043a\u0438\u043f \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"tugrik sign": "\u0442\u0443\u0433\u0440\u0438\u043a \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"drachma sign": "\u0434\u0440\u0430\u0445\u043c\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"german penny symbol": "\u0433\u0435\u0440\u043c\u0430\u043d\u0434\u044b\u049b \u043f\u0435\u043d\u043d\u0438 \u0442\u0430\u04a3\u0431\u0430\u0441\u044b", +"peso sign": "\u043f\u0435\u0441\u043e \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"guarani sign": "\u0433\u0443\u0430\u0440\u0430\u043d\u0438 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"austral sign": "\u0430\u0443\u0441\u0442\u0440\u0430\u043b \u0431\u0435\u0433\u043b\u0456\u0441\u0456", +"hryvnia sign": "\u0433\u0440\u0438\u0432\u043d\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"cedi sign": "\u0441\u0435\u0434\u0438 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"livre tournois sign": "\u0442\u0443\u0440 \u043b\u0438\u0432\u0440\u044b \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"spesmilo sign": "\u0441\u043f\u0435\u0441\u043c\u0438\u043b\u043e \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"tenge sign": "\u0442\u0435\u04a3\u0433\u0435 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"indian rupee sign": "\u04af\u043d\u0434\u0456 \u0440\u0443\u043f\u0438\u044f\u0441\u044b \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"turkish lira sign": "\u0442\u04af\u0440\u0456\u043a \u043b\u0438\u0440\u0430\u0441\u044b \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"nordic mark sign": "\u0441\u043a\u0430\u043d\u0434\u0438\u043d\u0430\u0432\u0438\u044f\u043b\u044b\u049b \u043c\u0430\u0440\u043a\u0430 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"manat sign": "\u043c\u0430\u043d\u0430\u0442 \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"ruble sign": "\u0440\u0443\u0431\u043b\u044c \u0431\u0435\u043b\u0433\u0456\u0441\u0456", +"yen character": "\u0439\u0435\u043d\u0430 \u0442\u0430\u04a3\u0431\u0430\u0441\u044b", +"yuan character": "\u044e\u0430\u043d\u044c \u0442\u0430\u04a3\u0431\u0430\u0441\u044b", +"yuan character, in hong kong and taiwan": "\u044e\u0430\u043d\u044c \u0442\u0430\u04a3\u0431\u0430\u0441\u044b, \u0413\u043e\u043d\u043a\u043e\u043d\u0433 \u043f\u0435\u043d \u0422\u0430\u0439\u0432\u0430\u043d\u044c\u0434\u0430", +"yen\/yuan character variant one": "\u0439\u0435\u043d\u0430\/\u044e\u0430\u043d\u044c \u0442\u0430\u04a3\u0431\u0430\u0441\u044b\u043d\u044b\u04a3 \u0431\u0456\u0440\u0456\u043d\u0448\u0456 \u043d\u04b1\u0441\u049b\u0430\u0441\u044b", +"Loading emoticons...": "\u042d\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0434\u0430\u0440 \u0436\u04af\u043a\u0442\u0435\u043b\u0443\u0434\u0435...", +"Could not load emoticons": "\u042d\u043c\u043e\u0442\u0438\u043a\u043e\u043d\u0434\u0430\u0440\u0434\u044b \u0436\u04af\u043a\u0442\u0435\u0443 \u043c\u04af\u043c\u043a\u0456\u043d \u0431\u043e\u043b\u043c\u0430\u0434\u044b", +"People": "\u0410\u0434\u0430\u043c\u0434\u0430\u0440", +"Animals and Nature": "\u0416\u0430\u043d\u0443\u0430\u0440\u043b\u0430\u0440 \u0436\u04d9\u043d\u0435 \u0442\u0430\u0431\u0438\u0493\u0430\u0442", +"Food and Drink": "\u0422\u0430\u0493\u0430\u043c\u0434\u0430\u0440 \u0436\u04d9\u043d\u0435 \u0441\u0443\u0441\u044b\u043d\u0434\u0430\u0440", +"Activity": "\u0411\u0435\u043b\u0441\u0435\u043d\u0434\u0456\u043b\u0456\u043a", +"Travel and Places": "\u0421\u0430\u044f\u0445\u0430\u0442 \u0436\u04d9\u043d\u0435 \u043e\u0440\u044b\u043d\u0434\u0430\u0440", +"Objects": "\u041d\u044b\u0441\u0430\u043d\u0434\u0430\u0440", +"Flags": "\u0422\u0443\u043b\u0430\u0440", +"Characters": "\u0422\u0430\u04a3\u0431\u0430\u043b\u0430\u0440", +"Characters (no spaces)": "\u0422\u0430\u04a3\u0431\u0430\u043b\u0430\u0440 (\u043e\u0440\u044b\u043d\u0434\u0430\u0440\u0441\u044b\u0437)", +"Error: Form submit field collision.": "\u049a\u0430\u0442\u0435: \u043f\u0456\u0448\u0456\u043d\u0434\u0456 \u0436\u0456\u0431\u0435\u0440\u0443 \u04e9\u0440\u0456\u0441\u0456\u043d\u0456\u04a3 \u049b\u0430\u0439\u0448\u044b\u043b\u044b\u0493\u044b.", +"Error: No form element found.": "\u049a\u0430\u0442\u0435: \u043f\u0456\u0448\u0456\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0456 \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.", +"Update": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443", +"Color swatch": "\u0422\u04af\u0441 \u04af\u043b\u0433\u0456\u0441\u0456", +"Turquoise": "\u041a\u04e9\u0433\u0456\u043b\u0434\u0456\u0440", +"Green": "\u0416\u0430\u0441\u044b\u043b", +"Blue": "\u041a\u04e9\u043a", +"Purple": "\u041a\u04af\u043b\u0433\u0456\u043d", +"Navy Blue": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u043a\u04e9\u043a", +"Dark Turquoise": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u043a\u04e9\u0433\u0456\u043b\u0434\u0456\u0440", +"Dark Green": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u0436\u0430\u0441\u044b\u043b", +"Medium Blue": "\u041e\u0440\u0442\u0430\u0448\u0430 \u043a\u04e9\u043a", +"Medium Purple": "\u041e\u0440\u0442\u0430\u0448\u0430 \u043a\u04af\u043b\u0433\u0456\u043d", +"Midnight Blue": "\u0422\u04af\u043d\u0433\u0456 \u043a\u04e9\u043a", +"Yellow": "\u0421\u0430\u0440\u044b", +"Orange": "\u0421\u0430\u0440\u0493\u044b\u0448", +"Red": "\u049a\u044b\u0437\u044b\u043b", +"Light Gray": "\u0410\u0448\u044b\u049b \u0441\u04b1\u0440", +"Gray": "\u0421\u04b1\u0440", +"Dark Yellow": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u0441\u0430\u0440\u044b", +"Dark Orange": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u0441\u0430\u0440\u0493\u044b\u0448", +"Dark Red": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u049b\u044b\u0437\u044b\u043b", +"Medium Gray": "\u041e\u0440\u0442\u0430\u0448\u0430 \u0441\u04b1\u0440", +"Dark Gray": "\u041a\u04af\u04a3\u0433\u0456\u0440\u0442 \u0441\u04b1\u0440", +"Black": "\u049a\u0430\u0440\u0430", +"White": "\u0410\u049b", +"Switch to or from fullscreen mode": "\u0422\u043e\u043b\u044b\u049b \u044d\u043a\u0440\u0430\u043d \u0440\u0435\u0436\u0438\u043c\u0456\u043d\u0435 \u043d\u0435\u043c\u0435\u0441\u0435 \u043e\u0434\u0430\u043d \u0430\u0443\u044b\u0441\u0443", +"Open help dialog": "\u0410\u043d\u044b\u049b\u0442\u0430\u043c\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0442\u044b\u049b \u0442\u0435\u0440\u0435\u0437\u0435\u0441\u0456\u043d \u0430\u0448\u0443", +"history": "\u0442\u0430\u0440\u0438\u0445", +"styles": "\u0441\u0442\u0438\u043b\u044c\u0434\u0435\u0440", +"formatting": "\u043f\u0456\u0448\u0456\u043c\u0434\u0435\u0443", +"alignment": "\u0442\u0443\u0440\u0430\u043b\u0430\u0443", +"indentation": "\u0448\u0435\u0433\u0456\u043d\u0456\u0441", +"permanent pen": "\u043f\u0435\u0440\u043c\u0430\u043d\u0435\u043d\u0442\u0442\u0456\u043a \u043c\u0430\u0440\u043a\u0435\u0440", +"comments": "\u0442\u04af\u0441\u0456\u043d\u0434\u0456\u0440\u043c\u0435\u043b\u0435\u0440", +"Anchor": "\u0411\u0435\u0442\u0431\u0435\u043b\u0433\u0456", +"Special character": "\u0410\u0440\u043d\u0430\u0439\u044b \u0442\u0430\u04a3\u0431\u0430", +"Color": "\u0422\u04af\u0441", +"Emoticons": "\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0442\u0430\u0440", +"Document properties": "\u049a\u04b1\u0436\u0430\u0442 \u0441\u0438\u043f\u0430\u0442\u0442\u0430\u0440\u044b", +"Image": "\u0421\u0443\u0440\u0435\u0442", +"Insert link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443", +"Link": "\u0421\u0456\u043b\u0442\u0435\u043c\u0435", +"Target": "\u0410\u0448\u044b\u043b\u0430\u0442\u044b\u043d \u0436\u0435\u0440\u0456", +"Media": "\u041c\u0435\u0434\u0438\u0430", +"Poster": "\u041f\u043e\u0441\u0442\u0435\u0440\u0456", +"Print": "\u0411\u0430\u0441\u044b\u043f \u0448\u044b\u0493\u0430\u0440\u0443", +"Whole words": "\u0422\u04b1\u0442\u0430\u0441 \u0441\u04e9\u0437\u0434\u0435\u0440", +"Find and replace": "\u0422\u0430\u0431\u0443 \u0436\u04d9\u043d\u0435 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443", +"Prev": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b", +"Spellcheck": "\u0415\u043c\u043b\u0435 \u0442\u0435\u043a\u0441\u0435\u0440\u0443", +"Caption": "\u0410\u0442\u0430\u0443\u044b", +"Insert template": "\u04ae\u043b\u0433\u0456 \u043a\u0456\u0440\u0456\u0441\u0442\u0456\u0440\u0443" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ko_KR.js b/common/plugins/editors/tinymce/media/langs/ko_KR.js new file mode 100755 index 0000000000000000000000000000000000000000..a52038c53d4542900b6e84bf68150f37f0b6bdb4 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ko_KR.js @@ -0,0 +1,389 @@ +tinymce.addI18n('ko_KR',{ +"Redo": "\ub2e4\uc2dc \uc2e4\ud589", +"Undo": "\uc2e4\ud589 \ucde8\uc18c", +"Cut": "\uc798\ub77c\ub0b4\uae30", +"Copy": "\ubcf5\uc0ac", +"Paste": "\ubd99\uc5ec\ub123\uae30", +"Select all": "\uc804\uccb4\uc120\ud0dd", +"New document": "\uc0c8 \ubb38\uc11c", +"Ok": "\ud655\uc778", +"Cancel": "\ucde8\uc18c", +"Visual aids": "\uc2dc\uac01\uad50\uc7ac", +"Bold": "\uad75\uac8c", +"Italic": "\uae30\uc6b8\uc784\uaf34", +"Underline": "\ubc11\uc904", +"Strikethrough": "\ucde8\uc18c\uc120", +"Superscript": "\uc704 \ucca8\uc790", +"Subscript": "\uc544\ub798 \ucca8\uc790", +"Clear formatting": "\uc11c\uc2dd \uc9c0\uc6b0\uae30", +"Align left": "\uc67c\ucabd \ub9de\ucda4", +"Align center": "\uac00\uc6b4\ub370 \ub9de\ucda4", +"Align right": "\uc624\ub978\ucabd \ub9de\ucda4", +"Justify": "\uc591\ucabd \ub9de\ucda4", +"Bullet list": "\uae00\uba38\ub9ac \uae30\ud638 \ubaa9\ub85d", +"Numbered list": "\ubc88\ud638 \ub9e4\uae30\uae30 \ubaa9\ub85d", +"Decrease indent": "\ub0b4\uc5b4\uc4f0\uae30", +"Increase indent": "\ub4e4\uc5ec\uc4f0\uae30", +"Close": "\ub2eb\uae30", +"Formats": "\uc11c\uc2dd", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\ube0c\ub77c\uc6b0\uc800\uac00 \ud074\ub9bd\ubcf4\ub4dc \uc811\uadfc\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. Ctrl+X\/C\/V \ub2e8\ucd95\ud0a4\ub97c \uc774\uc6a9\ud558\uc2ed\uc2dc\uc624.", +"Headers": "\uba38\ub9ac\uae00", +"Header 1": "\uba38\ub9ac\uae00 1", +"Header 2": "\uba38\ub9ac\uae00 2", +"Header 3": "\uba38\ub9ac\uae00 3", +"Header 4": "\uba38\ub9ac\uae00 4", +"Header 5": "\uba38\ub9ac\uae00 5", +"Header 6": "\uba38\ub9ac\uae00 6", +"Headings": "\uc81c\ubaa9", +"Heading 1": "\uc81c\ubaa9 1", +"Heading 2": "\uc81c\ubaa9 2", +"Heading 3": "\uc81c\ubaa9 3", +"Heading 4": "\uc81c\ubaa9 4", +"Heading 5": "\uc81c\ubaa9 5", +"Heading 6": "\uc81c\ubaa9 6", +"Preformatted": "\uc11c\uc2dd \ubbf8\uc124\uc815", +"Div": "Div", +"Pre": "Pre", +"Code": "\ucf54\ub4dc", +"Paragraph": "\ub2e8\ub77d", +"Blockquote": "\uc778\uc6a9\ubb38", +"Inline": "\uc778\ub77c\uc778", +"Blocks": "\ube14\ub85d", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\uc2a4\ud0c0\uc77c\ubcf5\uc0ac \ub044\uae30. \uc774 \uc635\uc158\uc744 \ub044\uae30 \uc804\uc5d0\ub294 \ubcf5\uc0ac \uc2dc, \uc2a4\ud0c0\uc77c\uc774 \ubcf5\uc0ac\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.", +"Fonts": "\uae00\uaf34", +"Font Sizes": "\uae00\uaf34 \ud06c\uae30", +"Class": "\ud074\ub798\uc2a4", +"Browse for an image": "\uc774\ubbf8\uc9c0 \ucc3e\uae30", +"OR": "\ub610\ub294", +"Drop an image here": "\uc5ec\uae30\ub85c \uc774\ubbf8\uc9c0 \ub04c\uc5b4\uc624\uae30", +"Upload": "\uc5c5\ub85c\ub4dc", +"Block": "\ube14\ub85d", +"Align": "\uc815\ub82c", +"Default": "\uae30\ubcf8", +"Circle": "\uc6d0", +"Disc": "\uc6d0\ubc18", +"Square": "\uc0ac\uac01", +"Lower Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790", +"Lower Greek": "\uadf8\ub9ac\uc2a4\uc5b4 \uc18c\ubb38\uc790", +"Lower Roman": "\ub85c\ub9c8\uc790 \uc18c\ubb38\uc790", +"Upper Alpha": "\uc54c\ud30c\ubcb3 \uc18c\ubb38\uc790", +"Upper Roman": "\ub85c\ub9c8\uc790 \ub300\ubb38\uc790", +"Anchor...": "\uc575\ucee4...", +"Name": "\uc774\ub984", +"Id": "\uc544\uc774\ub514", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\uc544\uc774\ub514\ub294 \ubb38\uc790, \uc22b\uc790, \ub300\uc2dc, \uc810, \ucf5c\ub860 \ub610\ub294 \ubc11\uc904\ub85c \uc2dc\uc791\ud574\uc57c\ud569\ub2c8\ub2e4.", +"You have unsaved changes are you sure you want to navigate away?": "\uc800\uc7a5\ud558\uc9c0 \uc54a\uc740 \uc815\ubcf4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uc774 \ud398\uc774\uc9c0\ub97c \ubc97\uc5b4\ub098\uc2dc\uaca0\uc2b5\ub2c8\uae4c?", +"Restore last draft": "\ub9c8\uc9c0\ub9c9 \ucd08\uc548 \ubcf5\uc6d0", +"Special characters...": "\ud2b9\uc218 \ubb38\uc790...", +"Source code": "\uc18c\uc2a4\ucf54\ub4dc", +"Insert\/Edit code sample": "\ucf54\ub4dc\uc0d8\ud50c \uc0bd\uc785\/\ud3b8\uc9d1", +"Language": "\uc5b8\uc5b4", +"Code sample...": "\ucf54\ub4dc \uc0d8\ud50c...", +"Color Picker": "\uc0c9 \uc120\ud0dd\uae30", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\uc67c\ucabd\uc5d0\uc11c \uc624\ub978\ucabd", +"Right to left": "\uc624\ub978\ucabd\uc5d0\uc11c \uc67c\ucabd", +"Emoticons...": "\uc774\ubaa8\ud2f0\ucf58...", +"Metadata and Document Properties": "\uba54\ud0c0\ub370\uc774\ud130\uc640 \ubb38\uc11c \uc18d\uc131", +"Title": "\uc81c\ubaa9", +"Keywords": "\ud0a4\uc6cc\ub4dc", +"Description": "\uc124\uba85", +"Robots": "\ub85c\ubd07", +"Author": "\uc800\uc790", +"Encoding": "\uc778\ucf54\ub529", +"Fullscreen": "\uc804\uccb4\ud654\uba74", +"Action": "\ub3d9\uc791", +"Shortcut": "\ub2e8\ucd95\ud0a4", +"Help": "\ub3c4\uc6c0\ub9d0", +"Address": "\uc8fc\uc18c", +"Focus to menubar": "\uba54\ub274\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to toolbar": "\ud234\ubc14\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to element path": "element path\uc5d0 \ud3ec\ucee4\uc2a4", +"Focus to contextual toolbar": "\ucf04\ud14d\uc2a4\ud2b8 \ud234\ubc14\uc5d0 \ud3ec\ucee4\uc2a4", +"Insert link (if link plugin activated)": "\ub9c1\ud06c \uc0bd\uc785 (link \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Save (if save plugin activated)": "\uc800\uc7a5 (save \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Find (if searchreplace plugin activated)": "\ucc3e\uae30(searchreplace \ud50c\ub7ec\uadf8\uc778\uc774 \ud65c\uc131\ud654\ub41c \uc0c1\ud0dc\uc5d0\uc11c)", +"Plugins installed ({0}):": "\uc124\uce58\ub41c \ud50c\ub7ec\uadf8\uc778 ({0}):", +"Premium plugins:": "\uace0\uae09 \ud50c\ub7ec\uadf8\uc778", +"Learn more...": "\uc880 \ub354 \uc0b4\ud3b4\ubcf4\uae30", +"You are using {0}": "{0}\ub97c \uc0ac\uc6a9\uc911", +"Plugins": "\ud50c\ub7ec\uadf8\uc778", +"Handy Shortcuts": "\ub2e8\ucd95\ud0a4", +"Horizontal line": "\uac00\ub85c", +"Insert\/edit image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785\/\uc218\uc815", +"Image description": "\uc774\ubbf8\uc9c0 \uc124\uba85", +"Source": "\uc18c\uc2a4", +"Dimensions": "\ud06c\uae30", +"Constrain proportions": "\uc791\uc5c5 \uc81c\ud55c", +"General": "\uc77c\ubc18", +"Advanced": "\uace0\uae09", +"Style": "\uc2a4\ud0c0\uc77c", +"Vertical space": "\uc218\uc9c1 \uacf5\ubc31", +"Horizontal space": "\uc218\ud3c9 \uacf5\ubc31", +"Border": "\ud14c\ub450\ub9ac", +"Insert image": "\uc774\ubbf8\uc9c0 \uc0bd\uc785", +"Image...": "\uc774\ubbf8\uc9c0...", +"Image list": "\uc774\ubbf8\uc9c0 \ubaa9\ub85d", +"Rotate counterclockwise": "\uc2dc\uacc4\ubc18\ub300\ubc29\ud5a5\uc73c\ub85c \ud68c\uc804", +"Rotate clockwise": "\uc2dc\uacc4\ubc29\ud5a5\uc73c\ub85c \ud68c\uc804", +"Flip vertically": "\uc218\uc9c1 \ub4a4\uc9d1\uae30", +"Flip horizontally": "\uc218\ud3c9 \ub4a4\uc9d1\uae30", +"Edit image": "\uc774\ubbf8\uc9c0 \ud3b8\uc9d1", +"Image options": "\uc774\ubbf8\uc9c0 \uc635\uc158", +"Zoom in": "\ud655\ub300", +"Zoom out": "\ucd95\uc18c", +"Crop": "\uc790\ub974\uae30", +"Resize": "\ud06c\uae30 \uc870\uc808", +"Orientation": "\ubc29\ud5a5", +"Brightness": "\ubc1d\uae30", +"Sharpen": "\uc120\uba85\ud558\uac8c", +"Contrast": "\ub300\ube44", +"Color levels": "\uc0c9\uc0c1\ub808\ubca8", +"Gamma": "\uac10\ub9c8", +"Invert": "\ubc18\uc804", +"Apply": "\uc801\uc6a9", +"Back": "\ub4a4\ub85c", +"Insert date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04\uc0bd\uc785", +"Date\/time": "\ub0a0\uc9dc\/\uc2dc\uac04", +"Insert\/Edit Link": "\ub9c1\ud06c \uc0bd\uc785\/\ud3b8\uc9d1", +"Insert\/edit link": "\ub9c1\ud06c \uc0bd\uc785\/\uc218\uc815", +"Text to display": "\ubcf8\ubb38", +"Url": "\uc8fc\uc18c", +"Open link in...": "...\uc5d0\uc11c \ub9c1\ud06c \uc5f4\uae30", +"Current window": "\ud604\uc7ac \ucc3d", +"None": "\uc5c6\uc74c", +"New window": "\uc0c8\ucc3d", +"Remove link": "\ub9c1\ud06c\uc0ad\uc81c", +"Anchors": "\ucc45\uac08\ud53c", +"Link...": "\ub9c1\ud06c...", +"Paste or type a link": "\ub9c1\ud06c\ub97c \ubd99\uc5ec\ub123\uac70\ub098 \uc785\ub825\ud558\uc138\uc694", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\ud604\uc7ac E-mail\uc8fc\uc18c\ub97c \uc785\ub825\ud558\uc168\uc2b5\ub2c8\ub2e4. E-mail \uc8fc\uc18c\uc5d0 \ub9c1\ud06c\ub97c \uac78\uae4c\uc694?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\ud604\uc7ac \uc6f9\uc0ac\uc774\ud2b8 \uc8fc\uc18c\ub97c \uc785\ub825\ud558\uc168\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 \uc8fc\uc18c\uc5d0 \ub9c1\ud06c\ub97c \uac78\uae4c\uc694?", +"Link list": "\ub9c1\ud06c \ub9ac\uc2a4\ud2b8", +"Insert video": "\ube44\ub514\uc624 \uc0bd\uc785", +"Insert\/edit video": "\ube44\ub514\uc624 \uc0bd\uc785\/\uc218\uc815", +"Insert\/edit media": "\ubbf8\ub514\uc5b4 \uc0bd\uc785\/\uc218\uc815", +"Alternative source": "\ub300\uccb4 \uc18c\uc2a4", +"Alternative source URL": "\ub300\uccb4 \uc6d0\ubcf8 URL", +"Media poster (Image URL)": "\ub300\ud45c \uc774\ubbf8\uc9c0(\uc774\ubbf8\uc9c0 URL)", +"Paste your embed code below:": "\uc544\ub798\uc5d0 \ucf54\ub4dc\ub97c \ubd99\uc5ec\ub123\uc73c\uc138\uc694:", +"Embed": "\uc0bd\uc785", +"Media...": "\ubbf8\ub514\uc5b4...", +"Nonbreaking space": "\ub744\uc5b4\uc4f0\uae30", +"Page break": "\ud398\uc774\uc9c0 \uad6c\ubd84\uc790", +"Paste as text": "\ud14d\uc2a4\ud2b8\ub85c \ubd99\uc5ec\ub123\uae30", +"Preview": "\ubbf8\ub9ac\ubcf4\uae30", +"Print...": "\uc778\uc1c4...", +"Save": "\uc800\uc7a5", +"Find": "\ucc3e\uae30", +"Replace with": "\uad50\uccb4", +"Replace": "\uad50\uccb4", +"Replace all": "\uc804\uccb4 \uad50\uccb4", +"Previous": "\uc774\uc804", +"Next": "\ub2e4\uc74c", +"Find and replace...": "\ucc3e\uae30 \ubc0f \ubc14\uafb8\uae30...", +"Could not find the specified string.": "\ubb38\uc790\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.", +"Match case": "\ub300\uc18c\ubb38\uc790 \uc77c\uce58", +"Find whole words only": "\ubaa8\ub450 \uc77c\uce58\ud558\ub294 \ubb38\uc790 \ucc3e\uae30", +"Spell check": "\ub9de\ucda4\ubc95 \uac80\uc0ac", +"Ignore": "\ubb34\uc2dc", +"Ignore all": "\uc804\uccb4\ubb34\uc2dc", +"Finish": "\uc644\ub8cc", +"Add to Dictionary": "\uc0ac\uc804\uc5d0 \ucd94\uac00", +"Insert table": "\ud14c\uc774\ube14 \uc0bd\uc785", +"Table properties": "\ud14c\uc774\ube14 \uc18d\uc131", +"Delete table": "\ud14c\uc774\ube14 \uc0ad\uc81c", +"Cell": "\uc140", +"Row": "\uc5f4", +"Column": "\ud589", +"Cell properties": "\uc140 \uc18d", +"Merge cells": "\uc140 \ud569\uce58\uae30", +"Split cell": "\uc140 \ub098\ub204\uae30", +"Insert row before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785", +"Insert row after": "\ub2e4\uc74c\uc5d0 \ud589 \uc0bd\uc785", +"Delete row": "\ud589 \uc9c0\uc6b0\uae30", +"Row properties": "\ud589 \uc18d\uc131", +"Cut row": "\ud589 \uc798\ub77c\ub0b4\uae30", +"Copy row": "\ud589 \ubcf5\uc0ac", +"Paste row before": "\uc774\uc804\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30", +"Paste row after": "\ub2e4\uc74c\uc5d0 \ud589 \ubd99\uc5ec\ub123\uae30", +"Insert column before": "\uc774\uc804\uc5d0 \ud589 \uc0bd\uc785", +"Insert column after": "\ub2e4\uc74c\uc5d0 \uc5f4 \uc0bd\uc785", +"Delete column": "\uc5f4 \uc9c0\uc6b0\uae30", +"Cols": "\uc5f4", +"Rows": "\ud589", +"Width": "\ub113\uc774", +"Height": "\ub192\uc774", +"Cell spacing": "\uc140 \uac04\uaca9", +"Cell padding": "\uc140 \uc548\ucabd \uc5ec\ubc31", +"Show caption": "\ucea1\uc158 \ud45c\uc2dc", +"Left": "\uc67c\ucabd", +"Center": "\uac00\uc6b4\ub370", +"Right": "\uc624\ub978\ucabd", +"Cell type": "\uc140 \ud0c0\uc785", +"Scope": "\ubc94\uc704", +"Alignment": "\uc815\ub82c", +"H Align": "\uac00\ub85c \uc815\ub82c", +"V Align": "\uc138\ub85c \uc815\ub82c", +"Top": "\uc0c1\ub2e8", +"Middle": "\uc911\uac04", +"Bottom": "\ud558\ub2e8", +"Header cell": "\ud5e4\ub354 \uc140", +"Row group": "\ud589 \uadf8\ub8f9", +"Column group": "\uc5f4 \uadf8\ub8f9", +"Row type": "\ud589 \ud0c0\uc785", +"Header": "\ud5e4\ub354", +"Body": "\ubc14\ub514", +"Footer": "\ud478\ud130", +"Border color": "\ud14c\ub450\ub9ac \uc0c9", +"Insert template...": "\ud15c\ud50c\ub9bf \uc0bd\uc785...", +"Templates": "\ud15c\ud50c\ub9bf", +"Template": "\ud15c\ud50c\ub9bf", +"Text color": "\ubb38\uc790 \uc0c9\uae54", +"Background color": "\ubc30\uacbd\uc0c9", +"Custom...": "\uc9c1\uc811 \uc0c9\uae54 \uc9c0\uc815\ud558\uae30", +"Custom color": "\uc9c1\uc811 \uc9c0\uc815\ud55c \uc0c9\uae54", +"No color": "\uc0c9\uc0c1 \uc5c6\uc74c", +"Remove color": "\uc0c9 \uc81c\uac70", +"Table of Contents": "\ubaa9\ucc28", +"Show blocks": "\ube14\ub7ed \ubcf4\uc5ec\uc8fc\uae30", +"Show invisible characters": "\uc548\ubcf4\uc774\ub294 \ubb38\uc790 \ubcf4\uc774\uae30", +"Word count": "\ub2e8\uc5b4 \uc218", +"Words: {0}": "\ub2e8\uc5b4: {0}", +"{0} words": "{0} \ub2e8\uc5b4", +"File": "\ud30c\uc77c", +"Edit": "\uc218\uc815", +"Insert": "\uc0bd\uc785", +"View": "\ubcf4\uae30", +"Format": "\ud3ec\ub9f7", +"Table": "\ud14c\uc774\ube14", +"Tools": "\ub3c4\uad6c", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8 \ud3b8\uc9d1\uae30 \uc785\ub2c8\ub2e4. ALT-F9\ub97c \ub204\ub974\uba74 \uba54\ub274, ALT-F10\ub97c \ub204\ub974\uba74 \ud234\ubc14, ALT-0\uc744 \ub204\ub974\uba74 \ub3c4\uc6c0\ub9d0\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.", +"Image title": "\uc774\ubbf8\uc9c0 \uc81c\ubaa9", +"Border width": "\ud14c\ub450\ub9ac \ub450\uaed8", +"Border style": "\ud14c\ub450\ub9ac \uc2a4\ud0c0\uc77c", +"Error": "\uc624\ub958", +"Warn": "\uacbd\uace0", +"Valid": "\uc720\ud6a8\ud568", +"To open the popup, press Shift+Enter": "\ud31d\uc5c5\uc744 \uc5f4\ub824\uba74 Shift+Enter\ub97c \ub204\ub974\uc2ed\uc2dc\uc624.", +"Rich Text Area. Press ALT-0 for help.": "\uc11c\uc2dd \uc788\ub294 \ud14d\uc2a4\ud2b8 \uc601\uc5ed. ALT-0\uc744 \ub204\ub974\uba74 \ub3c4\uc6c0\ub9d0\uc744 \ubcfc \uc218 \uc788\uc2b5\ub2c8\ub2e4.", +"System Font": "\uc2dc\uc2a4\ud15c \uae00\uaf34", +"Failed to upload image: {0}": "\uc774\ubbf8\uc9c0 \uc5c5\ub85c\ub4dc \uc2e4\ud328: {0}", +"Failed to load plugin: {0} from url {1}": "\ud50c\ub7ec\uadf8\uc778 \ub85c\ub4dc \uc2e4\ud328: URL: {1}\uc5d0\uc11c\uc758 {0}", +"Failed to load plugin url: {0}": "\ud50c\ub7ec\uadf8\uc778 URL \ub85c\ub4dc \uc2e4\ud328: {0}", +"Failed to initialize plugin: {0}": "\ud50c\ub7ec\uadf8\uc778 \ucd08\uae30\ud654 \uc2e4\ud328: {0}", +"example": "\uc608\uc81c", +"Search": "\uac80\uc0c9", +"All": "\ubaa8\ub450", +"Currency": "\ud1b5\ud654", +"Text": "\ud14d\uc2a4\ud2b8", +"Quotations": "\uc778\uc6a9\ubb38", +"Mathematical": "\uc218\ud559", +"Extended Latin": "\ud655\uc7a5 \ub77c\ud2f4\uc5b4", +"Symbols": "\uae30\ud638", +"Arrows": "\ud654\uc0b4\ud45c", +"User Defined": "\uc0ac\uc6a9\uc790 \uc815\uc758", +"dollar sign": "\ub2ec\ub7ec \uae30\ud638", +"currency sign": "\ud1b5\ud654 \uae30\ud638", +"euro-currency sign": "\uc720\ub85c\ud654 \uae30\ud638", +"colon sign": "\ucf5c\ub860 \uae30\ud638", +"cruzeiro sign": "\ud06c\ub8e8\uc81c\uc774\ub8e8 \uae30\ud638", +"french franc sign": "\ud504\ub791\uc2a4 \ud504\ub791 \uae30\ud638", +"lira sign": "\ub9ac\ub77c \uae30\ud638", +"mill sign": "\ubc00 \uae30\ud638", +"naira sign": "\ub098\uc774\ub77c \uae30\ud638", +"peseta sign": "\ud398\uc138\ud0c0 \uae30\ud638", +"rupee sign": "\ub8e8\ud53c \uae30\ud638", +"won sign": "\uc6d0 \uae30\ud638", +"new sheqel sign": "\ub274 \uc138\ucf08 \uae30\ud638", +"dong sign": "\ub3d9 \uae30\ud638", +"kip sign": "\ud0b5 \uae30\ud638", +"tugrik sign": "\ud22c\uadf8\ub9ac\ud06c \uae30\ud638", +"drachma sign": "\ub4dc\ub77c\ud06c\ub9c8 \uae30\ud638", +"german penny symbol": "\ub3c5\uc77c \ud398\ub2c8 \uae30\ud638", +"peso sign": "\ud398\uc18c \uae30\ud638", +"guarani sign": "\uacfc\ub77c\ub2c8 \uae30\ud638", +"austral sign": "\uc544\uc6b0\uc2a4\ud2b8\ub784 \uae30\ud638", +"hryvnia sign": "\uadf8\ub9ac\ube0c\ub098 \uae30\ud638", +"cedi sign": "\uc138\ub514 \uae30\ud638", +"livre tournois sign": "\ub9ac\ube0c\ub974 \ud2b8\ub974\ub204\uc544 \uae30\ud638", +"spesmilo sign": "\uc2a4\ud398\uc2a4\ubc00\ub85c \uae30\ud638", +"tenge sign": "\ud161\uac8c \uae30\ud638", +"indian rupee sign": "\uc778\ub3c4 \ub8e8\ud53c \uae30\ud638", +"turkish lira sign": "\ud130\ud0a4 \ub9ac\ub77c \uae30\ud638", +"nordic mark sign": "\ub178\ub974\ub515 \ub9c8\ub974\ud06c \uae30\ud638", +"manat sign": "\ub9c8\ub098\ud2b8 \uae30\ud638", +"ruble sign": "\ub8e8\ube14 \uae30\ud638", +"yen character": "\uc5d4 \uae30\ud638", +"yuan character": "\uc704\uc548 \uae30\ud638", +"yuan character, in hong kong and taiwan": "\ub300\ub9cc \uc704\uc548 \uae30\ud638", +"yen\/yuan character variant one": "\uc5d4\/\uc704\uc548 \ubb38\uc790 \ubcc0\ud615", +"Loading emoticons...": "\uc774\ubaa8\ud2f0\ucf58 \ubd88\ub7ec\uc624\ub294 \uc911...", +"Could not load emoticons": "\uc774\ubaa8\ud2f0\ucf58\uc744 \ubd88\ub7ec\uc62c \uc218 \uc5c6\uc74c", +"People": "\uc0ac\ub78c", +"Animals and Nature": "\ub3d9\ubb3c\uacfc \uc790\uc5f0", +"Food and Drink": "\uc74c\uc2dd\uacfc \uc74c\ub8cc", +"Activity": "\ud65c\ub3d9", +"Travel and Places": "\uc5ec\ud589\uacfc \uc7a5\uc18c", +"Objects": "\ubb3c\uac74", +"Flags": "\uae43\ubc1c", +"Characters": "\ubb38\uc790", +"Characters (no spaces)": "\ubb38\uc790(\uacf5\ubc31 \uc5c6\uc74c)", +"Error: Form submit field collision.": "\uc624\ub958: \uc591\uc2dd \uc81c\ucd9c \ud544\ub4dc \ubd88\uc77c\uce58", +"Error: No form element found.": "\uc624\ub958: \uc591\uc2dd \ud56d\ubaa9 \uc5c6\uc74c", +"Update": "\uc5c5\ub370\uc774\ud2b8", +"Color swatch": "\uc0c9\uc0c1 \uacac\ubcf8", +"Turquoise": "\uccad\ub85d\uc0c9", +"Green": "\ucd08\ub85d\uc0c9", +"Blue": "\ud30c\ub780\uc0c9", +"Purple": "\ubcf4\ub77c\uc0c9", +"Navy Blue": "\ub0a8\uc0c9", +"Dark Turquoise": "\uc9c4\ud55c \uccad\ub85d\uc0c9", +"Dark Green": "\uc9c4\ud55c \ucd08\ub85d\uc0c9", +"Medium Blue": "\uc911\uac04 \ud30c\ub780\uc0c9", +"Medium Purple": "\uc911\uac04 \ubcf4\ub77c\uc0c9", +"Midnight Blue": "\uc9c4\ud55c \ud30c\ub780\uc0c9", +"Yellow": "\ub178\ub780\uc0c9", +"Orange": "\uc8fc\ud669\uc0c9", +"Red": "\ube68\uac04\uc0c9", +"Light Gray": "\ubc1d\uc740 \ud68c\uc0c9", +"Gray": "\ud68c\uc0c9", +"Dark Yellow": "\uc9c4\ud55c \ub178\ub780\uc0c9", +"Dark Orange": "\uc9c4\ud55c \uc8fc\ud669\uc0c9", +"Dark Red": "\uc9c4\ud55c \ube68\uac04\uc0c9", +"Medium Gray": "\uc911\uac04 \ud68c\uc0c9", +"Dark Gray": "\uc9c4\ud55c \ud68c\uc0c9", +"Black": "\uac80\uc740\uc0c9", +"White": "\ud770\uc0c9", +"Switch to or from fullscreen mode": "\uc804\uccb4 \ud654\uba74\uc73c\ub85c\/\uc5d0\uc11c \uc804\ud658", +"Open help dialog": "\ub3c4\uc6c0\ub9d0 \ub300\ud654\ucc3d \uc5f4\uae30", +"history": "\uae30\ub85d", +"styles": "\uc2a4\ud0c0\uc77c", +"formatting": "\ud3ec\ub9f7\ud305", +"alignment": "\uc815\ub82c", +"indentation": "\ub4e4\uc5ec\uc4f0\uae30", +"permanent pen": "\uc720\uc131\ud39c", +"comments": "\uc8fc\uc11d", +"Anchor": "\uc575\ucee4", +"Special character": "\ud2b9\uc218\ubb38\uc790", +"Code sample": "\ucf54\ub4dc\uc0d8\ud50c", +"Color": "\uc0c9\uc0c1", +"Emoticons": "\uc774\ubaa8\ud2f0\ucf58", +"Document properties": "\ubb38\uc11c \uc18d\uc131", +"Image": "\uc774\ubbf8\uc9c0", +"Insert link": "\ub9c1\ud06c \uc0bd\uc785 ", +"Target": "\ub300\uc0c1", +"Link": "\ub9c1\ud06c", +"Poster": "\ud3ec\uc2a4\ud130", +"Media": "\ubbf8\ub514\uc5b4", +"Print": "\ucd9c\ub825", +"Prev": "\uc774\uc804", +"Find and replace": "\ucc3e\uc544\uc11c \uad50\uccb4", +"Whole words": "\uc804\uccb4 \ub2e8\uc5b4", +"Spellcheck": "\ubb38\ubc95\uccb4\ud06c", +"Caption": "\ucea1\uc158", +"Insert template": "\ud15c\ud50c\ub9bf \uc0bd\uc785" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/lt.js b/common/plugins/editors/tinymce/media/langs/lt.js new file mode 100755 index 0000000000000000000000000000000000000000..42de285726544659e07d5e50ae32747a5519f4a8 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/lt.js @@ -0,0 +1,389 @@ +tinymce.addI18n('lt',{ +"Redo": "Gr\u0105\u017einti", +"Undo": "Atstatyti", +"Cut": "I\u0161kirpti", +"Copy": "Kopijuoti", +"Paste": "\u012ed\u0117ti", +"Select all": "Pa\u017eym\u0117ti visk\u0105", +"New document": "Naujas dokumentas", +"Ok": "Gerai", +"Cancel": "Atsisakyti", +"Visual aids": "Vaizdin\u0117s priemon\u0117s", +"Bold": "Pary\u0161kintas", +"Italic": "Kursyvinis", +"Underline": "Pabrauktas", +"Strikethrough": "Perbrauktas", +"Superscript": "Vir\u0161utinis indeksas", +"Subscript": "Apatinis indeksas", +"Clear formatting": "Naikinti formatavim\u0105", +"Align left": "Lygiuoti kair\u0117je", +"Align center": "Centruoti", +"Align right": "Lygiuoti de\u0161in\u0117je", +"Justify": "I\u0161d\u0117styti per vis\u0105 plot\u012f", +"Bullet list": "\u017denklinimo s\u0105ra\u0161as", +"Numbered list": "Skaitmeninis s\u0105ra\u0161as", +"Decrease indent": "Ma\u017einti \u012ftrauk\u0105", +"Increase indent": "Didinti \u012ftrauk\u0105", +"Close": "U\u017edaryti", +"Formats": "Formatai", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nar\u0161ykl\u0117s nustatymai neleid\u017eia redaktoriui tiesiogiai pasiekti laikinosios atminties. Pra\u0161ome naudoti klaviat\u016bros klavi\u0161us Ctrl+X\/C\/V.", +"Headers": "Antra\u0161t\u0117s", +"Header 1": "Antra\u0161t\u0117 1", +"Header 2": "Antra\u0161t\u0117 2", +"Header 3": "Antra\u0161t\u0117 3", +"Header 4": "Antra\u0161t\u0117 4", +"Header 5": "Antra\u0161t\u0117 5", +"Header 6": "Antra\u0161t\u0117 6", +"Headings": "Antra\u0161t\u0117s", +"Heading 1": "Antra\u0161t\u0117 1", +"Heading 2": "Antra\u0161t\u0117 2", +"Heading 3": "Antra\u0161t\u0117 3", +"Heading 4": "Antra\u0161t\u0117 4", +"Heading 5": "Antra\u0161t\u0117 5", +"Heading 6": "Antra\u0161t\u0117 6", +"Preformatted": "Suformuotas i\u0161 anksto", +"Div": "Div", +"Pre": "Pre", +"Code": "Kodas", +"Paragraph": "Paragrafas", +"Blockquote": "Citata", +"Inline": "Inline", +"Blocks": "Blokai", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Dabar \u012fterpiama paprastojo teksto re\u017eimu. Kol \u0161i parinktis \u012fjungta, turinys bus \u012fterptas kaip paprastas tekstas.", +"Fonts": "\u0160riftai", +"Font Sizes": "\u0160rifto dyd\u017eiai", +"Class": "Klas\u0117", +"Browse for an image": "Ie\u0161koti paveiksl\u0117lio", +"OR": "ARBA", +"Drop an image here": "Tempkite paveiksl\u0117l\u012f \u010dia", +"Upload": "\u012ekelti", +"Block": "Blokas", +"Align": "Lygiavimas", +"Default": "Pagrindinis", +"Circle": "Apskritimas", +"Disc": "Diskas", +"Square": "Kvadratas", +"Lower Alpha": "Ma\u017eosios raid\u0117s", +"Lower Greek": "Ma\u017eosios graik\u0173", +"Lower Roman": "Ma\u017eosios rom\u0117n\u0173", +"Upper Alpha": "Did\u017eiosios raid\u0117s", +"Upper Roman": "Did\u017eiosios rom\u0117n\u0173", +"Anchor...": "Nuoroda...", +"Name": "Pavadinimas", +"Id": "ID", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID turi prasid\u0117ti raide, po kurios gali b\u016bti raid\u0117s, skai\u010diai, br\u016bk\u0161niai, ta\u0161kai, kabliata\u0161kiai ar apatiniai pabraukimai.", +"You have unsaved changes are you sure you want to navigate away?": "Turite nei\u0161saugot\u0173 pakeitim\u0173! Ar tikrai norite i\u0161eiti?", +"Restore last draft": "Atstatyti paskutin\u012f projekt\u0105", +"Special characters...": "Specialieji simboliai...", +"Source code": "Pirminis \u0161altinis", +"Insert\/Edit code sample": "Prid\u0117ti \/ keisti kodo pavyzd\u012f", +"Language": "Kalba", +"Code sample...": "Kodo pavyzdys...", +"Color Picker": "Spalvos parinkimas", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "I\u0161 kair\u0117s \u012f de\u0161in\u0119", +"Right to left": "I\u0161 de\u0161in\u0117s \u012f kair\u0119", +"Emoticons...": "Jaustukai...", +"Metadata and Document Properties": "Meta duomenys ir dokumento ypatyb\u0117s", +"Title": "Pavadinimas", +"Keywords": "\u017dymos", +"Description": "Apra\u0161as", +"Robots": "Robotai", +"Author": "Autorius", +"Encoding": "Kodavimas", +"Fullscreen": "Visas ekranas", +"Action": "Veiksmas", +"Shortcut": "Nuoroda", +"Help": "Pagalba", +"Address": "Adresas", +"Focus to menubar": "Fokusuoti \u012f meniu", +"Focus to toolbar": "Fokusuoti \u012f \u012franki\u0173 juost\u0105", +"Focus to element path": "Fokusuoti \u012f elemento keli\u0105", +"Focus to contextual toolbar": "Fokusuoti \u012f kontekstin\u012f \u012franki\u0173 juost\u0105", +"Insert link (if link plugin activated)": "Prid\u0117ti nuorod\u0105 (jei link priedas aktyvuotas)", +"Save (if save plugin activated)": "I\u0161saugoti (jei save priedas aktyvuotas)", +"Find (if searchreplace plugin activated)": "Ie\u0161koti (jei searchreplace priedas aktyvuotas)", +"Plugins installed ({0}):": "\u012ediegti priedai ({0}):", +"Premium plugins:": "Mokami priedai:", +"Learn more...": "Su\u017einoti daugiau...", +"You are using {0}": "Naudojate {0}", +"Plugins": "Priedai", +"Handy Shortcuts": "Patogios nuorodos", +"Horizontal line": "Horizontali linija", +"Insert\/edit image": "\u012eterpti|Tvarkyti paveiksl\u0117l\u012f", +"Image description": "Paveiksl\u0117lio apra\u0161as", +"Source": "Pirmin\u0117 nuoroda", +"Dimensions": "Matmenys", +"Constrain proportions": "Laikytis proporcij\u0173", +"General": "Bendra", +"Advanced": "I\u0161pl\u0117stas", +"Style": "Stilius", +"Vertical space": "Vertikalus tarpas", +"Horizontal space": "Horizontalus tarpas", +"Border": "R\u0117melis", +"Insert image": "\u012eterpti paveiksl\u0117l\u012f", +"Image...": "Paveiksl\u0117lis...", +"Image list": "Paveiksl\u0117li\u0173 s\u0105ra\u0161as", +"Rotate counterclockwise": "Pasukti prie\u0161 laikrod\u017eio rodykl\u0119", +"Rotate clockwise": "Pasukti pagal laikrod\u017eio rodykl\u0119", +"Flip vertically": "Apversti vertikaliai", +"Flip horizontally": "Apversti horizontaliai", +"Edit image": "Redaguoti paveiksl\u0117l\u012f", +"Image options": "Paveiksl\u0117lio nustatymai", +"Zoom in": "Priartinti", +"Zoom out": "Atitolinti", +"Crop": "Atkarpyti", +"Resize": "Keisti dyd\u012f", +"Orientation": "Pasukimas", +"Brightness": "\u0160viesumas", +"Sharpen": "Ry\u0161kumas", +"Contrast": "Kontrastas", +"Color levels": "Spalv\u0173 lygiai", +"Gamma": "Gama", +"Invert": "Prie\u0161ingos spalvos", +"Apply": "Taikyti", +"Back": "Atgal", +"Insert date\/time": "\u012eterpti dat\u0105\/laik\u0105", +"Date\/time": "Data \/ laikas", +"Insert\/Edit Link": "Prid\u0117ti\/Keisti nuorod\u0105", +"Insert\/edit link": "\u012eterpti\/taisyti nuorod\u0105", +"Text to display": "Rodomas tekstas", +"Url": "Nuoroda", +"Open link in...": "Nuorod\u0105 atverti...", +"Current window": "Dabartiniame lange", +"None": "Nieko", +"New window": "Naujas langas", +"Remove link": "\u0160alinti nuorod\u0105", +"Anchors": "\u017dym\u0117", +"Link...": "Nuoroda...", +"Paste or type a link": "\u012eklijuokite arba \u012fra\u0161ykite nuorod\u0105", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Atrodo, kad \u012fvesta nuoroda yra elektroninio pa\u0161to adresas. Ar norite prie\u0161 j\u012f \u012fvesti reikalaujam\u0105 \u201emailto:\u201c?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Atrodo, kad \u012fved\u0117te nuotolin\u0119 nuorod\u0105. Ar norite prie\u0161 j\u0105 \u012fvesti reikalaujam\u0105 \u201ehttp:\/\/\u201c?", +"Link list": "Nuorod\u0173 s\u0105ra\u0161as", +"Insert video": "\u012eterpti video", +"Insert\/edit video": "\u012eterpti\/tvarkyti video", +"Insert\/edit media": "Prid\u0117ti \/ keisti medij\u0105", +"Alternative source": "Alternatyvus \u0161altinis", +"Alternative source URL": "Alternatyvus \u0161altinio URL adresas", +"Media poster (Image URL)": "medijos skelbiklis (paveiksl\u0117lio URL adresas)", +"Paste your embed code below:": "\u012eterpkite kod\u0105 \u017eemiau:", +"Embed": "\u012eterpti", +"Media...": "Medija...", +"Nonbreaking space": "Nepertraukiamos vietos", +"Page break": "Puslapio skirtukas", +"Paste as text": "\u012eklijuoti kaip tekst\u0105", +"Preview": "Per\u017ei\u016bra", +"Print...": "Spausdinti...", +"Save": "I\u0161saugoti", +"Find": "Ie\u0161koti", +"Replace with": "Kuo pakeisti", +"Replace": "Pakeisti", +"Replace all": "Pakeisti visk\u0105", +"Previous": "Ankstesnis", +"Next": "Sekantis", +"Find and replace...": "Ie\u0161koti ir pakeisti...", +"Could not find the specified string.": "Nepavyko rasti nurodytos eilut\u0117s.", +"Match case": "Atitinkamus", +"Find whole words only": "Ie\u0161koti tik vis\u0105 \u017eod\u012f", +"Spell check": "Klaid\u0173 tikrinimas", +"Ignore": "Ignoruoti", +"Ignore all": "Ignoruoti visk\u0105", +"Finish": "Baigti", +"Add to Dictionary": "Prid\u0117ti \u012f \u017dodyn\u0105", +"Insert table": "\u012eterpti lentel\u0119", +"Table properties": "Lentel\u0117s savyb\u0117s", +"Delete table": "\u0160alinti lentel\u0119", +"Cell": "Langeliai", +"Row": "Eilut\u0117s", +"Column": "Stulpelis", +"Cell properties": "Langelio savyb\u0117s", +"Merge cells": "Sujungti langelius", +"Split cell": "Skaidyti langelius", +"Insert row before": "\u012eterpti eilut\u0119 prie\u0161", +"Insert row after": "\u012eterpti eilut\u0119 po", +"Delete row": "Naikinti eilut\u0119", +"Row properties": "Eilut\u0117s savyb\u0117s", +"Cut row": "I\u0161kirpti eilut\u0119", +"Copy row": "Kopijuoti eilut\u0119", +"Paste row before": "\u012ed\u0117ti eilut\u0119 prie\u0161", +"Paste row after": "\u012ed\u0117ti eilut\u0119 po", +"Insert column before": "\u012eterpti stulpel\u012f prie\u0161", +"Insert column after": "\u012eterpti stulpel\u012f po", +"Delete column": "Naikinti stulpel\u012f", +"Cols": "Stulpeliai", +"Rows": "Eilut\u0117s", +"Width": "Plotis", +"Height": "Auk\u0161tis", +"Cell spacing": "Tarpas tarp langeli\u0173", +"Cell padding": "Tarpas nuo langelio iki teksto", +"Show caption": "Rodyti antra\u0161t\u0119", +"Left": "Kair\u0117", +"Center": "Centras", +"Right": "De\u0161in\u0117", +"Cell type": "Langelio tipas", +"Scope": "Strukt\u016bra", +"Alignment": "Lygiavimas", +"H Align": "H Lygiavimas", +"V Align": "V Lygiavimas", +"Top": "Vir\u0161uje", +"Middle": "Viduryje", +"Bottom": "Apa\u010dioje", +"Header cell": "Antra\u0161t\u0117s langelis", +"Row group": "Eilu\u010di\u0173 grup\u0117", +"Column group": "Stulpeli\u0173 grup\u0117", +"Row type": "Eilu\u010di\u0173 tipas", +"Header": "Antra\u0161t\u0117", +"Body": "Turinys", +"Footer": "Apa\u010dia", +"Border color": "R\u0117melio spalva", +"Insert template...": "Prid\u0117ti \u0161ablon\u0105...", +"Templates": "\u0160ablonai", +"Template": "\u0160ablonas", +"Text color": "Teksto spalva", +"Background color": "Fono spalva", +"Custom...": "Pasirinktinas...", +"Custom color": "Pasirinktina spalva", +"No color": "Jokios spalvos", +"Remove color": "Pa\u0161alinti spalv\u0105", +"Table of Contents": "Turinys", +"Show blocks": "Rodyti blokus", +"Show invisible characters": "Rodyti nematomus simbolius", +"Word count": "\u017dod\u017ei\u0173 kiekis", +"Words: {0}": "\u017dod\u017eiai: {0}", +"{0} words": "{0} \u017eod\u017eiai", +"File": "Failas", +"Edit": "Redaguoti", +"Insert": "\u012eterpti", +"View": "Per\u017ei\u016bra", +"Format": "Formatas", +"Table": "Lentel\u0117", +"Tools": "\u012erankiai", +"Powered by {0}": "Sukurta {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Suformatuoto teksto laukas. D\u0117l meniu spauskite ALT-F9. U\u017eduo\u010di\u0173 juostos \u012fjungimui spauskite ALT-F10. Pagalbai - spauskite ALT-0.", +"Image title": "Paveiksl\u0117lio pavadinimas", +"Border width": "Kra\u0161tin\u0117s plotis", +"Border style": "Kra\u0161tin\u0117s stilius", +"Error": "Klaida", +"Warn": "\u012esp\u0117ti", +"Valid": "Tinkamas", +"To open the popup, press Shift+Enter": "Spustel\u0117j\u0119 Shift+Enter atversite i\u0161kylant\u012f lang\u0105", +"Rich Text Area. Press ALT-0 for help.": "Rai\u0161kiojo teksto vieta. Spustel\u0117j\u0119 Alt-0 gausite pagalbos.", +"System Font": "Sisteminiai \u0161riftai", +"Failed to upload image: {0}": "Paveiksl\u0117lio \u012fkelti nepavyko: {0}", +"Failed to load plugin: {0} from url {1}": "Priedo \u012fkelti nepavyko: {0} i\u0161 adreso {1}", +"Failed to load plugin url: {0}": "Priedo adreso \u012fkelti nepavyko: {0}", +"Failed to initialize plugin: {0}": "Priedo inicijuoti nepavyko: {0}", +"example": "pavyzdys", +"Search": "Ie\u0161koti", +"All": "Visi", +"Currency": "Valiuta", +"Text": "Tekstas", +"Quotations": "Citata", +"Mathematical": "Matematinis", +"Extended Latin": "Lotyn\u0173 i\u0161pl\u0117stin\u0117", +"Symbols": "Simboliai", +"Arrows": "Rodykl\u0117s", +"User Defined": "Vartotojo apibr\u0117\u017eta", +"dollar sign": "dolerio \u017eenklas", +"currency sign": "valiutos \u017eenklas", +"euro-currency sign": "euro \u017eenklas", +"colon sign": "dvita\u0161kio \u017eenklas", +"cruzeiro sign": "kruzeiro \u017eenklas", +"french franc sign": "Pranc\u016bz\u0173 franko \u017eenklas", +"lira sign": "lyros \u017eenklas", +"mill sign": "milo simbolis", +"naira sign": "nairos simbolis", +"peseta sign": "peseto \u017eenklas", +"rupee sign": "rupijos \u017eenklas", +"won sign": "vono \u017eenklas", +"new sheqel sign": "naujojo \u0161ekelio \u017eenklas", +"dong sign": "dongo \u017eenklas", +"kip sign": "kipo \u017eenklas", +"tugrik sign": "tugriko \u017eenklas", +"drachma sign": "drachmos \u017eenklas", +"german penny symbol": "Vokietijos fenigo \u017eenklas", +"peso sign": "peso \u017eenklas", +"guarani sign": "gvaranio \u017eenklas", +"austral sign": "australo \u017eenklas", +"hryvnia sign": "grivinos \u017eenklas", +"cedi sign": "sed\u017eio \u017eenklas", +"livre tournois sign": "toro svaro \u017eenklas", +"spesmilo sign": "spesmilo \u017eenklas", +"tenge sign": "teng\u0117s \u017eenklas", +"indian rupee sign": "Indijos rupijos \u017eenklas", +"turkish lira sign": "Turkijos lyros \u017eenklas", +"nordic mark sign": "\u0161iaur\u0117s \u0161ali\u0173 mark\u0117s \u017eenklas", +"manat sign": "manato \u017eenklas", +"ruble sign": "rublio \u017eenklas", +"yen character": "jienos simbolis", +"yuan character": "juanio simbolis", +"yuan character, in hong kong and taiwan": "juanio \u017eenklas, naudojamas Hongkonge ir Taivane", +"yen\/yuan character variant one": "jienos\/juanio vieningas \u017eenklas", +"Loading emoticons...": "\u012ekeliami jaustukai...", +"Could not load emoticons": "Nepavyko \u012fkelti jaustuk\u0173", +"People": "\u017dmon\u0117s", +"Animals and Nature": "Gyv\u016bnai ir gamta", +"Food and Drink": "Maistas ir g\u0117rimai", +"Activity": "Veikla", +"Travel and Places": "Kelion\u0117s ir vietos", +"Objects": "Objektai", +"Flags": "V\u0117liavos", +"Characters": "Simboli\u0173", +"Characters (no spaces)": "Simboli\u0173 (be tarp\u0173)", +"Error: Form submit field collision.": "Klaida: formos lauk\u0173 nesuderinamumas.", +"Error: No form element found.": "Klaida: formos element\u0173 nerasta.", +"Update": "Naujinti", +"Color swatch": "Spalv\u0173 pavyzd\u017eiai", +"Turquoise": "\u017dalsvai m\u0117lyna", +"Green": "\u017dalia", +"Blue": "M\u0117lyna", +"Purple": "Ro\u017ein\u0117", +"Navy Blue": "Tamsiai m\u0117lyna", +"Dark Turquoise": "Tamsiai \u017ealsvai m\u0117lyna", +"Dark Green": "Tamsiai \u017ealia", +"Medium Blue": "Vidutini\u0161kai m\u0117lyna", +"Medium Purple": "Vidutini\u0161kai violetin\u0117", +"Midnight Blue": "Vidurnak\u010dio m\u0117lyna", +"Yellow": "Geltona", +"Orange": "Oran\u017ein\u0117", +"Red": "Raudona", +"Light Gray": "\u0160viesiai pilka", +"Gray": "Pilka", +"Dark Yellow": "Tamsiai geltona", +"Dark Orange": "Tamsiai oran\u017ein\u0117", +"Dark Red": "Tamsiai raudona", +"Medium Gray": "Vidutini\u0161kai pilka", +"Dark Gray": "Tamsiai pilka", +"Black": "Juoda", +"White": "Balta", +"Switch to or from fullscreen mode": "Perjungti i\u0161\/\u012f viso ekrano rodym\u0105", +"Open help dialog": "Atverti pagalbos lang\u0105", +"history": "praeitis", +"styles": "stiliai", +"formatting": "formatavimas", +"alignment": "lygiavimas", +"indentation": "\u012ftrauka", +"permanent pen": "nuolatinis ra\u0161iklis", +"comments": "komentarai", +"Anchor": "\u017dym\u0117", +"Special character": "Specialus simbolis", +"Code sample": "Kodo pavyzdys", +"Color": "Spalva", +"Emoticons": "Jaustukai", +"Document properties": "Dokumento savyb\u0117s", +"Image": "Paveiksl\u0117lis", +"Insert link": "\u012eterpti nuorod\u0105", +"Target": "Tikslin\u0117 nuoroda", +"Link": "Nuoroda", +"Poster": "Plakatas", +"Media": "Medija", +"Print": "Spausdinti", +"Prev": "Ankstesnis", +"Find and replace": "Surasti ir pakeisti", +"Whole words": "Visus \u017eod\u017eius", +"Spellcheck": "Ra\u0161ybos tikrinimas", +"Caption": "Antra\u0161t\u0117", +"Insert template": "\u012eterpti \u0161ablon\u0105" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/nb_NO.js b/common/plugins/editors/tinymce/media/langs/nb_NO.js new file mode 100755 index 0000000000000000000000000000000000000000..5e4992276c0c144f636d02313a15b0b6d3898267 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/nb_NO.js @@ -0,0 +1,389 @@ +tinymce.addI18n('nb_NO',{ +"Redo": "Gj\u00f8r om", +"Undo": "Angre", +"Cut": "Klipp ut", +"Copy": "Kopier", +"Paste": "Lim inn", +"Select all": "Marker alt", +"New document": "Nytt dokument", +"Ok": "Ok", +"Cancel": "Avbryt", +"Visual aids": "Visuelle hjelpemidler", +"Bold": "Fet", +"Italic": "Kursiv", +"Underline": "Understreking", +"Strikethrough": "Gjennomstreking", +"Superscript": "Hevet skrift", +"Subscript": "Senket skrift", +"Clear formatting": "Fjern formateringer", +"Align left": "Venstrejuster", +"Align center": "Midtstill", +"Align right": "H\u00f8yrejuster", +"Justify": "Blokkjuster", +"Bullet list": "Punktliste", +"Numbered list": "Nummerliste", +"Decrease indent": "Reduser innrykk", +"Increase indent": "\u00d8k innrykk", +"Close": "Lukk", +"Formats": "Stiler", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Nettleseren din st\u00f8tter ikke direkte tilgang til utklippsboken. Bruk istedet tastatursnarveiene Ctrl+X\/C\/V.", +"Headers": "Overskrifter", +"Header 1": "Overskrift 1", +"Header 2": "Overskrift 2", +"Header 3": "Overskrift 3", +"Header 4": "Overskrift 4", +"Header 5": "Overskrift 5", +"Header 6": "Overskrift 6", +"Headings": "Overskrifter", +"Heading 1": "Overskrift 1", +"Heading 2": "Overskrift 2", +"Heading 3": "Overskrift 3", +"Heading 4": "Overskrift 4", +"Heading 5": "Overskrift 5", +"Heading 6": "Overskrift 6", +"Preformatted": "Forh\u00e5ndsformatert", +"Div": "Div", +"Pre": "Pre", +"Code": "Kode", +"Paragraph": "Avsnitt", +"Blockquote": "Blockquote", +"Inline": "Innkapslet ", +"Blocks": "Blokker", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Lim inn er n\u00e5 i ren-tekst modus. Kopiert innhold vil bli limt inn som ren tekst inntil du sl\u00e5r av dette valget.", +"Fonts": "Fonter", +"Font Sizes": "Fontst\u00f8rrelser", +"Class": "Klasse", +"Browse for an image": "S\u00f8k etter bilde", +"OR": "ELLER", +"Drop an image here": "Slipp et bilde her", +"Upload": "Last opp", +"Block": "Blokk", +"Align": "Juster", +"Default": "Normal", +"Circle": "\u00c5pen sirkel", +"Disc": "Fylt sirkel", +"Square": "Fylt firkant", +"Lower Alpha": "Minuskler", +"Lower Greek": "Greske minuskler", +"Lower Roman": "Romerske minuskler", +"Upper Alpha": "Versaler", +"Upper Roman": "Romerske versaler", +"Anchor...": "Lenke", +"Name": "Navn", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id burde starte med en bokstav, bare fulgt av bokstaver, nummer, streker, punktum, koloner eller understreker.", +"You have unsaved changes are you sure you want to navigate away?": "Du har ikke arkivert endringene. Vil du fortsette uten \u00e5 arkivere?", +"Restore last draft": "Gjenopprett siste utkast", +"Special characters...": "Spesialtegn", +"Source code": "Kildekode", +"Insert\/Edit code sample": "Sett inn\/endre kodeeksempel", +"Language": "Spr\u00e5k", +"Code sample...": "Kodeeksempel", +"Color Picker": "Fargevelger", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Venstre til h\u00f8yre", +"Right to left": "H\u00f8yre til venstre", +"Emoticons...": "Emoticons..", +"Metadata and Document Properties": "Metadata og dokumentverdier", +"Title": "Tittel", +"Keywords": "N\u00f8kkelord", +"Description": "Beskrivelse", +"Robots": "Roboter", +"Author": "Forfatter", +"Encoding": "Tegnkoding", +"Fullscreen": "Fullskjerm", +"Action": "Handling", +"Shortcut": "Snarvei", +"Help": "Hjelp", +"Address": "Adresse", +"Focus to menubar": "Fokus p\u00e5 menylinje", +"Focus to toolbar": "Fokus p\u00e5 verkt\u00f8ylinje", +"Focus to element path": "Fokus p\u00e5 elementsti", +"Focus to contextual toolbar": "Fokus p\u00e5 kontekstuell verkt\u00f8ylinje", +"Insert link (if link plugin activated)": "Sett inn lenke (dersom lenketillegg er aktivert)", +"Save (if save plugin activated)": "Lagre (dersom lagretillegg er aktivert)", +"Find (if searchreplace plugin activated)": "Finn (dersom tillegg for s\u00f8k og erstatt er aktivert)", +"Plugins installed ({0}):": "Installerte tillegg ({0}):", +"Premium plugins:": "Premiumtillegg:", +"Learn more...": "Les mer ...", +"You are using {0}": "Du bruker {0}", +"Plugins": "Tillegg", +"Handy Shortcuts": "Nyttige snarveier", +"Horizontal line": "Horisontal linje", +"Insert\/edit image": "Sett inn\/endre bilde", +"Image description": "Bildebeskrivelse", +"Source": "Bildelenke", +"Dimensions": "Dimensjoner", +"Constrain proportions": "Behold proporsjoner", +"General": "Generelt", +"Advanced": "Avansert", +"Style": "Stil", +"Vertical space": "Vertikal marg", +"Horizontal space": "Horisontal marg", +"Border": "Ramme", +"Insert image": "Sett inn bilde", +"Image...": "Bilde...", +"Image list": "Bildeliste", +"Rotate counterclockwise": "Roter mot venstre", +"Rotate clockwise": "Roter mot h\u00f8yre", +"Flip vertically": "Speilvend vertikalt", +"Flip horizontally": "Speilvend horisontalt", +"Edit image": "Rediger bilde", +"Image options": "Bilde innstillinger", +"Zoom in": "Zoom inn", +"Zoom out": "Zoom ut", +"Crop": "Beskj\u00e6r", +"Resize": "Skaler", +"Orientation": "Orientering", +"Brightness": "Lysstyrke", +"Sharpen": "Skarphet", +"Contrast": "Kontrast", +"Color levels": "Fargeniv\u00e5", +"Gamma": "Gamma", +"Invert": "Inverter", +"Apply": "Utf\u00f8r", +"Back": "Tilbake", +"Insert date\/time": "Sett inn dato\/tid", +"Date\/time": "Dato\/tid", +"Insert\/Edit Link": "Sett inn \/ Rediger lenke", +"Insert\/edit link": "Sett inn\/endre lenke", +"Text to display": "Tekst som skal vises", +"Url": "Url", +"Open link in...": "\u00c5pne lenke i..", +"Current window": "N\u00e5v\u00e6rende vindu", +"None": "Ingen", +"New window": "Nytt vindu", +"Remove link": "Fjern lenke", +"Anchors": "Anker", +"Link...": "Lenke...", +"Paste or type a link": "Lim inn eller skriv en lenke", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Oppgitte URL ser ut til \u00e5 v\u00e6re en epost-adresse. \u00d8nsker du \u00e5 sette inn p\u00e5krevet mailto: prefiks forran epost-adressen?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Oppgitt URL ser ut til \u00e5 v\u00e6re en e-postadresse. \u00d8nsker du \u00e5 sette inn p\u00e5krevd mailto:-prefiks foran e-postadressen?", +"Link list": "Lenkeliste", +"Insert video": "Sett inn video", +"Insert\/edit video": "Sett inn\/rediger video", +"Insert\/edit media": "Sett inn\/endre media", +"Alternative source": "Alternativ kilde", +"Alternative source URL": "Alternativ kilde URL", +"Media poster (Image URL)": "Mediaposter (bilde-URL)", +"Paste your embed code below:": "Lim inn inkluderings-koden nedenfor", +"Embed": "Inkluder", +"Media...": "Media..", +"Nonbreaking space": "Hardt mellomrom", +"Page break": "Sideskifte", +"Paste as text": "Lim inn som tekst", +"Preview": "Forh\u00e5ndsvisning", +"Print...": "Skriv ut...", +"Save": "Arkiver", +"Find": "Finn", +"Replace with": "Erstatt med", +"Replace": "Erstatt", +"Replace all": "Erstatt alle", +"Previous": "Forrige", +"Next": "Neste", +"Find and replace...": "Finn og erstatt...", +"Could not find the specified string.": "Kunne ikke finne den spesifiserte teksten", +"Match case": "Match store og sm\u00e5 bokstaver", +"Find whole words only": "Finn kun hele ord", +"Spell check": "Stavekontroll", +"Ignore": "Ignorer", +"Ignore all": "Ignorer alle", +"Finish": "Avslutt", +"Add to Dictionary": "Legg til i ordliste", +"Insert table": "Sett inn tabell", +"Table properties": "Tabell egenskaper", +"Delete table": "Slett tabell", +"Cell": "Celle", +"Row": "Rad", +"Column": "Kolonne", +"Cell properties": "Celle egenskaper", +"Merge cells": "Sl\u00e5 sammen celler", +"Split cell": "Splitt celle", +"Insert row before": "Sett inn rad f\u00f8r", +"Insert row after": "Sett in rad etter", +"Delete row": "Slett rad", +"Row properties": "Rad egenskaper", +"Cut row": "Klipp ut rad", +"Copy row": "Kopier rad", +"Paste row before": "Lim inn rad f\u00f8r", +"Paste row after": "Lim inn rad etter", +"Insert column before": "Sett inn kolonne f\u00f8r", +"Insert column after": "Sett inn kolonne etter", +"Delete column": "Slett kolonne", +"Cols": "Kolonner", +"Rows": "Rader", +"Width": "Bredde", +"Height": "H\u00f8yde", +"Cell spacing": "Celleavstand", +"Cell padding": "Cellemarg", +"Show caption": "Vis bildetekst", +"Left": "Venstre", +"Center": "Midtstilt", +"Right": "H\u00f8yre", +"Cell type": "Celletype", +"Scope": "Omfang", +"Alignment": "Justering", +"H Align": "H Justering", +"V Align": "V Justering", +"Top": "Topp", +"Middle": "Midten", +"Bottom": "Bunn", +"Header cell": "Topptekst-celle", +"Row group": "Radgruppe", +"Column group": "Kolonnegruppe", +"Row type": "Rad-type", +"Header": "Topptekst", +"Body": "Br\u00f8dtekst", +"Footer": "Bunntekst", +"Border color": "Rammefarge", +"Insert template...": "Sett inn mal..", +"Templates": "Maler", +"Template": "Mal", +"Text color": "Tekstfarge", +"Background color": "Bakgrunnsfarge", +"Custom...": "Tilpass...", +"Custom color": "Tilpasset farge", +"No color": "Ingen farge", +"Remove color": "Fjern farge", +"Table of Contents": "Innholdsfortegnelse", +"Show blocks": "Vis blokker", +"Show invisible characters": "Vis skjulte tegn", +"Word count": "Ordtelling", +"Words: {0}": "Antall ord: {0}", +"{0} words": "{0} ord", +"File": "Arkiv", +"Edit": "Rediger", +"Insert": "Sett inn", +"View": "Vis", +"Format": "Format", +"Table": "Tabell", +"Tools": "Verkt\u00f8y", +"Powered by {0}": "Redigert med {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Tekstredigering. Tast ALT-F9 for meny. Tast ALT-F10 for verkt\u00f8ys-rader. Tast ALT-0 for hjelp.", +"Image title": "Bildetittel", +"Border width": "Bordbredde", +"Border style": "Bordstil", +"Error": "Feil", +"Warn": "Advarsel", +"Valid": "Gyldig", +"To open the popup, press Shift+Enter": "For \u00e5 \u00e5pne popup, trykk Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Rik-tekstomr\u00e5de. Trykk ALT-0 for hjelp.", +"System Font": "Systemfont", +"Failed to upload image: {0}": "Opplasting av bilde feilet: {0}", +"Failed to load plugin: {0} from url {1}": "Kunne ikke laste tillegg: {0} from url {1}", +"Failed to load plugin url: {0}": "Kunne ikke laste tillegg url: {0}", +"Failed to initialize plugin: {0}": "Kunne ikke initialisere tillegg: {0}", +"example": "eksempel", +"Search": "S\u00f8k", +"All": "Alle", +"Currency": "Valuta", +"Text": "Tekst", +"Quotations": "Sitater", +"Mathematical": "Matematisk", +"Extended Latin": "Utvidet latin", +"Symbols": "Symboler", +"Arrows": "Piler", +"User Defined": "Brukerdefinert", +"dollar sign": "dollartegn", +"currency sign": "valutasymbol", +"euro-currency sign": "Euro-valutasymbol", +"colon sign": "kolon-symbol", +"cruzeiro sign": "cruzeiro-symbol", +"french franc sign": "franske franc-symbol", +"lira sign": "lire-symbol", +"mill sign": "mill-symbol", +"naira sign": "naira-symbol", +"peseta sign": "peseta-symbol", +"rupee sign": "rupee-symbol", +"won sign": "won-symbol", +"new sheqel sign": "Ny sheqel-symbol", +"dong sign": "dong-symbol", +"kip sign": "kip-symbol", +"tugrik sign": "tugrik-symbol", +"drachma sign": "drachma-symbol", +"german penny symbol": "tysk penny-symbol", +"peso sign": "peso-symbol", +"guarani sign": "quarani-symbol", +"austral sign": "austral-symbol", +"hryvnia sign": "hryvina-symbol", +"cedi sign": "credi-symbol", +"livre tournois sign": "livre tournois-symbol", +"spesmilo sign": "spesmilo-symbol", +"tenge sign": "tenge-symbol", +"indian rupee sign": "indisk rupee-symbol", +"turkish lira sign": "tyrkisk lire-symbol", +"nordic mark sign": "nordisk mark-symbol", +"manat sign": "manat-symbol", +"ruble sign": "ruble-symbol", +"yen character": "yen-symbol", +"yuan character": "yuan-symbol", +"yuan character, in hong kong and taiwan": "yuan-symbol, i Hongkong og Taiwan", +"yen\/yuan character variant one": "yen\/yuan-symbol variant en", +"Loading emoticons...": "Laster emoticons..", +"Could not load emoticons": "Kunne ikke laste emoticons", +"People": "Mennesker", +"Animals and Nature": "Dyr og natur", +"Food and Drink": "Mat og drikke", +"Activity": "Aktivitet", +"Travel and Places": "Reise og steder", +"Objects": "Objekter", +"Flags": "Flagg", +"Characters": "Tegn", +"Characters (no spaces)": "Tegn (uten mellomrom)", +"Error: Form submit field collision.": "Feil: Skjemafelt innsendingskollisjon", +"Error: No form element found.": "Feil: Intet skjemafelt funnet.", +"Update": "Oppdater", +"Color swatch": "Fargepalett", +"Turquoise": "Turkis", +"Green": "Gr\u00f8nn", +"Blue": "Bl\u00e5", +"Purple": "Lilla", +"Navy Blue": "Marinebl\u00e5", +"Dark Turquoise": "M\u00f8rk turkis", +"Dark Green": "M\u00f8rkegr\u00f8nn", +"Medium Blue": "Mellombl\u00e5", +"Medium Purple": "Medium lilla", +"Midnight Blue": "Midnattbl\u00e5", +"Yellow": "Gul", +"Orange": "Oransje", +"Red": "R\u00f8d", +"Light Gray": "Lys gr\u00e5", +"Gray": "Gr\u00e5", +"Dark Yellow": "M\u00f8rk gul", +"Dark Orange": "M\u00f8rk oransje", +"Dark Red": "M\u00f8rker\u00f8d", +"Medium Gray": "Medium gr\u00e5", +"Dark Gray": "M\u00f8rk gr\u00e5", +"Black": "Svart", +"White": "Hvit", +"Switch to or from fullscreen mode": "Bytt til eller fra fullskjermmodus", +"Open help dialog": "\u00c5pne hjelp-dialog", +"history": "historikk", +"styles": "stiler", +"formatting": "formatering", +"alignment": "justering", +"indentation": "innrykk", +"permanent pen": "permanent penn", +"comments": "kommentarer", +"Anchor": "Anker", +"Special character": "Spesialtegn", +"Code sample": "Kodeeksempel", +"Color": "Farge", +"Emoticons": "Hum\u00f8rfjes", +"Document properties": "Dokumentegenskaper", +"Image": "Bilde", +"Insert link": "Sett inn lenke", +"Target": "M\u00e5l", +"Link": "Lenke", +"Poster": "Plakatbilde", +"Media": "Media", +"Print": "Skriv ut", +"Prev": "Forrige", +"Find and replace": "Finn og erstatt", +"Whole words": "Hele ord", +"Spellcheck": "Stavekontroll", +"Caption": "Tittel", +"Insert template": "Sett inn mal" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/nl.js b/common/plugins/editors/tinymce/media/langs/nl.js new file mode 100755 index 0000000000000000000000000000000000000000..305bf912efac79c6edb3f9d1ea530434f0f136ba --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/nl.js @@ -0,0 +1,419 @@ +tinymce.addI18n('nl',{ +"Redo": "Opnieuw uitvoeren", +"Undo": "Ongedaan maken", +"Cut": "Knippen", +"Copy": "Kopi\u00ebren", +"Paste": "Plakken", +"Select all": "Alles selecteren", +"New document": "Nieuw document", +"Ok": "OK", +"Cancel": "Annuleren", +"Visual aids": " Visuele hulpmiddelen", +"Bold": "Vet", +"Italic": "Cursief", +"Underline": "Onderstrepen", +"Strikethrough": "Doorhalen", +"Superscript": "Superscript", +"Subscript": "Subscript", +"Clear formatting": "Opmaak wissen", +"Align left": "Links uitlijnen", +"Align center": "Centreren", +"Align right": "Rechts uitlijnen", +"Justify": "Uitvullen", +"Bullet list": "Lijst met opsommingstekens", +"Numbered list": "Genummerde lijst", +"Decrease indent": "Inspringing verkleinen", +"Increase indent": "Inspringing vergroten", +"Close": "Sluiten", +"Formats": "Opmaken", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Jouw browser ondersteunt geen rechtstreekse toegang tot het klembord. Gebruik in plaats daarvan de sneltoetsen Ctrl+X\/C\/V.", +"Headers": "Kopteksten", +"Header 1": "Koptekst 1", +"Header 2": "Koptekst 2", +"Header 3": "Koptekst 3", +"Header 4": "Koptekst 4", +"Header 5": "Koptekst 5", +"Header 6": "Koptekst 6", +"Headings": "Koppen", +"Heading 1": "Kop 1", +"Heading 2": "Kop 2", +"Heading 3": "Kop 3", +"Heading 4": "Kop 4", +"Heading 5": "Kop 5", +"Heading 6": "Kop 6", +"Preformatted": "Vooraf opgemaakt", +"Div": "Div", +"Pre": "Pre", +"Code": "Code", +"Paragraph": "Alinea", +"Blockquote": "Blockquote", +"Inline": "Inline", +"Blocks": "Blokken", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Plakken gebeurt nu als platte tekst. Tekst wordt nu ingevoegd zonder opmaak tot deze optie uitgeschakeld wordt.", +"Fonts": "Lettertypes", +"Font Sizes": "Tekengroottes", +"Class": "Klasse", +"Browse for an image": "Afbeelding zoeken", +"OR": "OF", +"Drop an image here": "Hier een afbeelding neerzetten", +"Upload": "Uploaden", +"Block": "Blok", +"Align": "Uitlijnen", +"Default": "Standaard", +"Circle": "Cirkel", +"Disc": "Bolletje", +"Square": "Vierkant", +"Lower Alpha": "Kleine letters", +"Lower Greek": "Griekse letters", +"Lower Roman": "Romeinse cijfers klein", +"Upper Alpha": "Hoofdletters", +"Upper Roman": "Romeinse cijfers groot", +"Anchor...": "Anker...", +"Name": "Naam", +"Id": "ID", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "ID moet beginnen met een letter, gevolgd door letters, nummers, streepjes, punten, dubbele punten of underscores.", +"You have unsaved changes are you sure you want to navigate away?": "U hebt niet alles opgeslagen bent u zeker dat u de pagina wenst te verlaten?", +"Restore last draft": "Herstel het laatste concept", +"Special character...": "Speciaal teken...", +"Source code": "Broncode", +"Insert\/Edit code sample": "Broncode invoegen\/bewerken", +"Language": "Programmeertaal", +"Code sample...": "Codevoorbeeld...", +"Color Picker": "Kleurenkiezer", +"R": "Rood", +"G": "Groen", +"B": "Blauw", +"Left to right": "Links naar rechts", +"Right to left": "Rechts naar links", +"Emoticons...": "Emoticons...", +"Metadata and Document Properties": "Metadata en documenteigenschappen", +"Title": "Titel", +"Keywords": "Sleutelwoorden", +"Description": "Omschrijving", +"Robots": "Robots", +"Author": "Auteur", +"Encoding": "Codering", +"Fullscreen": "Volledig scherm", +"Action": "Actie", +"Shortcut": "Snelkoppeling", +"Help": "Help", +"Address": "Adres", +"Focus to menubar": "Menubalk selecteren", +"Focus to toolbar": "Werkbalk selecteren", +"Focus to element path": "Element pad selecteren", +"Focus to contextual toolbar": "Contextuele werkbalk selecteren", +"Insert link (if link plugin activated)": "Link invoegen (als link plug-in geactiveerd is)", +"Save (if save plugin activated)": "Opslaan (als opslaan plug-in ingeschakeld is)", +"Find (if searchreplace plugin activated)": "Zoeken (als zoeken\/vervangen plug-in ingeschakeld is)", +"Plugins installed ({0}):": "Plug-ins ge\u00efnstalleerd ({0}):", +"Premium plugins:": "Premium plug-ins:", +"Learn more...": "Leer meer...", +"You are using {0}": "Je gebruikt {0}", +"Plugins": "Plug-ins", +"Handy Shortcuts": "Handige snelkoppelingen", +"Horizontal line": "Horizontale lijn", +"Insert\/edit image": "Afbeelding invoegen\/bewerken", +"Image description": "Afbeelding omschrijving", +"Source": "Bron", +"Dimensions": "Afmetingen", +"Constrain proportions": "Verhoudingen behouden", +"General": "Algemeen", +"Advanced": "Geavanceerd", +"Style": "Stijl", +"Vertical space": "Verticale ruimte", +"Horizontal space": "Horizontale ruimte", +"Border": "Rand", +"Insert image": "Afbeelding invoegen", +"Image...": "Afbeelding...", +"Image list": "Afbeeldingenlijst", +"Rotate counterclockwise": "Linksom draaien", +"Rotate clockwise": "Rechtsom draaien", +"Flip vertically": "Verticaal spiegelen", +"Flip horizontally": "Horizontaal spiegelen", +"Edit image": "Bewerk afbeelding", +"Image options": "Afbeelding opties", +"Zoom in": "Inzoomen", +"Zoom out": "Uitzoomen", +"Crop": "Uitsnijden", +"Resize": "Formaat aanpassen", +"Orientation": "Orientatie", +"Brightness": "Helderheid", +"Sharpen": "Scherpte", +"Contrast": "Contrast", +"Color levels": "Kleurniveau's", +"Gamma": "Gamma", +"Invert": "Omkeren", +"Apply": "Toepassen", +"Back": "Terug", +"Insert date\/time": "Voeg datum\/tijd in", +"Date\/time": "Datum\/tijd", +"Insert\/Edit Link": "Link invoegen\/bewerken", +"Insert\/edit link": "Hyperlink invoegen\/bewerken", +"Text to display": "Linktekst", +"Url": "Url", +"Open link in...": "Link openen in...", +"Current window": "Huidige venster", +"None": "Geen", +"New window": "Nieuw venster", +"Remove link": "Link verwijderen", +"Anchors": "Anker", +"Link...": "Link...", +"Paste or type a link": "Plak of typ een link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "De ingegeven URL lijkt op een e-mailadres. Wil je er \"mailto:\" aan toevoegen?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "De ingegeven URL verwijst naar een extern adres. Wil je er \"http:\/\/\" aan toevoegen?", +"Link list": "Linklijst", +"Insert video": "Video invoegen", +"Insert\/edit video": "Video invoegen\/bewerken", +"Insert\/edit media": "Media invoegen\/bewerken", +"Alternative source": "Alternatieve bron", +"Alternative source URL": "Alternatief bron-URL", +"Media poster (Image URL)": "Mediaposter (afbeeldings-url)", +"Paste your embed code below:": "Plak u in te sluiten code hieronder:", +"Embed": "Insluiten", +"Media...": "Media...", +"Nonbreaking space": "Vaste spatie invoegen", +"Page break": "Pagina einde", +"Paste as text": "Plakken als tekst", +"Preview": "Voorbeeld", +"Print...": "Afdrukken... ", +"Save": "Opslaan", +"Find": "Zoeken", +"Replace with": "Vervangen door", +"Replace": "Vervangen", +"Replace all": "Alles vervangen", +"Previous": "Vorige", +"Next": "Volgende", +"Find and replace...": "Zoeken en vervangen...", +"Could not find the specified string.": "Geen resultaten gevonden", +"Match case": "Identieke hoofd\/kleine letters", +"Find whole words only": "Alleen hele woorden zoeken", +"Spell check": "Spellingscontrole", +"Ignore": "Negeren", +"Ignore all": "Alles negeren", +"Finish": "Einde", +"Add to Dictionary": "Toevoegen aan woordenlijst", +"Insert table": "Tabel invoegen", +"Table properties": "Tabel eigenschappen", +"Delete table": "Verwijder tabel", +"Cell": "Cel", +"Row": "Rij", +"Column": "Kolom", +"Cell properties": "Cel eigenschappen", +"Merge cells": "Cellen samenvoegen", +"Split cell": "Cel splitsen", +"Insert row before": "Voeg rij boven toe", +"Insert row after": "Voeg rij onder toe", +"Delete row": "Verwijder rij", +"Row properties": "Rij eigenschappen", +"Cut row": "Knip rij", +"Copy row": "Kopieer rij", +"Paste row before": "Plak rij boven", +"Paste row after": "Plak rij onder", +"Insert column before": "Voeg kolom in voor", +"Insert column after": "Voeg kolom in na", +"Delete column": "Verwijder kolom", +"Cols": "Kolommen", +"Rows": "Rijen", +"Width": "Breedte", +"Height": "Hoogte", +"Cell spacing": "Celruimte", +"Cell padding": "Ruimte binnen cel", +"Show caption": "Bijschrift weergeven", +"Left": "Links", +"Center": "Midden", +"Right": "Rechts", +"Cell type": "Celtype", +"Scope": "Bereik", +"Alignment": "Uitlijning", +"H Align": "Links uitlijnen", +"V Align": "Boven uitlijnen", +"Top": "Bovenaan", +"Middle": "Centreren", +"Bottom": "Onderaan", +"Header cell": "Kopcel", +"Row group": "Rijgroep", +"Column group": "Kolomgroep", +"Row type": "Rijtype", +"Header": "Koptekst", +"Body": "Body", +"Footer": "Voettekst", +"Border color": "Randkleur", +"Insert template...": "Sjabloon invoegen...", +"Templates": "Sjablonen", +"Template": "Sjabloon", +"Text color": "Tekstkleur", +"Background color": "Achtergrondkleur", +"Custom...": "Eigen...", +"Custom color": "Eigen kleur", +"No color": "Geen kleur", +"Remove color": "Kleur verwijderen", +"Table of Contents": "Inhoudsopgave", +"Show blocks": "Blokken tonen", +"Show invisible characters": "Onzichtbare karakters tonen", +"Word count": "Aantal woorden", +"Count": "Telling", +"Document": "Document", +"Selection": "Selectie", +"Words": "Woorden", +"Words: {0}": "Woorden: {0}", +"{0} words": "{0} woorden", +"File": "Bestand", +"Edit": "Bewerken", +"Insert": "Invoegen", +"View": "Beeld", +"Format": "Opmaak", +"Table": "Tabel", +"Tools": "Gereedschap", +"Powered by {0}": "Gemaakt door {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. Druk ALT-F9 voor het menu. Druk ALT-F10 voor de toolbar. Druk ALT-0 voor help.", +"Image title": "Afbeeldingstitel", +"Border width": "Randbreedte", +"Border style": "Randstijl", +"Error": "Fout", +"Warn": "Waarschuwen", +"Valid": "Geldig", +"To open the popup, press Shift+Enter": "Druk op Shift+Enter om de pop-up te openen", +"Rich Text Area. Press ALT-0 for help.": " Gebied met opgemaakte tekst. Druk op ALT-0 voor hulp.", +"System Font": "Systeemlettertype", +"Failed to upload image: {0}": "Niet gelukt om afbeelding te uploaden: {0}", +"Failed to load plugin: {0} from url {1}": "Niet gelukt om plug-in te laden: {0} vanaf URL {1}", +"Failed to load plugin url: {0}": "Niet gelukt om URL plug-in te laden: {0}", +"Failed to initialize plugin: {0}": "Niet gelukt om plug-in te initialiseren: {0}", +"example": "voorbeeld", +"Search": "Zoeken", +"All": "Alle", +"Currency": "Valuta", +"Text": "Tekst", +"Quotations": "Citaten", +"Mathematical": "Wiskundig", +"Extended Latin": "Latijn uitgebreid ", +"Symbols": "Symbolen", +"Arrows": "Pijlen", +"User Defined": "Door gebruiker gedefinieerd ", +"dollar sign": "dollarteken", +"currency sign": "valutateken", +"euro-currency sign": "euroteken", +"colon sign": "colon-teken", +"cruzeiro sign": "cruzeiro-teken", +"french franc sign": "franse franc-teken", +"lira sign": "lire-teken", +"mill sign": "mill-teken", +"naira sign": "naira-teken", +"peseta sign": "peseta-teken", +"rupee sign": "roepie-teken", +"won sign": "won-teken", +"new sheqel sign": "nieuwe sheqel-teken", +"dong sign": "dong-teken", +"kip sign": "kip-teken", +"tugrik sign": "tugrik-teken", +"drachma sign": "drachme-teken", +"german penny symbol": "duitse pfennig-teken", +"peso sign": "peso-teken", +"guarani sign": "guarani-teken", +"austral sign": "austral-teken", +"hryvnia sign": "hryvnia-teken", +"cedi sign": "cedi-teken", +"livre tournois sign": "livre tournois-teken", +"spesmilo sign": "spesmilo-teken", +"tenge sign": "tenge-teken", +"indian rupee sign": "indiaase roepie-teken", +"turkish lira sign": "turkse lire-teken", +"nordic mark sign": "noorse mark-teken", +"manat sign": "manat-teken", +"ruble sign": "roebel-teken", +"yen character": "yen-teken", +"yuan character": "yuan-teken", +"yuan character, in hong kong and taiwan": "yuan-teken (Hong Kong en Taiwan)", +"yen\/yuan character variant one": "yen\/yuan variant 1-teken", +"Loading emoticons...": "Emoticons laden...", +"Could not load emoticons": "Kan emoticons niet laden", +"People": "Personen", +"Animals and Nature": "Dieren en natuur", +"Food and Drink": "Eten en drinken", +"Activity": "Activiteit", +"Travel and Places": "Reizen en plaatsen", +"Objects": "Objecten", +"Flags": "Vlaggen", +"Characters": "Tekens", +"Characters (no spaces)": "Tekens (geen spaties)", +"{0} characters": "{0} karakters", +"Error: Form submit field collision.": "Fout: Veldconflict bij versturen formulier.", +"Error: No form element found.": "Fout: Geen formulierelement gevonden.", +"Update": "Bijwerken", +"Color swatch": "Kleurenwaaier", +"Turquoise": "Turquoise", +"Green": "Groen", +"Blue": "Blauw", +"Purple": "Paars", +"Navy Blue": "Marineblauw", +"Dark Turquoise": "Donkerturquoise", +"Dark Green": "Donkergroen", +"Medium Blue": "Middelblauw", +"Medium Purple": "Middelpaars", +"Midnight Blue": "Middernachtblauw", +"Yellow": "Geel", +"Orange": "Oranje", +"Red": "Rood", +"Light Gray": "Lichtgrijs", +"Gray": "Grijs", +"Dark Yellow": "Donkergeel", +"Dark Orange": "Donkeroranje", +"Dark Red": "Donkerrood", +"Medium Gray": "Middelgrijs", +"Dark Gray": "Donkergrijs", +"Light Green": "Lichtgroen", +"Light Yellow": "Lichtgeel", +"Light Red": "Lichtrood", +"Light Purple": "Lichtpaars", +"Light Blue": "Lichtblauw", +"Dark Purple": "Donkerpaars", +"Dark Blue": "Donkerblauw", +"Black": "Zwart", +"White": "Wit", +"Switch to or from fullscreen mode": "Overschakelen naar of vanuit de volledig scherm-modus", +"Open help dialog": "Help-scherm openen", +"history": "geschiedenis", +"styles": "stijlen", +"formatting": "opmaak", +"alignment": "uitlijning", +"indentation": "inspringing", +"permanent pen": "permanent pen", +"comments": "opmerkingen", +"Format Painter": "Opmaak overnemen", +"Insert\/edit iframe": "Iframe toevoegen\/aanpassen", +"Capitalization": "Hoofdletter gebruik", +"lowercase": "kleine letters", +"UPPERCASE": "HOOFDLETTERS", +"Title Case": "Titel hoofdletter gebruik", +"Permanent Pen Properties": "Permantente Pen eigenschappen", +"Permanent pen properties...": "Permantente pen eigenschappen...", +"Font": "Lettertype", +"Size": "Formaat", +"More...": "Meer...", +"Spellcheck Language": "Spellingscontrole taal", +"Select...": "Selecteer...", +"Preferences": "Voorkeuren", +"Yes": "Ja", +"No": "Nee", +"Keyboard Navigation": "Toetsenbord navigatie", +"Version": "Versie", +"Anchor": "Anker", +"Special character": "Speciale karakters", +"Code sample": "Broncode voorbeeld", +"Color": "Kleur", +"Emoticons": "Emoticons", +"Document properties": "Document eigenschappen", +"Image": "Afbeelding", +"Insert link": "Hyperlink invoegen", +"Target": "Doel", +"Link": "Link", +"Poster": "Poster", +"Media": "Media", +"Print": "Print", +"Prev": "Vorige", +"Find and replace": "Zoek en vervang", +"Whole words": "Alleen hele woorden", +"Spellcheck": "Spellingscontrole", +"Caption": "Onderschrift", +"Insert template": "Sjabloon invoegen" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/pl.js b/common/plugins/editors/tinymce/media/langs/pl.js new file mode 100755 index 0000000000000000000000000000000000000000..94fda50c09da58d9b962348daa56f5644f2d6cb9 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/pl.js @@ -0,0 +1,389 @@ +tinymce.addI18n('pl',{ +"Redo": "Powt\u00f3rz", +"Undo": "Cofnij", +"Cut": "Wytnij", +"Copy": "Kopiuj", +"Paste": "Wklej", +"Select all": "Zaznacz wszystko", +"New document": "Nowy dokument", +"Ok": "Ok", +"Cancel": "Anuluj", +"Visual aids": "Pomoce wizualne", +"Bold": "Pogrubienie", +"Italic": "Kursywa", +"Underline": "Podkre\u015blenie", +"Strikethrough": "Przekre\u015blenie", +"Superscript": "Indeks g\u00f3rny", +"Subscript": "Indeks dolny", +"Clear formatting": "Wyczy\u015b\u0107 formatowanie", +"Align left": "Wyr\u00f3wnaj do lewej", +"Align center": "Wyr\u00f3wnaj do \u015brodka", +"Align right": "Wyr\u00f3wnaj do prawej", +"Justify": "Wyjustuj", +"Bullet list": "Lista wypunktowana", +"Numbered list": "Lista numerowana", +"Decrease indent": "Zmniejsz wci\u0119cie", +"Increase indent": "Zwi\u0119ksz wci\u0119cie", +"Close": "Zamknij", +"Formats": "Formaty", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Twoja przegl\u0105darka nie obs\u0142uguje bezpo\u015bredniego dost\u0119pu do schowka. U\u017cyj zamiast tego kombinacji klawiszy Ctrl+X\/C\/V.", +"Headers": "Nag\u0142\u00f3wki", +"Header 1": "Nag\u0142\u00f3wek 1", +"Header 2": "Nag\u0142\u00f3wek 2", +"Header 3": "Nag\u0142\u00f3wek 3", +"Header 4": "Nag\u0142\u00f3wek 4", +"Header 5": "Nag\u0142\u00f3wek 5", +"Header 6": "Nag\u0142\u00f3wek 6", +"Headings": "Nag\u0142\u00f3wki", +"Heading 1": "Nag\u0142\u00f3wek 1", +"Heading 2": "Nag\u0142\u00f3wek 2", +"Heading 3": "Nag\u0142\u00f3wek 3", +"Heading 4": "Nag\u0142\u00f3wek 4", +"Heading 5": "Nag\u0142\u00f3wek 5", +"Heading 6": "Nag\u0142\u00f3wek 6", +"Preformatted": "Wst\u0119pne formatowanie", +"Div": "Div", +"Pre": "Pre", +"Code": "Kod", +"Paragraph": "Akapit", +"Blockquote": "Blok cytatu", +"Inline": "W tek\u015bcie", +"Blocks": "Bloki", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Wklejanie jest w trybie tekstowym. Zawarto\u015b\u0107 zostanie wklejona jako zwyk\u0142y tekst dop\u00f3ki nie wy\u0142\u0105czysz tej opcji.", +"Fonts": "Fonty", +"Font Sizes": "Rozmiar fontu", +"Class": "Klasa", +"Browse for an image": "Przegl\u0105daj za zdj\u0119ciem", +"OR": "LUB", +"Drop an image here": "Upu\u015b\u0107 obraz tutaj", +"Upload": "Prze\u015blij", +"Block": "Zablokuj", +"Align": "Wyr\u00f3wnaj", +"Default": "Domy\u015blne", +"Circle": "K\u00f3\u0142ko", +"Disc": "Dysk", +"Square": "Kwadrat", +"Lower Alpha": "Ma\u0142e litery", +"Lower Greek": "Ma\u0142e greckie", +"Lower Roman": "Ma\u0142e rzymskie", +"Upper Alpha": "Wielkie litery", +"Upper Roman": "Wielkie rzymskie", +"Anchor...": "Kotwica...", +"Name": "Nazwa", +"Id": "Identyfikator", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Identyfikator powinien zaczyna\u0107 si\u0119 liter\u0105, dozwolone s\u0105 tylko litery, numery, uko\u015bniki, kropki, dwukropki i podkre\u015blniki - tzw. pod\u0142ogi", +"You have unsaved changes are you sure you want to navigate away?": "Masz niezapisane zmiany. Czy na pewno chcesz opu\u015bci\u0107 stron\u0119?", +"Restore last draft": "Przywr\u00f3\u0107 ostatni szkic", +"Special characters...": "Znaki specjalne...", +"Source code": "Kod \u017ar\u00f3d\u0142owy", +"Insert\/Edit code sample": "Dodaj\/Edytuj przyk\u0142adowy kod", +"Language": "J\u0119zyk", +"Code sample...": "Przyk\u0142ad kodu...", +"Color Picker": "Selektor kolor\u00f3w", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Od lewej do prawej", +"Right to left": "Od prawej do lewej", +"Emoticons...": "Emotikony...", +"Metadata and Document Properties": "Metadane i w\u0142a\u015bciwo\u015bci dokumentu", +"Title": "Tytu\u0142", +"Keywords": "S\u0142owa kluczowe", +"Description": "Opis", +"Robots": "Roboty", +"Author": "Autor", +"Encoding": "Kodowanie", +"Fullscreen": "Pe\u0142ny ekran", +"Action": "Akcja", +"Shortcut": "Skr\u00f3t", +"Help": "Pomoc", +"Address": "Adres", +"Focus to menubar": "Skup si\u0119 na pasku menu", +"Focus to toolbar": "Skupi\u0107 si\u0119 na pasku", +"Focus to element path": "Skup si\u0119 na \u015bcie\u017cce elementu", +"Focus to contextual toolbar": "Skupi\u0107 si\u0119 na pasku narz\u0119dzi kontekstowych", +"Insert link (if link plugin activated)": "Wstaw \u0142\u0105cze (je\u015bli w\u0142\u0105czysz wtyczk\u0119 link\u00f3w)", +"Save (if save plugin activated)": "Zapisz (je\u015bli aktywowana jest wtyczka do zapisu)", +"Find (if searchreplace plugin activated)": "Znajd\u017a (je\u015bli w\u0142\u0105czysz wtyczk\u0119 do wyszukiwania)", +"Plugins installed ({0}):": "Zainstalowane wtyczki ({0}):", +"Premium plugins:": "Wtyczki Premium:", +"Learn more...": "Dowiedz si\u0119 wi\u0119cej...", +"You are using {0}": "U\u017cywasz {0}", +"Plugins": "Pluginy", +"Handy Shortcuts": "Przydatne skr\u00f3ty", +"Horizontal line": "Pozioma linia", +"Insert\/edit image": "Wstaw\/edytuj obrazek", +"Image description": "Opis obrazka", +"Source": "\u0179r\u00f3d\u0142o", +"Dimensions": "Wymiary", +"Constrain proportions": "Zachowaj proporcje", +"General": "Og\u00f3lne", +"Advanced": "Zaawansowane", +"Style": "Styl", +"Vertical space": "Odst\u0119p pionowy", +"Horizontal space": "Odst\u0119p poziomy", +"Border": "Ramka", +"Insert image": "Wstaw obrazek", +"Image...": "Obraz...", +"Image list": "Lista obrazk\u00f3w", +"Rotate counterclockwise": "Obr\u00f3\u0107 w lewo", +"Rotate clockwise": "Obr\u00f3\u0107 w prawo", +"Flip vertically": "Przerzu\u0107 w pionie", +"Flip horizontally": "Przerzu\u0107 w poziomie", +"Edit image": "Edytuj obrazek", +"Image options": "Opcje obrazu", +"Zoom in": "Powi\u0119ksz", +"Zoom out": "Pomniejsz", +"Crop": "Przytnij", +"Resize": "Zmiana rozmiaru", +"Orientation": "Orientacja", +"Brightness": "Jasno\u015b\u0107", +"Sharpen": "Wyostrz", +"Contrast": "Kontrast", +"Color levels": "Poziom koloru", +"Gamma": "Gamma", +"Invert": "Odwr\u00f3\u0107", +"Apply": "Zaakceptuj", +"Back": "Cofnij", +"Insert date\/time": "Wstaw dat\u0119\/czas", +"Date\/time": "Data\/Czas", +"Insert\/Edit Link": "Wstaw\/Edytuj \u0142\u0105cze", +"Insert\/edit link": "Wstaw\/edytuj \u0142\u0105cze", +"Text to display": "Tekst do wy\u015bwietlenia", +"Url": "URL", +"Open link in...": "Otw\u00f3rz \u0142\u0105cze w...", +"Current window": "Bie\u017c\u0105ce okno", +"None": "\u017baden", +"New window": "Nowe okno", +"Remove link": "Usu\u0144 \u0142\u0105cze", +"Anchors": "Kotwice", +"Link...": "\u0141\u0105cze...", +"Paste or type a link": "Wklej lub wpisz adres \u0142\u0105cza", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na adres e-mail. Czy chcesz doda\u0107 mailto: jako prefiks?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL, kt\u00f3ry wprowadzi\u0142e\u015b wygl\u0105da na link zewn\u0119trzny. Czy chcesz doda\u0107 http:\/\/ jako prefiks?", +"Link list": "Lista link\u00f3w", +"Insert video": "Wstaw wideo", +"Insert\/edit video": "Wstaw\/edytuj wideo", +"Insert\/edit media": "Wstaw\/Edytuj media", +"Alternative source": "Alternatywne \u017ar\u00f3d\u0142o", +"Alternative source URL": "Alternatywny URL \u017ar\u00f3d\u0142a", +"Media poster (Image URL)": "Plakat (URL obrazu)", +"Paste your embed code below:": "Wklej tutaj kod do osadzenia:", +"Embed": "Osad\u017a", +"Media...": "Multimedia...", +"Nonbreaking space": "Nie\u0142amliwa spacja", +"Page break": "Podzia\u0142 strony", +"Paste as text": "Wklej jako zwyk\u0142y tekst", +"Preview": "Podgl\u0105d", +"Print...": "Drukuj...", +"Save": "Zapisz", +"Find": "Znajd\u017a", +"Replace with": "Zamie\u0144 na", +"Replace": "Zamie\u0144", +"Replace all": "Zamie\u0144 wszystko", +"Previous": "Poprzedni", +"Next": "Nast.", +"Find and replace...": "Znajd\u017a i zamie\u0144...", +"Could not find the specified string.": "Nie znaleziono szukanego tekstu.", +"Match case": "Dopasuj wielko\u015b\u0107 liter", +"Find whole words only": "Znajd\u017a tylko ca\u0142e wyrazy", +"Spell check": "Sprawd\u017a pisowni\u0119", +"Ignore": "Ignoruj", +"Ignore all": "Ignoruj wszystko", +"Finish": "Zako\u0144cz", +"Add to Dictionary": "Dodaj do s\u0142ownika", +"Insert table": "Wstaw tabel\u0119", +"Table properties": "W\u0142a\u015bciwo\u015bci tabeli", +"Delete table": "Usu\u0144 tabel\u0119", +"Cell": "Kom\u00f3rka", +"Row": "Wiersz", +"Column": "Kolumna", +"Cell properties": "W\u0142a\u015bciwo\u015bci kom\u00f3rki", +"Merge cells": "\u0141\u0105cz kom\u00f3rki", +"Split cell": "Podziel kom\u00f3rk\u0119", +"Insert row before": "Wstaw wiersz przed", +"Insert row after": "Wstaw wiersz po", +"Delete row": "Usu\u0144 wiersz", +"Row properties": "W\u0142a\u015bciwo\u015bci wiersza", +"Cut row": "Wytnij wiersz", +"Copy row": "Kopiuj wiersz", +"Paste row before": "Wklej wiersz przed", +"Paste row after": "Wklej wiersz po", +"Insert column before": "Wstaw kolumn\u0119 przed", +"Insert column after": "Wstaw kolumn\u0119 po", +"Delete column": "Usu\u0144 kolumn\u0119", +"Cols": "Kol.", +"Rows": "Wiersz.", +"Width": "Szeroko\u015b\u0107", +"Height": "Wysoko\u015b\u0107", +"Cell spacing": "Odst\u0119py kom\u00f3rek", +"Cell padding": "Dope\u0142nienie kom\u00f3rki", +"Show caption": "Poka\u017c podpis", +"Left": "Lewo", +"Center": "\u015arodek", +"Right": "Prawo", +"Cell type": "Typ kom\u00f3rki", +"Scope": "Kontekst", +"Alignment": "Wyr\u00f3wnanie", +"H Align": "Wyr\u00f3wnanie w pionie", +"V Align": "Wyr\u00f3wnanie w poziomie", +"Top": "G\u00f3ra", +"Middle": "\u015arodek", +"Bottom": "D\u00f3\u0142", +"Header cell": "Kom\u00f3rka nag\u0142\u00f3wka", +"Row group": "Grupa wierszy", +"Column group": "Grupa kolumn", +"Row type": "Typ wiersza", +"Header": "Nag\u0142\u00f3wek", +"Body": "Tre\u015b\u0107", +"Footer": "Stopka", +"Border color": "Kolor ramki", +"Insert template...": "Wstaw szablon...", +"Templates": "Szablony", +"Template": "Szablon", +"Text color": "Kolor tekstu", +"Background color": "Kolor t\u0142a", +"Custom...": "Niestandardowy...", +"Custom color": "Kolor niestandardowy", +"No color": "Bez koloru", +"Remove color": "Usu\u0144 kolor", +"Table of Contents": "Spis tre\u015bci", +"Show blocks": "Poka\u017c bloki", +"Show invisible characters": "Poka\u017c niewidoczne znaki", +"Word count": "Liczba s\u0142\u00f3w", +"Words: {0}": "S\u0142\u00f3w: {0}", +"{0} words": "{0} s\u0142\u00f3w", +"File": "Plik", +"Edit": "Edycja", +"Insert": "Wstaw", +"View": "Widok", +"Format": "Format", +"Table": "Tabela", +"Tools": "Narz\u0119dzia", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Obszar Edycji. ALT-F9 - menu. ALT-F10 - pasek narz\u0119dzi. ALT-0 - pomoc", +"Image title": "Tytu\u0142 obrazu", +"Border width": "Grubo\u015b\u0107 ramki", +"Border style": "Styl ramki", +"Error": "B\u0142\u0105d", +"Warn": "Ostrze\u017cenie", +"Valid": "Prawid\u0142owe", +"To open the popup, press Shift+Enter": "Aby otworzy\u0107 okienko, naci\u015bnij Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Obszar tekstu sformatowanego. Naci\u015bnij ALT-0, aby uzyska\u0107 pomoc.", +"System Font": "Font systemowy", +"Failed to upload image: {0}": "Nie uda\u0142o si\u0119 przes\u0142a\u0107 obrazu: {0}", +"Failed to load plugin: {0} from url {1}": "Nie uda\u0142o si\u0119 za\u0142adowa\u0107 dodatku: {0} spod adresu url {1}", +"Failed to load plugin url: {0}": "Nie uda\u0142o si\u0119 za\u0142adowa\u0107 adresu url dodatku: {0}", +"Failed to initialize plugin: {0}": "Nie mo\u017cna zainicjowa\u0107 dodatku: {0}", +"example": "przyk\u0142ad", +"Search": "Wyszukaj", +"All": "Wszystkie", +"Currency": "Waluta", +"Text": "Tekst", +"Quotations": "Cudzys\u0142owy", +"Mathematical": "Matematyczne", +"Extended Latin": "Rozszerzony \u0142aci\u0144ski", +"Symbols": "Symbole", +"Arrows": "Strza\u0142ki", +"User Defined": "W\u0142asny", +"dollar sign": "znak dolara", +"currency sign": "znak waluty", +"euro-currency sign": "znak euro", +"colon sign": "znak colon", +"cruzeiro sign": "znak cruzeiro", +"french franc sign": "znak franka francuskiego", +"lira sign": "znak liry", +"mill sign": "znak mill", +"naira sign": "znak nairy", +"peseta sign": "znak pesety", +"rupee sign": "znak rupii", +"won sign": "znak wona", +"new sheqel sign": "znak nowego szekla", +"dong sign": "znak donga", +"kip sign": "znak kipa", +"tugrik sign": "znak tugrika", +"drachma sign": "znak drachmy", +"german penny symbol": "znak feniga", +"peso sign": "znak peso", +"guarani sign": "znak guarani", +"austral sign": "znak australa", +"hryvnia sign": "znak hrywny", +"cedi sign": "znak cedi", +"livre tournois sign": "znak livre tournois", +"spesmilo sign": "znak spesmilo", +"tenge sign": "znak tenge", +"indian rupee sign": "znak rupii indyjskiej", +"turkish lira sign": "znak liry tureckiej", +"nordic mark sign": "znak nordic mark", +"manat sign": "znak manata", +"ruble sign": "znak rubla", +"yen character": "znak jena", +"yuan character": "znak juana", +"yuan character, in hong kong and taiwan": "znak juana w Hongkongu i na Tajwanie", +"yen\/yuan character variant one": "jen\/juan, wariant pierwszy", +"Loading emoticons...": "\u0141adowanie emotikon\u00f3w...", +"Could not load emoticons": "Nie mo\u017cna za\u0142adowa\u0107 emotikon\u00f3w", +"People": "Ludzie", +"Animals and Nature": "Zwierz\u0119ta i natura", +"Food and Drink": "Jedzenie i picie", +"Activity": "Aktywno\u015b\u0107", +"Travel and Places": "Podr\u00f3\u017ce i miejsca", +"Objects": "Obiekty", +"Flags": "Flagi", +"Characters": "Znaki", +"Characters (no spaces)": "Znaki (bez spacji)", +"Error: Form submit field collision.": "B\u0142\u0105d: kolizja pola przesy\u0142ania formularza.", +"Error: No form element found.": "B\u0142\u0105d: nie znaleziono elementu formularza.", +"Update": "Aktualizuj", +"Color swatch": "Pr\u00f3bka koloru", +"Turquoise": "Turkusowy", +"Green": "Zielony", +"Blue": "Niebieski", +"Purple": "Purpurowy", +"Navy Blue": "Ciemnoniebieski", +"Dark Turquoise": "Ciemnoturkusowy", +"Dark Green": "Ciemnozielony", +"Medium Blue": "\u015arednioniebieski", +"Medium Purple": "\u015aredniopurpurowy", +"Midnight Blue": "Nocny b\u0142\u0119kit", +"Yellow": "\u017b\u00f3\u0142ty", +"Orange": "Pomara\u0144czowy", +"Red": "Czerwony", +"Light Gray": "Jasnoszary", +"Gray": "Szary", +"Dark Yellow": "Ciemno\u017c\u00f3\u0142ty", +"Dark Orange": "Ciemnopomara\u0144czowy", +"Dark Red": "Ciemnoczerwony", +"Medium Gray": "\u015arednioszary", +"Dark Gray": "Ciemnoszary", +"Black": "Czarny", +"White": "Bia\u0142y", +"Switch to or from fullscreen mode": "W\u0142\u0105cz lub wy\u0142\u0105cz tryb pe\u0142noekranowy", +"Open help dialog": "Otw\u00f3rz okno dialogowe pomocy", +"history": "historia", +"styles": "style", +"formatting": "formatowanie", +"alignment": "wyr\u00f3wnanie", +"indentation": "wci\u0119cie", +"permanent pen": "marker", +"comments": "komentarze", +"Anchor": "Kotwica", +"Special character": "Znak specjalny", +"Code sample": "Przyk\u0142ad kodu \u017ar\u00f3d\u0142owego", +"Color": "Kolor", +"Emoticons": "Ikony emocji", +"Document properties": "W\u0142a\u015bciwo\u015bci dokumentu", +"Image": "Obraz", +"Insert link": "Wstaw \u0142\u0105cze", +"Target": "Cel", +"Link": "Adres \u0142\u0105cza", +"Poster": "Plakat", +"Media": "Media", +"Print": "Drukuj", +"Prev": "Poprz.", +"Find and replace": "Znajd\u017a i zamie\u0144", +"Whole words": "Ca\u0142e s\u0142owa", +"Spellcheck": "Sprawdzanie pisowni", +"Caption": "Tytu\u0142", +"Insert template": "Wstaw szablon" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/pt_BR.js b/common/plugins/editors/tinymce/media/langs/pt_BR.js new file mode 100755 index 0000000000000000000000000000000000000000..4de76635bef8c01a9dd527627f18ca1894efcdf0 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/pt_BR.js @@ -0,0 +1,389 @@ +tinymce.addI18n('pt_BR',{ +"Redo": "Refazer", +"Undo": "Desfazer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Colar", +"Select all": "Selecionar tudo", +"New document": "Novo documento", +"Ok": "Ok", +"Cancel": "Cancelar", +"Visual aids": "Ajuda visual", +"Bold": "Negrito", +"Italic": "It\u00e1lico", +"Underline": "Sublinhado", +"Strikethrough": "Tachado", +"Superscript": "Sobrescrito", +"Subscript": "Subscrito", +"Clear formatting": "Limpar formata\u00e7\u00e3o", +"Align left": "Alinhar \u00e0 esquerda", +"Align center": "Centralizar", +"Align right": "Alinhar \u00e0 direita", +"Justify": "Justificar", +"Bullet list": "Lista n\u00e3o ordenada", +"Numbered list": "Lista ordenada", +"Decrease indent": "Diminuir recuo", +"Increase indent": "Aumentar recuo", +"Close": "Fechar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Seu navegador n\u00e3o suporta acesso direto \u00e0 \u00e1rea de transfer\u00eancia. Por favor use os atalhos Ctrl+X - C - V do teclado", +"Headers": "Cabe\u00e7alhos", +"Header 1": "Cabe\u00e7alho 1", +"Header 2": "Cabe\u00e7alho 2", +"Header 3": "Cabe\u00e7alho 3", +"Header 4": "Cabe\u00e7alho 4", +"Header 5": "Cabe\u00e7alho 5", +"Header 6": "Cabe\u00e7alho 6", +"Headings": "T\u00edtulos", +"Heading 1": "T\u00edtulo 1", +"Heading 2": "T\u00edtulo 2", +"Heading 3": "T\u00edtulo 3", +"Heading 4": "T\u00edtulo 4", +"Heading 5": "T\u00edtulo 5", +"Heading 6": "T\u00edtulo 6", +"Preformatted": "Pr\u00e9-formatado", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "Par\u00e1grafo", +"Blockquote": "Aspas", +"Inline": "Em linha", +"Blocks": "Blocos", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 agora em modo texto plano. O conte\u00fado ser\u00e1 colado como texto plano at\u00e9 voc\u00ea desligar esta op\u00e7\u00e3o.", +"Fonts": "Fontes", +"Font Sizes": "Tamanhos da fonte", +"Class": "Classe", +"Browse for an image": "Procure uma imagem", +"OR": "OU", +"Drop an image here": "Solte uma imagem aqui", +"Upload": "Carregar", +"Block": "Bloco", +"Align": "Alinhamento", +"Default": "Padr\u00e3o", +"Circle": "C\u00edrculo", +"Disc": "Disco", +"Square": "Quadrado", +"Lower Alpha": "a. b. c. ...", +"Lower Greek": "\u03b1. \u03b2. \u03b3. ...", +"Lower Roman": "i. ii. iii. ...", +"Upper Alpha": "A. B. C. ...", +"Upper Roman": "I. II. III. ...", +"Anchor...": "\u00c2ncora...", +"Name": "Nome", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id deve come\u00e7ar com uma letra, seguido apenas por letras, n\u00fameros, tra\u00e7os, pontos, dois pontos ou sublinhados.", +"You have unsaved changes are you sure you want to navigate away?": "Voc\u00ea tem mudan\u00e7as n\u00e3o salvas. Voc\u00ea tem certeza que deseja sair?", +"Restore last draft": "Restaurar \u00faltimo rascunho", +"Special characters...": "Caracteres especiais...", +"Source code": "C\u00f3digo fonte", +"Insert\/Edit code sample": "Inserir\/Editar c\u00f3digo de exemplo", +"Language": "Idioma", +"Code sample...": "Exemplo de c\u00f3digo...", +"Color Picker": "Seletor de Cores", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Da esquerda para a direita", +"Right to left": "Da direita para a esquerda", +"Emoticons...": "Emojis...", +"Metadata and Document Properties": "Metadados e Propriedades do Documento", +"Title": "T\u00edtulo", +"Keywords": "Palavras-chave", +"Description": "Descri\u00e7\u00e3o", +"Robots": "Rob\u00f4s", +"Author": "Autor", +"Encoding": "Codifica\u00e7\u00e3o", +"Fullscreen": "Tela cheia", +"Action": "A\u00e7\u00e3o", +"Shortcut": "Atalho", +"Help": "Ajuda", +"Address": "Endere\u00e7o", +"Focus to menubar": "Foco no menu", +"Focus to toolbar": "Foco na barra de ferramentas", +"Focus to element path": "Foco no caminho do elemento", +"Focus to contextual toolbar": "Foco na barra de ferramentas contextual", +"Insert link (if link plugin activated)": "Inserir link (se o plugin de link estiver ativado)", +"Save (if save plugin activated)": "Salvar (se o plugin de salvar estiver ativado)", +"Find (if searchreplace plugin activated)": "Procurar (se o plugin de procurar e substituir estiver ativado)", +"Plugins installed ({0}):": "Plugins instalados ({0}):", +"Premium plugins:": "Plugins premium:", +"Learn more...": "Saiba mais...", +"You are using {0}": "Voc\u00ea est\u00e1 usando {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Atalhos \u00fateis", +"Horizontal line": "Linha horizontal", +"Insert\/edit image": "Inserir\/editar imagem", +"Image description": "Inserir descri\u00e7\u00e3o", +"Source": "Endere\u00e7o da imagem", +"Dimensions": "Dimens\u00f5es", +"Constrain proportions": "Manter propor\u00e7\u00f5es", +"General": "Geral", +"Advanced": "Avan\u00e7ado", +"Style": "Estilo", +"Vertical space": "Espa\u00e7amento vertical", +"Horizontal space": "Espa\u00e7amento horizontal", +"Border": "Borda", +"Insert image": "Inserir imagem", +"Image...": "Imagem...", +"Image list": "Lista de Imagens", +"Rotate counterclockwise": "Girar em sentido hor\u00e1rio", +"Rotate clockwise": "Girar em sentido anti-hor\u00e1rio", +"Flip vertically": "Virar verticalmente", +"Flip horizontally": "Virar horizontalmente", +"Edit image": "Editar imagem", +"Image options": "Op\u00e7\u00f5es de Imagem", +"Zoom in": "Aumentar zoom", +"Zoom out": "Diminuir zoom", +"Crop": "Cortar", +"Resize": "Redimensionar", +"Orientation": "Orienta\u00e7\u00e3o", +"Brightness": "Brilho", +"Sharpen": "Aumentar nitidez", +"Contrast": "Contraste", +"Color levels": "N\u00edveis de cor", +"Gamma": "Gama", +"Invert": "Inverter", +"Apply": "Aplicar", +"Back": "Voltar", +"Insert date\/time": "Inserir data\/hora", +"Date\/time": "data\/hora", +"Insert\/Edit Link": "Inserir\/Editar Link", +"Insert\/edit link": "Inserir\/editar link", +"Text to display": "Texto para mostrar", +"Url": "Url", +"Open link in...": "Abrir link em...", +"Current window": "Janela atual", +"None": "Nenhum", +"New window": "Nova janela", +"Remove link": "Remover link", +"Anchors": "\u00c2ncoras", +"Link...": "Link...", +"Paste or type a link": "Cole ou digite um Link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "A URL que voc\u00ea informou parece ser um link externo. Deseja incluir o prefixo http:\/\/?", +"Link list": "Lista de Links", +"Insert video": "Inserir v\u00eddeo", +"Insert\/edit video": "Inserir\/editar v\u00eddeo", +"Insert\/edit media": "Inserir\/editar imagem", +"Alternative source": "Fonte alternativa", +"Alternative source URL": "Endere\u00e7o URL alternativo", +"Media poster (Image URL)": "Post de m\u00eddia (URL da Imagem)", +"Paste your embed code below:": "Insira o c\u00f3digo de incorpora\u00e7\u00e3o abaixo:", +"Embed": "Incorporar", +"Media...": "M\u00eddia...", +"Nonbreaking space": "Espa\u00e7o n\u00e3o separ\u00e1vel", +"Page break": "Quebra de p\u00e1gina", +"Paste as text": "Colar como texto", +"Preview": "Pr\u00e9-visualizar", +"Print...": "Imprimir...", +"Save": "Salvar", +"Find": "Localizar", +"Replace with": "Substituir por", +"Replace": "Substituir", +"Replace all": "Substituir tudo", +"Previous": "Anterior", +"Next": "Pr\u00f3ximo", +"Find and replace...": "Encontrar e substituir...", +"Could not find the specified string.": "N\u00e3o foi poss\u00edvel encontrar o termo especificado", +"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas", +"Find whole words only": "Encontrar somente palavras inteiras", +"Spell check": "Verifica\u00e7\u00e3o ortogr\u00e1fica", +"Ignore": "Ignorar", +"Ignore all": "Ignorar tudo", +"Finish": "Finalizar", +"Add to Dictionary": "Adicionar ao Dicion\u00e1rio", +"Insert table": "Inserir tabela", +"Table properties": "Propriedades da tabela", +"Delete table": "Excluir tabela", +"Cell": "C\u00e9lula", +"Row": "Linha", +"Column": "Coluna", +"Cell properties": "Propriedades da c\u00e9lula", +"Merge cells": "Agrupar c\u00e9lulas", +"Split cell": "Dividir c\u00e9lula", +"Insert row before": "Inserir linha antes", +"Insert row after": "Inserir linha depois", +"Delete row": "Excluir linha", +"Row properties": "Propriedades da linha", +"Cut row": "Recortar linha", +"Copy row": "Copiar linha", +"Paste row before": "Colar linha antes", +"Paste row after": "Colar linha depois", +"Insert column before": "Inserir coluna antes", +"Insert column after": "Inserir coluna depois", +"Delete column": "Excluir coluna", +"Cols": "Colunas", +"Rows": "Linhas", +"Width": "Largura", +"Height": "Altura", +"Cell spacing": "Espa\u00e7amento da c\u00e9lula", +"Cell padding": "Espa\u00e7amento interno da c\u00e9lula", +"Show caption": "Mostrar descri\u00e7\u00e3o", +"Left": "Esquerdo", +"Center": "Centro", +"Right": "Direita", +"Cell type": "Tipo de c\u00e9lula", +"Scope": "Escopo", +"Alignment": "Alinhamento", +"H Align": "Alinhamento H", +"V Align": "Alinhamento V", +"Top": "Superior", +"Middle": "Meio", +"Bottom": "Inferior", +"Header cell": "C\u00e9lula cabe\u00e7alho", +"Row group": "Agrupar linha", +"Column group": "Agrupar coluna", +"Row type": "Tipo de linha", +"Header": "Cabe\u00e7alho", +"Body": "Corpo", +"Footer": "Rodap\u00e9", +"Border color": "Cor da borda", +"Insert template...": "Inserir modelo...", +"Templates": "Modelos", +"Template": "Modelo", +"Text color": "Cor do texto", +"Background color": "Cor do fundo", +"Custom...": "Personalizado...", +"Custom color": "Cor personalizada", +"No color": "Nenhuma cor", +"Remove color": "Remover cor", +"Table of Contents": "\u00edndice de Conte\u00fado", +"Show blocks": "Mostrar blocos", +"Show invisible characters": "Exibir caracteres invis\u00edveis", +"Word count": "Contador de palavras", +"Words: {0}": "Palavras: {0}", +"{0} words": "{0} palavras", +"File": "Arquivo", +"Edit": "Editar", +"Insert": "Inserir", +"View": "Visualizar", +"Format": "Formatar", +"Table": "Tabela", +"Tools": "Ferramentas", +"Powered by {0}": "Distribu\u00eddo por {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto formatado. Pressione ALT-F9 para exibir o menu, ALT-F10 para exibir a barra de ferramentas ou ALT-0 para exibir a ajuda", +"Image title": "T\u00edtulo da imagem", +"Border width": "Espessura da borda", +"Border style": "Estilo da borda", +"Error": "Erro", +"Warn": "Aviso", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir a popup, aperte Shit+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea Rich Text. Aperte ALT-0 para ajuda.", +"System Font": "Fonte do sistema", +"Failed to upload image: {0}": "Falha no upload da imagem: {0}", +"Failed to load plugin: {0} from url {1}": "Falha ao carregar plugin: {0} da url {1}", +"Failed to load plugin url: {0}": "Falha ao carregar url do plugin: {0}", +"Failed to initialize plugin: {0}": "Falha ao inicializar plugin: {0}", +"example": "exemplo", +"Search": "Pesquisar", +"All": "Tudo", +"Currency": "Moeda", +"Text": "Texto", +"Quotations": "Cita\u00e7\u00f5es", +"Mathematical": "Matem\u00e1tico", +"Extended Latin": "Latino estendido", +"Symbols": "S\u00edmbolos", +"Arrows": "Setas", +"User Defined": "Definido pelo Usu\u00e1rio", +"dollar sign": "s\u00edmbolo de d\u00f3lar", +"currency sign": "s\u00edmbolo de moeda", +"euro-currency sign": "s\u00edmbolo de euro", +"colon sign": "s\u00edmbolo de dois pontos", +"cruzeiro sign": "s\u00edmbolo de cruzeiro", +"french franc sign": "s\u00edmbolo de franco franc\u00eas", +"lira sign": "s\u00edmbolo de lira", +"mill sign": "s\u00edmbolo do mill", +"naira sign": "s\u00edmbolo da naira", +"peseta sign": "s\u00edmbolo da peseta", +"rupee sign": "s\u00edmbolo da r\u00fapia", +"won sign": "s\u00edmbolo do won", +"new sheqel sign": "s\u00edmbolo do novo sheqel", +"dong sign": "s\u00edmbolo do dong", +"kip sign": "s\u00edmbolo do kip", +"tugrik sign": "s\u00edmbolo do tugrik", +"drachma sign": "s\u00edmbolo do drachma", +"german penny symbol": "s\u00edmbolo de centavo alem\u00e3o", +"peso sign": "s\u00edmbolo do peso", +"guarani sign": "s\u00edmbolo do guarani", +"austral sign": "s\u00edmbolo do austral", +"hryvnia sign": "s\u00edmbolo do hryvnia", +"cedi sign": "s\u00edmbolo do cedi", +"livre tournois sign": "s\u00edmbolo do livre tournois", +"spesmilo sign": "s\u00edmbolo do spesmilo", +"tenge sign": "s\u00edmbolo do tenge", +"indian rupee sign": "s\u00edmbolo de r\u00fapia indiana", +"turkish lira sign": "s\u00edmbolo de lira turca", +"nordic mark sign": "s\u00edmbolo do marco n\u00f3rdico", +"manat sign": "s\u00edmbolo do manat", +"ruble sign": "s\u00edmbolo do rublo", +"yen character": "caractere do yen", +"yuan character": "caractere do yuan", +"yuan character, in hong kong and taiwan": "caractere do yuan, em Hong Kong e Taiwan", +"yen\/yuan character variant one": "varia\u00e7\u00e3o do caractere de yen\/yuan", +"Loading emoticons...": "Carregando emojis...", +"Could not load emoticons": "N\u00e3o foi poss\u00edvel carregar emojis", +"People": "Pessoas", +"Animals and Nature": "Animais e Natureza", +"Food and Drink": "Comida e Bebida", +"Activity": "Atividade", +"Travel and Places": "Viagem e Lugares", +"Objects": "Objetos", +"Flags": "Bandeiras", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sem espa\u00e7os)", +"Error: Form submit field collision.": "Erro: colis\u00e3o de bot\u00e3o de envio do formul\u00e1rio.", +"Error: No form element found.": "Erro: elemento de formul\u00e1rio n\u00e3o encontrado.", +"Update": "Atualizar", +"Color swatch": "Amostra de cor", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "Roxo", +"Navy Blue": "Azul marinho", +"Dark Turquoise": "Turquesa escuro", +"Dark Green": "Verde escuro", +"Medium Blue": "Azul m\u00e9dio", +"Medium Purple": "Roxo m\u00e9dio", +"Midnight Blue": "Azul meia-noite", +"Yellow": "Amarelo", +"Orange": "Laranja", +"Red": "Vermelho", +"Light Gray": "Cinza claro", +"Gray": "Cinza", +"Dark Yellow": "Amarelo escuro", +"Dark Orange": "Laranja escuro", +"Dark Red": "Vermelho escuro", +"Medium Gray": "Cinza m\u00e9dio", +"Dark Gray": "Cinza escuro", +"Black": "Preto", +"White": "Branco", +"Switch to or from fullscreen mode": "Abrir ou fechar modo de tela cheia", +"Open help dialog": "Abrir janela de ajuda", +"history": "hist\u00f3rico", +"styles": "estilos", +"formatting": "formata\u00e7\u00e3o", +"alignment": "alinhamento", +"indentation": "indenta\u00e7\u00e3o", +"permanent pen": "caneta permanente", +"comments": "coment\u00e1rios", +"Anchor": "\u00c2ncora", +"Special character": "Caracteres especiais", +"Code sample": "Exemplo de c\u00f3digo", +"Color": "Cor", +"Emoticons": "Emoticons", +"Document properties": "Propriedades do documento", +"Image": "Imagem", +"Insert link": "Inserir link", +"Target": "Alvo", +"Link": "Link", +"Poster": "Autor", +"Media": "imagem", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Localizar e substituir", +"Whole words": "Palavras inteiras", +"Spellcheck": "Corretor ortogr\u00e1fico", +"Caption": "Legenda", +"Insert template": "Inserir modelo" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/pt_PT.js b/common/plugins/editors/tinymce/media/langs/pt_PT.js new file mode 100755 index 0000000000000000000000000000000000000000..7d86eebc95fa0fa9f44e681dd2228807d36ae6dd --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/pt_PT.js @@ -0,0 +1,389 @@ +tinymce.addI18n('pt_PT',{ +"Redo": "Refazer", +"Undo": "Desfazer", +"Cut": "Cortar", +"Copy": "Copiar", +"Paste": "Colar", +"Select all": "Selecionar tudo", +"New document": "Novo documento", +"Ok": "Ok", +"Cancel": "Cancelar", +"Visual aids": "Ajuda visual", +"Bold": "Negrito", +"Italic": "It\u00e1lico", +"Underline": "Sublinhado", +"Strikethrough": "Rasurado", +"Superscript": "Superior \u00e0 linha", +"Subscript": "Inferior \u00e0 linha", +"Clear formatting": "Limpar formata\u00e7\u00e3o", +"Align left": "Alinhar \u00e0 esquerda", +"Align center": "Alinhar ao centro", +"Align right": "Alinhar \u00e0 direita", +"Justify": "Justificar", +"Bullet list": "Lista com marcadores", +"Numbered list": "Lista numerada", +"Decrease indent": "Diminuir avan\u00e7o", +"Increase indent": "Aumentar avan\u00e7o", +"Close": "Fechar", +"Formats": "Formatos", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "O seu navegador n\u00e3o suporta acesso direto \u00e0 \u00e1rea de transfer\u00eancia. Por favor, use os atalhos Ctrl+X\/C\/V do seu teclado.", +"Headers": "Cabe\u00e7alhos", +"Header 1": "Cabe\u00e7alho 1", +"Header 2": "Cabe\u00e7alho 2", +"Header 3": "Cabe\u00e7alho 3", +"Header 4": "Cabe\u00e7alho 4", +"Header 5": "Cabe\u00e7alho 5", +"Header 6": "Cabe\u00e7alho 6", +"Headings": "T\u00edtulos", +"Heading 1": "T\u00edtulo 1", +"Heading 2": "T\u00edtulo 2", +"Heading 3": "T\u00edtulo 3", +"Heading 4": "T\u00edtulo 4", +"Heading 5": "T\u00edtulo 5", +"Heading 6": "T\u00edtulo 6", +"Preformatted": "Pr\u00e9-formatado", +"Div": "Div", +"Pre": "Pre", +"Code": "C\u00f3digo", +"Paragraph": "Par\u00e1grafo", +"Blockquote": "Cita\u00e7\u00e3o em bloco", +"Inline": "Na linha", +"Blocks": "Blocos", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "O comando colar est\u00e1 em modo de texto simples. O conte\u00fado ser\u00e1 colado como texto simples at\u00e9 desativar esta op\u00e7\u00e3o.", +"Fonts": "Fontes", +"Font Sizes": "Tamanhos", +"Class": "Classe", +"Browse for an image": "Navegar por uma imagem", +"OR": "Ou", +"Drop an image here": "Largue aqui uma imagem", +"Upload": "Carregar", +"Block": "Bloco", +"Align": "Alinhar", +"Default": "Padr\u00e3o", +"Circle": "C\u00edrculo", +"Disc": "Disco", +"Square": "Quadrado", +"Lower Alpha": "a. b. c. ...", +"Lower Greek": "\\u03b1. \\u03b2. \\u03b3. ...", +"Lower Roman": "i. ii. iii. ...", +"Upper Alpha": "A. B. C. ...", +"Upper Roman": "I. II. III. ...", +"Anchor...": "\u00c2ncora...", +"Name": "Nome", +"Id": "ID", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "O ID deve come\u00e7ar com uma letra, seguido apenas por letras, n\u00fameros, pontos, dois pontos, tra\u00e7os ou sobtra\u00e7os.", +"You have unsaved changes are you sure you want to navigate away?": "Existem altera\u00e7\u00f5es que ainda n\u00e3o foram guardadas. Tem a certeza que pretende sair?", +"Restore last draft": "Restaurar o \u00faltimo rascunho", +"Special characters...": "Caracteres especiais...", +"Source code": "C\u00f3digo fonte", +"Insert\/Edit code sample": "Inserir\/editar amostra de c\u00f3digo", +"Language": "Idioma", +"Code sample...": "Amostra de c\u00f3digo...", +"Color Picker": "Seletor de cor", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Da esquerda para a direita", +"Right to left": "Da direita para a esquerda", +"Emoticons...": "\u00cdcones expressivos", +"Metadata and Document Properties": "Metadados e propriedades do documento", +"Title": "T\u00edtulo", +"Keywords": "Palavras-chave", +"Description": "Descri\u00e7\u00e3o", +"Robots": "Rob\u00f4s", +"Author": "Autor", +"Encoding": "Codifica\u00e7\u00e3o", +"Fullscreen": "Ecr\u00e3 completo", +"Action": "A\u00e7\u00e3o", +"Shortcut": "Atalho", +"Help": "Ajuda", +"Address": "Endere\u00e7o", +"Focus to menubar": "Foco na barra de menu", +"Focus to toolbar": "Foco na barra de ferramentas", +"Focus to element path": "Foco no caminho do elemento", +"Focus to contextual toolbar": "Foco na barra de contexto", +"Insert link (if link plugin activated)": "Inserir hiperliga\u00e7\u00e3o (se o plugin de liga\u00e7\u00f5es estiver ativado)", +"Save (if save plugin activated)": "Guardar (se o plugin de guardar estiver ativado)", +"Find (if searchreplace plugin activated)": "Pesquisar (se o plugin pesquisar e substituir estiver ativado)", +"Plugins installed ({0}):": "Plugins instalados ({0}):", +"Premium plugins:": "Plugins comerciais:", +"Learn more...": "Saiba mais...", +"You are using {0}": "Est\u00e1 a usar {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Atalhos \u00fateis", +"Horizontal line": "Linha horizontal", +"Insert\/edit image": "Inserir\/editar imagem", +"Image description": "Descri\u00e7\u00e3o da imagem", +"Source": "Localiza\u00e7\u00e3o", +"Dimensions": "Dimens\u00f5es", +"Constrain proportions": "Manter propor\u00e7\u00f5es", +"General": "Geral", +"Advanced": "Avan\u00e7ado", +"Style": "Estilo", +"Vertical space": "Espa\u00e7amento vertical", +"Horizontal space": "Espa\u00e7amento horizontal", +"Border": "Contorno", +"Insert image": "Inserir imagem", +"Image...": "Imagem...", +"Image list": "Lista de imagens", +"Rotate counterclockwise": "Rota\u00e7\u00e3o anti-hor\u00e1ria", +"Rotate clockwise": "Rota\u00e7\u00e3o hor\u00e1ria", +"Flip vertically": "Inverter verticalmente", +"Flip horizontally": "Inverter horizontalmente", +"Edit image": "Editar imagem", +"Image options": "Op\u00e7\u00f5es de imagem", +"Zoom in": "Mais zoom", +"Zoom out": "Menos zoom", +"Crop": "Recortar", +"Resize": "Redimensionar", +"Orientation": "Orienta\u00e7\u00e3o", +"Brightness": "Brilho", +"Sharpen": "Mais nitidez", +"Contrast": "Contraste", +"Color levels": "N\u00edveis de cor", +"Gamma": "Gama", +"Invert": "Inverter", +"Apply": "Aplicar", +"Back": "Voltar", +"Insert date\/time": "Inserir data\/hora", +"Date\/time": "Data\/hora", +"Insert\/Edit Link": "Inserir\/editar liga\u00e7\u00e3o", +"Insert\/edit link": "Inserir\/editar liga\u00e7\u00e3o", +"Text to display": "Texto a exibir", +"Url": "URL", +"Open link in...": "Abrir liga\u00e7\u00e3o em...", +"Current window": "Janela atual", +"None": "Nenhum", +"New window": "Nova janela", +"Remove link": "Remover liga\u00e7\u00e3o", +"Anchors": "\u00c2ncora", +"Link...": "Liga\u00e7\u00e3o...", +"Paste or type a link": "Copiar ou escrever uma hiperliga\u00e7\u00e3o", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "O URL que indicou parece ser um endere\u00e7o de email. Quer adicionar o prefixo mailto: tal como necess\u00e1rio?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "O URL que indicou parece ser um endere\u00e7o web. Quer adicionar o prefixo http:\/\/ tal como necess\u00e1rio?", +"Link list": "Lista de liga\u00e7\u00f5es", +"Insert video": "Inserir v\u00eddeo", +"Insert\/edit video": "Inserir\/editar v\u00eddeo", +"Insert\/edit media": "Inserir\/editar media", +"Alternative source": "Localiza\u00e7\u00e3o alternativa", +"Alternative source URL": "URL da origem alternativa", +"Media poster (Image URL)": "Publicador de media (URL da imagem)", +"Paste your embed code below:": "Colar c\u00f3digo para embeber:", +"Embed": "Embeber", +"Media...": "Media...", +"Nonbreaking space": "Espa\u00e7o n\u00e3o quebr\u00e1vel", +"Page break": "Quebra de p\u00e1gina", +"Paste as text": "Colar como texto", +"Preview": "Pr\u00e9-visualizar", +"Print...": "Imprimir...", +"Save": "Guardar", +"Find": "Pesquisar", +"Replace with": "Substituir por", +"Replace": "Substituir", +"Replace all": "Substituir tudo", +"Previous": "Anterior", +"Next": "Pr\u00f3ximo", +"Find and replace...": "Localizar e substituir...", +"Could not find the specified string.": "N\u00e3o foi poss\u00edvel localizar o termo especificado.", +"Match case": "Diferenciar mai\u00fasculas e min\u00fasculas", +"Find whole words only": "Localizar apenas palavras inteiras", +"Spell check": "Verifica\u00e7\u00e3o ortogr\u00e1fica", +"Ignore": "Ignorar", +"Ignore all": "Ignorar tudo", +"Finish": "Concluir", +"Add to Dictionary": "Adicionar ao dicion\u00e1rio", +"Insert table": "Inserir tabela", +"Table properties": "Propriedades da tabela", +"Delete table": "Eliminar tabela", +"Cell": "C\u00e9lula", +"Row": "Linha", +"Column": "Coluna", +"Cell properties": "Propriedades da c\u00e9lula", +"Merge cells": "Unir c\u00e9lulas", +"Split cell": "Dividir c\u00e9lula", +"Insert row before": "Inserir linha antes", +"Insert row after": "Inserir linha depois", +"Delete row": "Eliminar linha", +"Row properties": "Propriedades da linha", +"Cut row": "Cortar linha", +"Copy row": "Copiar linha", +"Paste row before": "Colar linha antes", +"Paste row after": "Colar linha depois", +"Insert column before": "Inserir coluna antes", +"Insert column after": "Inserir coluna depois", +"Delete column": "Eliminar coluna", +"Cols": "Colunas", +"Rows": "Linhas", +"Width": "Largura", +"Height": "Altura", +"Cell spacing": "Espa\u00e7amento entre c\u00e9lulas", +"Cell padding": "Espa\u00e7amento interno da c\u00e9lula", +"Show caption": "Mostrar legenda", +"Left": "Esquerda", +"Center": "Centro", +"Right": "Direita", +"Cell type": "Tipo de c\u00e9lula", +"Scope": "Escopo", +"Alignment": "Alinhamento", +"H Align": "Alinhamento H", +"V Align": "Alinhamento V", +"Top": "Superior", +"Middle": "Meio", +"Bottom": "Inferior", +"Header cell": "C\u00e9lula de cabe\u00e7alho", +"Row group": "Agrupar linha", +"Column group": "Agrupar coluna", +"Row type": "Tipo de linha", +"Header": "Cabe\u00e7alho", +"Body": "Corpo", +"Footer": "Rodap\u00e9", +"Border color": "Cor de contorno", +"Insert template...": "Inserir modelo...", +"Templates": "Modelos", +"Template": "Tema", +"Text color": "Cor do texto", +"Background color": "Cor de fundo", +"Custom...": "Personalizada...", +"Custom color": "Cor personalizada", +"No color": "Sem cor", +"Remove color": "Remover cor", +"Table of Contents": "\u00cdndice", +"Show blocks": "Mostrar blocos", +"Show invisible characters": "Mostrar caracteres invis\u00edveis", +"Word count": "Contagem de palavras", +"Words: {0}": "Palavras: {0}", +"{0} words": "{0} palavras", +"File": "Ficheiro", +"Edit": "Editar", +"Insert": "Inserir", +"View": "Ver", +"Format": "Formatar", +"Table": "Tabela", +"Tools": "Ferramentas", +"Powered by {0}": "Criado em {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Caixa de texto formatado. Pressione ALT-F9 para exibir o menu. Pressione ALT-F10 para exibir a barra de ferramentas. Pressione ALT-0 para exibir a ajuda", +"Image title": "T\u00edtulo da imagem", +"Border width": "Largura do contorno", +"Border style": "Estilo do contorno", +"Error": "Erro", +"Warn": "Aviso", +"Valid": "V\u00e1lido", +"To open the popup, press Shift+Enter": "Para abrir a janela flutuante, pressione Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u00c1rea de texto formatado. Pressione ALT-0 para exibir a ajuda.", +"System Font": "Tipo de letra do sistema", +"Failed to upload image: {0}": "Falha ao carregar imagem: {0}", +"Failed to load plugin: {0} from url {1}": "Falha ao carregar plugin: {0} do URL {1}", +"Failed to load plugin url: {0}": "Falha ao carregar o URL do plugin: {0}", +"Failed to initialize plugin: {0}": "Falha ao inicializar plugin: {0}", +"example": "exemplo", +"Search": "Pesquisar", +"All": "Tudo", +"Currency": "Moeda", +"Text": "Texto", +"Quotations": "Aspas", +"Mathematical": "Matem\u00e1tico", +"Extended Latin": "Latino extendido", +"Symbols": "S\u00edmbolos", +"Arrows": "Setas", +"User Defined": "Definido pelo utilizador", +"dollar sign": "D\u00f3lar - s\u00edmbolo de moeda", +"currency sign": "s\u00edmbolo de moeda", +"euro-currency sign": "Euro - s\u00edmbolo de moeda", +"colon sign": "sinal de dois pontos", +"cruzeiro sign": "Cruzeiro - s\u00edmbolo de moeda", +"french franc sign": "Franco franc\u00eas - s\u00edmbolo de moeda", +"lira sign": "Lira - s\u00edmbolo de moeda", +"mill sign": "sinal de por mil", +"naira sign": "Naira - s\u00edmbolo de moeda", +"peseta sign": "Peseta - s\u00edmbolo de moeda", +"rupee sign": "R\u00fapia - s\u00edmbolo de moeda", +"won sign": "Won - s\u00edmbolo de moeda", +"new sheqel sign": "Shekel - s\u00edmbolo de moeda", +"dong sign": "Dong - s\u00edmbolo de moeda", +"kip sign": "Kip - s\u00edmbolo de moeda", +"tugrik sign": "Tugrik - s\u00edmbolo de moeda", +"drachma sign": "Dracma - s\u00edmbolo de moeda", +"german penny symbol": "Penny alem\u00e3o - s\u00edmbolo de moeda", +"peso sign": "Peso - s\u00edmbolo de moeda", +"guarani sign": "Guarani - s\u00edmbolo de moeda", +"austral sign": "Austral - s\u00edmbolo de moeda", +"hryvnia sign": "Gr\u00edvnia - s\u00edmbolo de moeda", +"cedi sign": "Cedi - s\u00edmbolo de moeda", +"livre tournois sign": "Libra de Tours - s\u00edmbolo de moeda", +"spesmilo sign": "Spesmilo - s\u00edmbolo de moeda", +"tenge sign": "Tengue - s\u00edmbolo de moeda", +"indian rupee sign": "Rupia indiana - s\u00edmbolo de moeda", +"turkish lira sign": "Lira turca - s\u00edmbolo de moeda", +"nordic mark sign": "Markka n\u00f3rdica - s\u00edmbolo de moeda", +"manat sign": "Manat - s\u00edmbolo de moeda", +"ruble sign": "Rublo - s\u00edmbolo de moeda", +"yen character": "Iene - s\u00edmbolo de moeda", +"yuan character": "Iuane - s\u00edmbolo de moeda", +"yuan character, in hong kong and taiwan": "Iuane, em Hong Kong e Rep\u00fablica da China - s\u00edmbolo de moeda", +"yen\/yuan character variant one": "Iene\/Iuane - variante do s\u00edmbolo de moeda", +"Loading emoticons...": "A carregar \u00edcones expressivos...", +"Could not load emoticons": "N\u00e3o foi poss\u00edvel carregar \u00edcones expressivos", +"People": "Pessoas", +"Animals and Nature": "Animais e natureza", +"Food and Drink": "Comida e bebida", +"Activity": "Atividade", +"Travel and Places": "Viagens e lugares", +"Objects": "Objetos", +"Flags": "Bandeiras", +"Characters": "Caracteres", +"Characters (no spaces)": "Caracteres (sem espa\u00e7os)", +"Error: Form submit field collision.": "Erro: conflito no campo de submeter formul\u00e1rio.", +"Error: No form element found.": "Erro: nenhum elemento de formul\u00e1rio encontrado.", +"Update": "Atualizar", +"Color swatch": "Cole\u00e7\u00e3o de cores", +"Turquoise": "Turquesa", +"Green": "Verde", +"Blue": "Azul", +"Purple": "P\u00farpura", +"Navy Blue": "Azul-atl\u00e2ntico", +"Dark Turquoise": "Turquesa escuro", +"Dark Green": "Verde escuro", +"Medium Blue": "Azul m\u00e9dio", +"Medium Purple": "P\u00farpura m\u00e9dio", +"Midnight Blue": "Azul muito escuro", +"Yellow": "Amarelo", +"Orange": "Laranja", +"Red": "Vermelho", +"Light Gray": "Cinza claro", +"Gray": "Cinza", +"Dark Yellow": "Amarelo escuro", +"Dark Orange": "Laranja escuro", +"Dark Red": "Vermelho escuro", +"Medium Gray": "Cinza m\u00e9dio", +"Dark Gray": "Cinza escuro", +"Black": "Preto", +"White": "Branco", +"Switch to or from fullscreen mode": "Entrar ou sair do modo de ecr\u00e3 inteiro", +"Open help dialog": "Abrir caixa de ajuda", +"history": "hist\u00f3rico", +"styles": "estilos", +"formatting": "formata\u00e7\u00e3o", +"alignment": "alinhamento", +"indentation": "indenta\u00e7\u00e3o", +"permanent pen": "caneta permanente", +"comments": "coment\u00e1rios", +"Anchor": "\u00c2ncora", +"Special character": "Car\u00e1cter especial", +"Code sample": "Amostra de c\u00f3digo", +"Color": "Cor", +"Emoticons": "Emo\u00e7\u00f5es", +"Document properties": "Propriedades do documento", +"Image": "Imagem", +"Insert link": "Inserir liga\u00e7\u00e3o", +"Target": "Alvo", +"Link": "Liga\u00e7\u00e3o", +"Poster": "Autor", +"Media": "Media", +"Print": "Imprimir", +"Prev": "Anterior", +"Find and replace": "Pesquisar e substituir", +"Whole words": "Palavras completas", +"Spellcheck": "Corretor ortogr\u00e1fico", +"Caption": "Legenda", +"Insert template": "Inserir modelo" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/readme.md b/common/plugins/editors/tinymce/media/langs/readme.md new file mode 100755 index 0000000000000000000000000000000000000000..a52bf03f9a3ae977eaca0d3f4c406199cc15b023 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/readme.md @@ -0,0 +1,3 @@ +This is where language files should be placed. + +Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/ diff --git a/common/plugins/editors/tinymce/media/langs/ro.js b/common/plugins/editors/tinymce/media/langs/ro.js new file mode 100755 index 0000000000000000000000000000000000000000..e23676ad1ced6231082820d81b466b2a5b0c173d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ro.js @@ -0,0 +1,388 @@ +tinymce.addI18n('ro',{ +"Redo": "Refacere", +"Undo": "Anulare", +"Cut": "Decupare", +"Copy": "Copiere", +"Paste": "Lipire", +"Select all": "Selecteaz\u0103 tot", +"New document": "Document nou", +"Ok": "Ok", +"Cancel": "Revocare", +"Visual aids": "Ajutoare vizuale", +"Bold": "Aldin", +"Italic": "Cursiv", +"Underline": "Subliniere", +"Strikethrough": "T\u0103iere", +"Superscript": "Exponent", +"Subscript": "Indice", +"Clear formatting": "\u00cendep\u0103rtare formatare", +"Align left": "Aliniere st\u00e2nga", +"Align center": "Aliniere centru", +"Align right": "Aliniere dreapta", +"Justify": "Aliniere st\u00e2nga-dreapta", +"Bullet list": "List\u0103 marcatori", +"Numbered list": "List\u0103 numerotat\u0103", +"Decrease indent": "Mic\u0219orare indent", +"Increase indent": "M\u0103rire indent", +"Close": "\u00cenchidere", +"Formats": "Formate", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browser-ul dumneavoastr\u0103 nu are acces direct la clipboard. V\u0103 rug\u0103m s\u0103 folosi\u021bi \u00een schimb scurt\u0103turile de tastatur\u0103 Ctrl+X\/C\/V.", +"Headers": "Antete", +"Header 1": "Antet 1", +"Header 2": "Antet 2", +"Header 3": "Antet 3", +"Header 4": "Antet 4", +"Header 5": "Antet 5", +"Header 6": "Antet 6", +"Headings": "Rubrici", +"Heading 1": "Titlu 1", +"Heading 2": "Titlu 2", +"Heading 3": "Titlu 3", +"Heading 4": "Titlu 4", +"Heading 5": "Titlu 5", +"Heading 6": "Titlu 6", +"Preformatted": "Preformatat", +"Div": "Div", +"Pre": "Pre", +"Code": "Cod", +"Paragraph": "Paragraf", +"Blockquote": "Blockquote", +"Inline": "\u00cen linie", +"Blocks": "Blocuri", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Functia \"lipe\u015fte\" este acum \u00een modul text simplu. Continutul va fi acum inserat ca text simplu p\u00e2n\u0103 c\u00e2nd aceast\u0103 op\u021biune va fi dezactivat.", +"Fonts": "Fonturi", +"Font Sizes": "Dimensiuni font", +"Class": "Clas\u0103", +"Browse for an image": "C\u0103uta\u021bi o imagine", +"OR": "SAU", +"Drop an image here": "Glisa\u021bi o imagine aici", +"Upload": "\u00cenc\u0103rcare", +"Block": "Sec\u021biune", +"Align": "Aliniere", +"Default": "Implicit", +"Circle": "Cerc", +"Disc": "Disc", +"Square": "P\u0103trat", +"Lower Alpha": "Minuscule Alfanumerice", +"Lower Greek": "Minuscule Grecesti", +"Lower Roman": "Minuscule Romane", +"Upper Alpha": "Majuscule Alfanumerice", +"Upper Roman": "Majuscule Romane", +"Anchor...": "Ancor\u0103\u2026", +"Name": "Nume", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id-ul trebuie s\u0103 inceap\u0103 cu o liter\u0103, urmat\u0103 exclusiv de litere, numere, cratime, puncte, punct \u0219i virgul\u0103 sau underscore-uri.", +"You have unsaved changes are you sure you want to navigate away?": "Ave\u021bi modific\u0103ri nesalvate! Sunte\u0163i sigur c\u0103 dori\u0163i s\u0103 ie\u015fiti?", +"Restore last draft": "Restaurare la ultima salvare", +"Special characters...": "Caractere speciale\u2026", +"Source code": "Codul surs\u0103", +"Insert\/Edit code sample": "Inserare\/Editare mostr\u0103 cod", +"Language": "Limba", +"Code sample...": "Mostr\u0103 cod\u2026", +"Color Picker": "Selector culori", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "St\u00e2nga la dreapta", +"Right to left": "Dreapta la st\u00e2nga", +"Emoticons...": "Emoticoane\u2026", +"Metadata and Document Properties": "Meta date \u0219i Propriet\u0103\u021bi Document", +"Title": "Titlu", +"Keywords": "Cuvinte cheie", +"Description": "Descriere", +"Robots": "Robo\u021bi", +"Author": "Autor", +"Encoding": "Codare", +"Fullscreen": "Pe tot ecranul", +"Action": "Ac\u0163iune", +"Shortcut": "Comand\u0103 rapid\u0103", +"Help": "Ajutor", +"Address": "Adres\u0103", +"Focus to menubar": "Centrare pe bara de meniuri", +"Focus to toolbar": "Centrare pe bara de unelte", +"Focus to element path": "Centrare pe calea elementului", +"Focus to contextual toolbar": "Centrare pe bara de unelte contextual\u0103", +"Insert link (if link plugin activated)": "Inserare link (dac\u0103 modulul de link-uri este activat)", +"Save (if save plugin activated)": "Salvare (dac\u0103 modulul de salvare este activat)", +"Find (if searchreplace plugin activated)": "C\u0103utare (dac\u0103 modulul de c\u0103utare \u0219i \u00eenlocuire este activat)", +"Plugins installed ({0}):": "Module instalate ({0}):", +"Premium plugins:": "Module premium:", +"Learn more...": "Afla\u021bi mai multe\u2026", +"You are using {0}": "Folosi\u021bi {0}", +"Plugins": "Inserturi", +"Handy Shortcuts": "Comenzi rapide accesibile", +"Horizontal line": "Linie orizontal\u0103", +"Insert\/edit image": "Inserare\/editarea imaginilor", +"Image description": "Descrierea imaginii", +"Source": "Surs\u0103", +"Dimensions": "Dimensiuni", +"Constrain proportions": "Constr\u00e2nge propor\u021biile", +"General": "General", +"Advanced": "Avansat", +"Style": "Stil", +"Vertical space": "Spa\u021biul vertical", +"Horizontal space": "Spa\u021biul orizontal", +"Border": "Bordur\u0103", +"Insert image": "Inserare imagine", +"Image...": "Imagine\u2026", +"Image list": "List\u0103 de imagini", +"Rotate counterclockwise": "Rotire \u00een sensul antiorar", +"Rotate clockwise": "Rotire \u00een sensul orar", +"Flip vertically": "R\u0103sturn\u0103 vertical", +"Flip horizontally": "R\u0103sturn\u0103 orizontal", +"Edit image": "Editare imagine", +"Image options": "Op\u021biuni imagine", +"Zoom in": "M\u0103rire", +"Zoom out": "Mic\u015forare", +"Crop": "Decupare", +"Resize": "Redimensionare", +"Orientation": "Orientare", +"Brightness": "Str\u0103lucire", +"Sharpen": "Accentuare", +"Contrast": "Contrast", +"Color levels": "Niveluri de culoare", +"Gamma": "Gamma", +"Invert": "Invers\u0103", +"Apply": "Salveaz\u0103", +"Back": "\u00cenapoi", +"Insert date\/time": "Insereaz\u0103 data\/ora", +"Date\/time": "Data\/ora", +"Insert\/Edit Link": "Inserare\/Editare link", +"Insert\/edit link": "Inserare\/editare link", +"Text to display": "Text de afi\u0219at", +"Url": "Url", +"Open link in...": "Deschide link \u00een\u2026", +"Current window": "Fereastra curent\u0103", +"None": "Nici unul", +"New window": "Fereastr\u0103 nou\u0103", +"Remove link": "\u0218terge link-ul", +"Anchors": "Ancor\u0103", +"Link...": "Link\u2026", +"Paste or type a link": "Introduce\u021bi un link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL-ul introdus pare s\u0103 fie o adres\u0103 de e-mail. Dori\u021bi s\u0103 ad\u0103uga\u021bi prefixul mailto: ?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL-ul introdus pare s\u0103 fie o adres\u0103 web. Dori\u021bi s\u0103 ad\u0103uga\u021bi prefixul http:\/\/ ?", +"Link list": "List\u0103 linkuri", +"Insert video": "Inserare video", +"Insert\/edit video": "Inserare\/editare video", +"Insert\/edit media": "Inserare\/editare media", +"Alternative source": "Surs\u0103 alternativ\u0103", +"Alternative source URL": "URL surs\u0103 alternativ\u0103", +"Media poster (Image URL)": "Poster media (URL imagine)", +"Paste your embed code below:": "Insera\u021bi codul:", +"Embed": "Embed", +"Media...": "Media\u2026", +"Nonbreaking space": "Spa\u021biu neseparator", +"Page break": "\u00centrerupere de pagin\u0103", +"Paste as text": "Lipe\u015fte ca text", +"Preview": "Previzualizare", +"Print...": "Tip\u0103rire\u2026", +"Save": "Salveaz\u0103", +"Find": "Caut\u0103", +"Replace with": "\u00cenlocuie\u015fte cu", +"Replace": "\u00cenlocuie\u015fte", +"Replace all": "\u00cenlocuie\u015fte toate", +"Previous": "Anterior", +"Next": "Precedent", +"Find and replace...": "C\u0103utare \u0219i \u00eenlocuire\u2026", +"Could not find the specified string.": "Nu am putut g\u0103si \u0219irul specificat.", +"Match case": "Distinge majuscule\/minuscule", +"Find whole words only": "G\u0103se\u0219te doar cuvintele \u00eentregi", +"Spell check": "Verificare ortografic\u0103", +"Ignore": "Ignor\u0103", +"Ignore all": "Ignor\u0103 toate", +"Finish": "Finalizeaz\u0103", +"Add to Dictionary": "Adaug\u0103 \u00een Dic\u021bionar", +"Insert table": "Insereaz\u0103 tabel\u0103", +"Table properties": "Propriet\u0103\u021bi tabel\u0103", +"Delete table": "\u0218terge tabel\u0103", +"Cell": "Celul\u0103", +"Row": "Linie", +"Column": "Coloan\u0103", +"Cell properties": "Propriet\u0103\u021bi celul\u0103", +"Merge cells": "\u00cembinarea celulelor", +"Split cell": "\u00cemp\u0103r\u021birea celulelor", +"Insert row before": "Insereaz\u0103 \u00eenainte de linie", +"Insert row after": "Insereaz\u0103 dup\u0103 linie", +"Delete row": "\u0218terge linia", +"Row properties": "Propriet\u0103\u021bi linie", +"Cut row": "Taie linie", +"Copy row": "Copiaz\u0103 linie", +"Paste row before": "Lipe\u015fte \u00eenainte de linie", +"Paste row after": "Lipe\u015fte linie dup\u0103", +"Insert column before": "Insereaza \u00eenainte de coloan\u0103", +"Insert column after": "Insereaza dup\u0103 coloan\u0103", +"Delete column": "\u0218terge coloana", +"Cols": "Coloane", +"Rows": "Linii", +"Width": "L\u0103\u0163ime", +"Height": "\u00cen\u0103l\u0163ime", +"Cell spacing": "Spa\u021biere celule", +"Cell padding": "Spa\u021biere", +"Show caption": "Afi\u0219are captur\u0103", +"Left": "St\u00e2nga", +"Center": "Centru", +"Right": "Dreapta", +"Cell type": "Tip celul\u0103", +"Scope": "Domeniu", +"Alignment": "Aliniament", +"H Align": "Aliniere H", +"V Align": "Aliniere V", +"Top": "Sus", +"Middle": "Mijloc", +"Bottom": "Jos", +"Header cell": "Antet celul\u0103", +"Row group": "Grup de linii", +"Column group": "Grup de coloane", +"Row type": "Tip de linie", +"Header": "Antet", +"Body": "Corp", +"Footer": "Subsol", +"Border color": "Culoare bordur\u0103", +"Insert template...": "Inserare \u0219ablon\u2026", +"Templates": "\u015eabloane", +"Template": "\u0218ablon", +"Text color": "Culoare text", +"Background color": "Culoare fundal", +"Custom...": "Personalizat...", +"Custom color": "Culoare personalizat\u0103", +"No color": "F\u0103r\u0103 culoare", +"Remove color": "Eliminare culoare", +"Table of Contents": "Cuprins", +"Show blocks": "Afi\u0219are blocuri", +"Show invisible characters": "Afi\u0219are caractere invizibile", +"Word count": "Num\u0103r\u0103toare cuvinte", +"Words: {0}": "Cuvinte: {0}", +"{0} words": "{0} cuvinte", +"File": "Fil\u0103", +"Edit": "Editeaz\u0103", +"Insert": "Insereaz\u0103", +"View": "Vezi", +"Format": "Formateaz\u0103", +"Table": "Tabel\u0103", +"Tools": "Unelte", +"Powered by {0}": "Sus\u021binut de {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zon\u0103 cu Rich Text. Apas\u0103 ALT-F9 pentru meniu. Apas\u0103 ALT-F10 pentru bara de unelte. Apas\u0103 ALT-0 pentru ajutor", +"Image title": "Titlu imagine", +"Border width": "Grosime chenar", +"Border style": "Stil chenar", +"Error": "Eroare", +"Warn": "Aten\u021bionare", +"Valid": "Valid", +"To open the popup, press Shift+Enter": "Pentru a deschide fereastra popup, ap\u0103sa\u021bi Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Zon\u0103 Text Formatat. Ap\u0103sa\u021bi ALT-0 pentru ajutor.", +"System Font": "Font Sistem", +"Failed to upload image: {0}": "Nu s-a putut \u00eenc\u0103rca imaginea: {0}", +"Failed to load plugin: {0} from url {1}": "Nu s-a putut \u00eenc\u0103rca modulul: {0} de la URL-ul {1}", +"Failed to load plugin url: {0}": "Nu s-a putut \u00eenc\u0103rca URL-ul modulului: {0}", +"Failed to initialize plugin: {0}": "Nu s-a putut ini\u021bializa modulul: {0}", +"example": "exemplu", +"Search": "C\u0103utare", +"All": "Tot", +"Currency": "Moned\u0103", +"Text": "Text", +"Quotations": "Ghilimele", +"Mathematical": "Simboluri matematice", +"Extended Latin": "Simboluri alfabet latin extins", +"Symbols": "Simboluri", +"Arrows": "S\u0103ge\u021bi", +"User Defined": "Definite de utilizator", +"dollar sign": "simbol dolar", +"currency sign": "simbol moned\u0103", +"euro-currency sign": "simbol euro", +"colon sign": "dou\u0103 puncte", +"cruzeiro sign": "simbol cruzeiro", +"french franc sign": "simbol franc francez", +"lira sign": "simbol lir\u0103", +"mill sign": "simbol mill", +"naira sign": "simbol naira", +"peseta sign": "simbol peset\u0103", +"rupee sign": "simbol rupie", +"won sign": "simbol won", +"new sheqel sign": "simbol shekel nou", +"dong sign": "simbol dong", +"kip sign": "simbol kip", +"tugrik sign": "simbol tugrik", +"drachma sign": "simbol drahm\u0103", +"german penny symbol": "simbol peni german", +"peso sign": "simbol peso", +"guarani sign": "simbol guarani", +"austral sign": "simbol austral", +"hryvnia sign": "simbol grivn\u0103", +"cedi sign": "simbol cedi", +"livre tournois sign": "simbol livr\u0103 tournois", +"spesmilo sign": "simbol spesmilo", +"tenge sign": "simbol tenge", +"indian rupee sign": "simbol rupie indian\u0103", +"turkish lira sign": "simbol lir\u0103 turceasc\u0103", +"nordic mark sign": "simbol marc\u0103 nordic\u0103", +"manat sign": "simbol manat", +"ruble sign": "simbol rubl\u0103", +"yen character": "simbol yen", +"yuan character": "simbol yuan", +"yuan character, in hong kong and taiwan": "simbol yuan \u00een Hong Kong \u0219i Taiwan", +"yen\/yuan character variant one": "simbol yen\/yuan prima variant\u0103", +"Loading emoticons...": "Se \u00eencarc\u0103 emoticoanele\u2026", +"Could not load emoticons": "Nu s-au putut \u00eenc\u0103rca emoticoanele", +"People": "Persoane", +"Animals and Nature": "Animale \u0219i natur\u0103", +"Food and Drink": "M\u00e2ncare \u0219i b\u0103uturi", +"Activity": "Activit\u0103\u021bi", +"Travel and Places": "C\u0103l\u0103torii \u0219i loca\u021bii", +"Objects": "Obiecte", +"Flags": "Steaguri", +"Characters": "Caractere", +"Characters (no spaces)": "Caractere (f\u0103r\u0103 spa\u021bii)", +"Error: Form submit field collision.": "Eroare: Coliziune c\u00e2mpuri la trimiterea formularului.", +"Error: No form element found.": "Eroare: Niciun element de formular g\u0103sit.", +"Update": "Actualizare", +"Color swatch": "Mostr\u0103 de culori", +"Turquoise": "Turcoaz", +"Green": "Verde", +"Blue": "Albastru", +"Purple": "Mov", +"Navy Blue": "Albastru marin", +"Dark Turquoise": "Turcoaz \u00eenchis", +"Dark Green": "Verde \u00eenchis", +"Medium Blue": "Albastru mediu", +"Medium Purple": "Mov mediu", +"Midnight Blue": "Albastru \u00eenchis", +"Yellow": "Galben", +"Orange": "Portocaliu", +"Red": "Ro\u0219u", +"Light Gray": "Gri deschis", +"Gray": "Gri", +"Dark Yellow": "Galben \u00eenchis", +"Dark Orange": "Portocaliu \u00eenchis", +"Dark Red": "Ro\u0219u \u00eenchis", +"Medium Gray": "Gri mediu", +"Dark Gray": "Gri \u00eenchis", +"Black": "Negru", +"White": "Alb", +"Switch to or from fullscreen mode": "Comutare pe sau de la modul ecran complet", +"Open help dialog": "Deschide dialogul de ajutor", +"history": "istoric", +"styles": "stiluri", +"formatting": "formatare", +"alignment": "aliniere", +"indentation": "indentare", +"permanent pen": "stilou permanent", +"comments": "comentarii", +"Anchor": "Ancor\u0103", +"Special character": "Caractere speciale", +"Color": "Culoare", +"Emoticons": "Emoticoane", +"Document properties": "Propriet\u0103\u021bi document", +"Image": "Imagine", +"Insert link": "Inserare link", +"Link": "Link", +"Target": "\u021aint\u0103", +"Media": "Media", +"Poster": "Poster", +"Print": "Tip\u0103re\u0219te", +"Whole words": "Doar cuv\u00eentul \u00eentreg", +"Find and replace": "Caut\u0103 \u015fi \u00eenlocuie\u015fte", +"Prev": "Anterior", +"Spellcheck": "Verificarea ortografic\u0103", +"Caption": "Titlu", +"Insert template": "Insereaz\u0103 \u0219ablon" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ro_RO.js b/common/plugins/editors/tinymce/media/langs/ro_RO.js new file mode 100755 index 0000000000000000000000000000000000000000..6df2273979f082fed8bde5ff1e891d645df1866d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ro_RO.js @@ -0,0 +1,370 @@ +tinymce.addI18n('ro_RO',{ +"Redo": "Refacere", +"Undo": "Anulare", +"Cut": "Decupare", +"Copy": "Copiere", +"Paste": "Lipire", +"Select all": "Selecteaz\u0103 tot", +"New document": "Document nou", +"Ok": "Ok", +"Cancel": "Revocare", +"Visual aids": "Ajutoare vizuale", +"Bold": "Aldin", +"Italic": "Cursiv", +"Underline": "Subliniere", +"Strikethrough": "T\u0103iere", +"Superscript": "Exponent", +"Subscript": "Indice", +"Clear formatting": "\u00cendep\u0103rtare formatare", +"Align left": "Aliniere st\u00e2nga", +"Align center": "Aliniere centru", +"Align right": "Aliniere dreapta", +"Justify": "Aliniere st\u00e2nga-dreapta", +"Bullet list": "List\u0103 marcatori", +"Numbered list": "List\u0103 numerotat\u0103", +"Decrease indent": "Mic\u0219orare indent", +"Increase indent": "M\u0103rire indent", +"Close": "\u00cenchidere", +"Formats": "Formate", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Browser-ul dumneavoastr\u0103 nu are acces direct la clipboard. V\u0103 rug\u0103m s\u0103 folosi\u021bi \u00een schimb scurt\u0103turile de tastatur\u0103 Ctrl+X\/C\/V.", +"Headers": "Antete", +"Header 1": "Antet 1", +"Header 2": "Antet 2", +"Header 3": "Antet 3", +"Header 4": "Antet 4", +"Header 5": "Antet 5", +"Header 6": "Antet 6", +"Headings": "Rubrici", +"Heading 1": "Titlu 1", +"Heading 2": "Titlu 2", +"Heading 3": "Titlu 3", +"Heading 4": "Titlu 4", +"Heading 5": "Titlu 5", +"Heading 6": "Titlu 6", +"Preformatted": "Preformatat", +"Div": "Div", +"Pre": "Pre", +"Code": "Cod", +"Paragraph": "Paragraf", +"Blockquote": "Blockquote", +"Inline": "\u00cen linie", +"Blocks": "Blocuri", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Lipirea este \u00een mod text simplu. Con\u021binutul va fi lipit ca text simplu p\u00e2n\u0103 dezactiva\u021bi aceast\u0103 op\u021biune.", +"Fonts": "Fonturi", +"Font Sizes": "Dimensiuni font", +"Class": "Clas\u0103", +"Browse for an image": "C\u0103uta\u021bi o imagine", +"OR": "SAU", +"Drop an image here": "Glisa\u021bi o imagine aici", +"Upload": "\u00cenc\u0103rcare", +"Block": "Sec\u021biune", +"Align": "Aliniere", +"Default": "Implicit", +"Circle": "Cerc", +"Disc": "Disc", +"Square": "P\u0103trat", +"Lower Alpha": "Litere mici", +"Lower Greek": "Grecesc mic", +"Lower Roman": "Cifre romane mici", +"Upper Alpha": "Litere mari", +"Upper Roman": "Cifre romane mari", +"Anchor...": "Ancor\u0103\u2026", +"Name": "Nume", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id-ul ar trebui s\u0103 \u00eenceap\u0103 cu o liter\u0103, urmat\u0103 doar de litere, numere, cratime, puncte, virgule sau sublinieri.", +"You have unsaved changes are you sure you want to navigate away?": "Ave\u021bi modific\u0103ri nesalvate. Sigur dori\u021bi s\u0103 naviga\u021bi \u00een alt\u0103 parte?", +"Restore last draft": "Restabili\u021bi ultima ciorn\u0103", +"Special characters...": "Caractere speciale\u2026", +"Source code": "Cod surs\u0103", +"Insert\/Edit code sample": "Inserare\/Editare mostr\u0103 cod", +"Language": "Limb\u0103", +"Code sample...": "Mostr\u0103 cod\u2026", +"Color Picker": "Selector culori", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "St\u00e2nga la dreapta", +"Right to left": "Dreapta la st\u00e2nga", +"Emoticons...": "Emoticoane\u2026", +"Metadata and Document Properties": "Meta date \u0219i Propriet\u0103\u021bi Document", +"Title": "Titlu", +"Keywords": "Cuvinte cheie", +"Description": "Descriere", +"Robots": "Robo\u0163i", +"Author": "Autor", +"Encoding": "Codare", +"Fullscreen": "Ecran complet", +"Action": "Ac\u0163iune", +"Shortcut": "Comand\u0103 rapid\u0103", +"Help": "Ajutor", +"Address": "Adres\u0103", +"Focus to menubar": "Centrare pe bara de meniuri", +"Focus to toolbar": "Centrare pe bara de unelte", +"Focus to element path": "Centrare pe calea elementului", +"Focus to contextual toolbar": "Centrare pe bara de unelte contextual\u0103", +"Insert link (if link plugin activated)": "Inserare link (dac\u0103 modulul de link-uri este activat)", +"Save (if save plugin activated)": "Salvare (dac\u0103 modulul de salvare este activat)", +"Find (if searchreplace plugin activated)": "C\u0103utare (dac\u0103 modulul de c\u0103utare \u0219i \u00eenlocuire este activat)", +"Plugins installed ({0}):": "Module instalate ({0}):", +"Premium plugins:": "Module premium:", +"Learn more...": "Afla\u021bi mai multe\u2026", +"You are using {0}": "Folosi\u021bi {0}", +"Plugins": "Inserturi", +"Handy Shortcuts": "Comenzi rapide accesibile", +"Horizontal line": "Linie orizontal\u0103", +"Insert\/edit image": "Inserare\/editare imagini", +"Image description": "Descriere imagine", +"Source": "Surs\u0103", +"Dimensions": "Dimensiuni", +"Constrain proportions": "Restric\u021bionare propor\u021bii", +"General": "General", +"Advanced": "Complex", +"Style": "Stil", +"Vertical space": "Spa\u0163iu vertical", +"Horizontal space": "Spa\u0163iu orizontal", +"Border": "Chenar", +"Insert image": "Inserare imagine", +"Image...": "Imagine\u2026", +"Image list": "List\u0103 de imagini", +"Rotate counterclockwise": "Rotire invers sensului acelor de ceasornic", +"Rotate clockwise": "Rotire \u00een sensul acelor de ceasornic", +"Flip vertically": "Inversare vertical\u0103", +"Flip horizontally": "Inversare orizontal\u0103", +"Edit image": "Editare imagine", +"Image options": "Op\u021biuni imagine", +"Zoom in": "Apropiere", +"Zoom out": "Dep\u0103rtare", +"Crop": "Decupare", +"Resize": "Redimensionare", +"Orientation": "Orientare", +"Brightness": "Luminozitate", +"Sharpen": "Accentuare", +"Contrast": "Contrast", +"Color levels": "Niveluri culori", +"Gamma": "Gamma", +"Invert": "Inversare", +"Apply": "Aplicare", +"Back": "\u00cenapoi", +"Insert date\/time": "Inserare dat\u0103\/or\u0103", +"Date\/time": "Dat\u0103\/or\u0103", +"Insert\/Edit Link": "Inserare\/Editare link", +"Insert\/edit link": "Inserare\/editare link", +"Text to display": "Text de afi\u0219at", +"Url": "Url", +"Open link in...": "Deschide link \u00een\u2026", +"Current window": "Fereastra curent\u0103", +"None": "Nu se utilizeaz\u0103 (acest c\u00e2mp)", +"New window": "Fereastr\u0103 nou\u0103", +"Remove link": "Eliminare link", +"Anchors": "Ancore", +"Link...": "Link\u2026", +"Paste or type a link": "Lipi\u021bi sau scrie\u021bi un link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL-ul introdus pare a fi o adres\u0103 de e-mail. Dori\u021bi s\u0103 ad\u0103uga\u021bi prefixul mailto: necesar?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL-ul introdus pare a fi un link extern. Dori\u021bi s\u0103 ad\u0103uga\u021bi prefixul http:\/\/ necesar?", +"Link list": "List\u0103 linkuri", +"Insert video": "Inserare video", +"Insert\/edit video": "Inserare\/editare video", +"Insert\/edit media": "Inserare\/editare media", +"Alternative source": "Surs\u0103 alternativ\u0103", +"Alternative source URL": "URL surs\u0103 alternativ\u0103", +"Media poster (Image URL)": "Poster media (URL imagine)", +"Paste your embed code below:": "Lipi\u021bi codul de \u00eencorporare mai jos:", +"Embed": "\u00cencorporare", +"Media...": "Media\u2026", +"Nonbreaking space": "Spa\u021biu f\u0103r\u0103 \u00eentreruperi", +"Page break": "\u00centrerupere de pagin\u0103", +"Paste as text": "Lipire ca text", +"Preview": "Previzualizare", +"Print...": "Tip\u0103rire\u2026", +"Save": "Salvare", +"Find": "G\u0103sire", +"Replace with": "\u00cenlocuire cu", +"Replace": "\u00cenlocuire", +"Replace all": "\u00cenlocuire peste tot", +"Previous": "Anterior", +"Next": "Urm\u0103torul", +"Find and replace...": "C\u0103utare \u0219i \u00eenlocuire\u2026", +"Could not find the specified string.": "Nu s-a g\u0103sit \u0219irul indicat.", +"Match case": "Potrivire litere mari \u0219i mici", +"Find whole words only": "G\u0103se\u0219te doar cuvintele \u00eentregi", +"Spell check": "Verificare ortografic\u0103", +"Ignore": "Ignorare", +"Ignore all": "Ignor\u0103 tot", +"Finish": "Finalizare", +"Add to Dictionary": "Ad\u0103ugare \u00een Dic\u021bionar", +"Insert table": "Inserare tabel", +"Table properties": "Propriet\u0103\u021bi tabel", +"Delete table": "Eliminare tabel", +"Cell": "Celul\u0103", +"Row": "R\u00e2nd", +"Column": "Coloan\u0103", +"Cell properties": "Propriet\u0103\u021bi celul\u0103", +"Merge cells": "\u00cembinare celule", +"Split cell": "Scindare celul\u0103", +"Insert row before": "Inserare r\u00e2nd \u00eenainte", +"Insert row after": "Inserare r\u00e2nd dup\u0103", +"Delete row": "Eliminare r\u00e2nd", +"Row properties": "Propriet\u0103\u021bi r\u00e2nd", +"Cut row": "Decupare r\u00e2nd", +"Copy row": "Copiere r\u00e2nd", +"Paste row before": "Lipire r\u00e2nd \u00eenainte", +"Paste row after": "Lipire r\u00e2nd dup\u0103", +"Insert column before": "Inserare coloan\u0103 \u00eenainte", +"Insert column after": "Inserare coloan\u0103 dup\u0103", +"Delete column": "Eliminare coloan\u0103", +"Cols": "Coloane", +"Rows": "R\u00e2nduri", +"Width": "L\u0103\u021bime", +"Height": "\u00cen\u0103l\u021bime", +"Cell spacing": "Spa\u021biere celul\u0103", +"Cell padding": "Spa\u021biere \u00een celul\u0103", +"Show caption": "Afi\u0219are captur\u0103", +"Left": "St\u00e2nga", +"Center": "Centru", +"Right": "Dreapta", +"Cell type": "Tip celul\u0103", +"Scope": "Domeniu", +"Alignment": "Aliniere", +"H Align": "Aliniere O", +"V Align": "Aliniere V", +"Top": "Sus", +"Middle": "Mijloc", +"Bottom": "Jos", +"Header cell": "Celul\u0103 de antet", +"Row group": "Grupare r\u00e2nduri", +"Column group": "Grup coloane", +"Row type": "Tip r\u00e2nd", +"Header": "Antet", +"Body": "Corp", +"Footer": "Subsol de pagin\u0103", +"Border color": "Culoare chenar", +"Insert template...": "Inserare \u0219ablon\u2026", +"Templates": "\u0218abloane", +"Template": "\u0218ablon", +"Text color": "Culoare text", +"Background color": "Culoare fundal", +"Custom...": "Particularizare...", +"Custom color": "Culoare personalizat\u0103", +"No color": "F\u0103r\u0103 culoare", +"Remove color": "Eliminare culoare", +"Table of Contents": "Cuprins", +"Show blocks": "Arat\u0103 rubricile", +"Show invisible characters": "Arat\u0103 caracterele invizibile", +"Word count": "Num\u0103r\u0103toare cuvinte", +"Words: {0}": "Cuvinte: {0}", +"{0} words": "{0} cuvinte", +"File": "Fi\u0219ier", +"Edit": "Editare", +"Insert": "Inserare", +"View": "Vizualizare", +"Format": "Formatare", +"Table": "Tabel", +"Tools": "Unelte", +"Powered by {0}": "Sus\u021binut de {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zon\u0103 Text Formatat. Ap\u0103sa\u021bi ALT-F9 pentru a accesa meniul. Ap\u0103sa\u021bi ALT-F10 pentru a accesa bara de unelte. Ap\u0103sa\u021bi ALT-0 pentru ajutor", +"Image title": "Titlu imagine", +"Border width": "Grosime chenar", +"Border style": "Stil chenar", +"Error": "Eroare", +"Warn": "Aten\u021bionare", +"Valid": "Valid", +"To open the popup, press Shift+Enter": "Pentru a deschide fereastra popup, ap\u0103sa\u021bi Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Zon\u0103 Text Formatat. Ap\u0103sa\u021bi ALT-0 pentru ajutor.", +"System Font": "Font Sistem", +"Failed to upload image: {0}": "Nu s-a putut \u00eenc\u0103rca imaginea: {0}", +"Failed to load plugin: {0} from url {1}": "Nu s-a putut \u00eenc\u0103rca modulul: {0} de la URL-ul {1}", +"Failed to load plugin url: {0}": "Nu s-a putut \u00eenc\u0103rca URL-ul modulului: {0}", +"Failed to initialize plugin: {0}": "Nu s-a putut ini\u021bializa modulul: {0}", +"example": "exemplu", +"Search": "C\u0103utare", +"All": "Tot", +"Currency": "Moned\u0103", +"Text": "Text", +"Quotations": "Ghilimele", +"Mathematical": "Simboluri matematice", +"Extended Latin": "Simboluri alfabet latin extins", +"Symbols": "Simboluri", +"Arrows": "S\u0103ge\u021bi", +"User Defined": "Definite de utilizator", +"dollar sign": "simbol dolar", +"currency sign": "simbol moned\u0103", +"euro-currency sign": "simbol euro", +"colon sign": "dou\u0103 puncte", +"cruzeiro sign": "simbol cruzeiro", +"french franc sign": "simbol franc francez", +"lira sign": "simbol lir\u0103", +"mill sign": "simbol mill", +"naira sign": "simbol naira", +"peseta sign": "simbol peset\u0103", +"rupee sign": "simbol rupie", +"won sign": "simbol won", +"new sheqel sign": "simbol shekel nou", +"dong sign": "simbol dong", +"kip sign": "simbol kip", +"tugrik sign": "simbol tugrik", +"drachma sign": "simbol drahm\u0103", +"german penny symbol": "simbol peni german", +"peso sign": "simbol peso", +"guarani sign": "simbol guarani", +"austral sign": "simbol austral", +"hryvnia sign": "simbol grivn\u0103", +"cedi sign": "simbol cedi", +"livre tournois sign": "simbol livr\u0103 tournois", +"spesmilo sign": "simbol spesmilo", +"tenge sign": "simbol tenge", +"indian rupee sign": "simbol rupie indian\u0103", +"turkish lira sign": "simbol lir\u0103 turceasc\u0103", +"nordic mark sign": "simbol marc\u0103 nordic\u0103", +"manat sign": "simbol manat", +"ruble sign": "simbol rubl\u0103", +"yen character": "simbol yen", +"yuan character": "simbol yuan", +"yuan character, in hong kong and taiwan": "simbol yuan \u00een Hong Kong \u0219i Taiwan", +"yen\/yuan character variant one": "simbol yen\/yuan prima variant\u0103", +"Loading emoticons...": "Se \u00eencarc\u0103 emoticoanele\u2026", +"Could not load emoticons": "Nu s-au putut \u00eenc\u0103rca emoticoanele", +"People": "Persoane", +"Animals and Nature": "Animale \u0219i natur\u0103", +"Food and Drink": "M\u00e2ncare \u0219i b\u0103uturi", +"Activity": "Activit\u0103\u021bi", +"Travel and Places": "C\u0103l\u0103torii \u0219i loca\u021bii", +"Objects": "Obiecte", +"Flags": "Steaguri", +"Characters": "Caractere", +"Characters (no spaces)": "Caractere (f\u0103r\u0103 spa\u021bii)", +"Error: Form submit field collision.": "Eroare: Coliziune c\u00e2mpuri la trimiterea formularului.", +"Error: No form element found.": "Eroare: Niciun element de formular g\u0103sit.", +"Update": "Actualizare", +"Color swatch": "Mostr\u0103 de culori", +"Turquoise": "Turcoaz", +"Green": "Verde", +"Blue": "Albastru", +"Purple": "Mov", +"Navy Blue": "Albastru marin", +"Dark Turquoise": "Turcoaz \u00eenchis", +"Dark Green": "Verde \u00eenchis", +"Medium Blue": "Albastru mediu", +"Medium Purple": "Mov mediu", +"Midnight Blue": "Albastru \u00eenchis", +"Yellow": "Galben", +"Orange": "Portocaliu", +"Red": "Ro\u0219u", +"Light Gray": "Gri deschis", +"Gray": "Gri", +"Dark Yellow": "Galben \u00eenchis", +"Dark Orange": "Portocaliu \u00eenchis", +"Dark Red": "Ro\u0219u \u00eenchis", +"Medium Gray": "Gri mediu", +"Dark Gray": "Gri \u00eenchis", +"Black": "Negru", +"White": "Alb", +"Switch to or from fullscreen mode": "Comutare pe sau de la modul ecran complet", +"Open help dialog": "Deschide dialogul de ajutor", +"history": "istoric", +"styles": "stiluri", +"formatting": "formatare", +"alignment": "aliniere", +"indentation": "indentare", +"permanent pen": "stilou permanent", +"comments": "comentarii" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ru.js b/common/plugins/editors/tinymce/media/langs/ru.js new file mode 100755 index 0000000000000000000000000000000000000000..8200e73f1e0e5dc1e3dfc104fd43bddccd0a6235 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ru.js @@ -0,0 +1,419 @@ +tinymce.addI18n('ru',{ +"Redo": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c", +"Undo": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", +"Cut": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c", +"Copy": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c", +"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c", +"Select all": "\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435", +"New document": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", +"Ok": "OK", +"Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c", +"Visual aids": "\u0412\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438", +"Bold": "\u0416\u0438\u0440\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442", +"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432", +"Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435", +"Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u0435", +"Superscript": "\u041d\u0430\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439", +"Subscript": "\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439", +"Clear formatting": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", +"Align left": "\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u043f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Align center": "\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Align right": "\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u043f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Justify": "\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c \u0442\u0435\u0441\u0442 \u043f\u043e \u0448\u0438\u0440\u0438\u043d\u0435", +"Bullet list": "\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Decrease indent": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f", +"Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f", +"Close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c", +"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u044b", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0435\u043d\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448: Ctrl+X\/C\/V.", +"Headers": "\u0412\u0435\u0440\u0445\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b\u044b", +"Header 1": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 1", +"Header 2": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 2", +"Header 3": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 3", +"Header 4": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 4", +"Header 5": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 5", +"Header 6": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 6", +"Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438", +"Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1", +"Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2", +"Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3", +"Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4", +"Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5", +"Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6", +"Preformatted": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439", +"Div": "Div", +"Pre": "Pre", +"Code": "\u041a\u043e\u0434", +"Paragraph": "\u0410\u0431\u0437\u0430\u0446", +"Blockquote": "\u0411\u043b\u043e\u043a \u0446\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f", +"Inline": "\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439", +"Blocks": "\u0411\u043b\u043e\u043a\u0438", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e.", +"Fonts": "\u0428\u0440\u0438\u0444\u0442\u044b", +"Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430", +"Class": "\u041a\u043b\u0430\u0441\u0441", +"Browse for an image": "\u0412\u044b\u0431\u043e\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"OR": "\u0418\u041b\u0418", +"Drop an image here": "\u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u044e\u0434\u0430", +"Upload": "\u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c", +"Block": "\u0411\u043b\u043e\u043a", +"Align": "\u0412\u044b\u0440\u043e\u0432\u043d\u044f\u0442\u044c", +"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439", +"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438", +"Disc": "\u041a\u0440\u0443\u0433\u0438", +"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b", +"Lower Alpha": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Lower Greek": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Lower Roman": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b", +"Upper Alpha": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b", +"Upper Roman": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b", +"Anchor...": "\u042f\u043a\u043e\u0440\u044c...", +"Name": "\u0418\u043c\u044f", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c\u0441\u044f \u0441 \u0431\u0443\u043a\u0432\u044b, \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0431\u0443\u043a\u0432\u044b, \u0446\u0438\u0444\u0440\u044b, \u0442\u0438\u0440\u0435, \u0442\u043e\u0447\u043a\u0438, \u0434\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u044f \u0438\u043b\u0438 \u043f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u043d\u0438\u044f.", +"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0439\u0442\u0438?", +"Restore last draft": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430", +"Special character...": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043c\u0432\u043e\u043b...", +"Source code": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434", +"Insert\/Edit code sample": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\/\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430", +"Language": "\u042f\u0437\u044b\u043a", +"Code sample...": "\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430...", +"Color Picker": "\u041f\u0438\u043f\u0435\u0442\u043a\u0430 \u0446\u0432\u0435\u0442\u0430", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e", +"Right to left": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e", +"Emoticons...": "\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0438...", +"Metadata and Document Properties": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Keywords": "\u041a\u043b\u044e\u0447\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430", +"Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", +"Robots": "\u0420\u043e\u0431\u043e\u0442\u044b", +"Author": "\u0410\u0432\u0442\u043e\u0440", +"Encoding": "\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430", +"Fullscreen": "\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", +"Action": "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435", +"Shortcut": "\u042f\u0440\u043b\u044b\u043a", +"Help": "\u041f\u043e\u043c\u043e\u0449\u044c", +"Address": "\u0410\u0434\u0440\u0435\u0441", +"Focus to menubar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u0435\u043d\u044e", +"Focus to toolbar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432", +"Focus to element path": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 \u043f\u0443\u0442\u0438", +"Focus to contextual toolbar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432", +"Insert link (if link plugin activated)": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 (\u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d link \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d)", +"Save (if save plugin activated)": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c (\u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d save \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d)", +"Find (if searchreplace plugin activated)": "\u041d\u0430\u0439\u0442\u0438 (\u0435\u0441\u043b\u0438 \u043f\u043b\u0430\u0433\u0438\u043d searchreplace \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d)", +"Plugins installed ({0}):": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u044b ({0}):", +"Premium plugins:": "\u041f\u0440\u0435\u043c\u0438\u0443\u043c \u043f\u043b\u0430\u0433\u0438\u043d\u044b:", +"Learn more...": "\u0423\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435...", +"You are using {0}": "\u0412\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 {0}", +"Plugins": "\u041f\u043b\u0430\u0433\u0438\u043d\u044b", +"Handy Shortcuts": "\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438", +"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f", +"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Source": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a", +"Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440", +"Constrain proportions": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438", +"General": "\u041e\u0431\u0449\u0435\u0435", +"Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435", +"Style": "\u0421\u0442\u0438\u043b\u044c", +"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Border": "\u0420\u0430\u043c\u043a\u0430", +"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Image...": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435...", +"Image list": "\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439", +"Rotate counterclockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u043e\u0442\u0438\u0432 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438", +"Rotate clockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u043e \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0435", +"Flip vertically": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438", +"Flip horizontally": "\u041e\u0442\u0440\u0430\u0437\u0438\u0442\u044c \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438", +"Edit image": "\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Image options": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Zoom in": "\u041f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u044c", +"Zoom out": "\u041e\u0442\u0434\u0430\u043b\u0438\u0442\u044c", +"Crop": "\u041e\u0431\u0440\u0435\u0437\u0430\u0442\u044c", +"Resize": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440", +"Orientation": "\u041e\u0440\u0438\u0435\u043d\u0442\u0430\u0446\u0438\u044f", +"Brightness": "\u042f\u0440\u043a\u043e\u0441\u0442\u044c", +"Sharpen": "\u0427\u0435\u0442\u043a\u043e\u0441\u0442\u044c", +"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442", +"Color levels": "\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0443\u0440\u043e\u0432\u043d\u0438", +"Gamma": "\u0413\u0430\u043c\u043c\u0430", +"Invert": "\u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f", +"Apply": "\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c", +"Back": "\u041d\u0430\u0437\u0430\u0434", +"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u0443\/\u0432\u0440\u0435\u043c\u044f", +"Date\/time": "\u0414\u0430\u0442\u0430\/\u0432\u0440\u0435\u043c\u044f", +"Insert\/Edit Link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Text to display": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442", +"Url": "\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044b\u043b\u043a\u0438", +"Open link in...": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u0432...", +"Current window": "\u0422\u0435\u043a\u0443\u0449\u0435\u0435 \u043e\u043a\u043d\u043e", +"None": "\u041d\u0435\u0442", +"New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435", +"Remove link": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Anchors": "\u042f\u043a\u043e\u0440\u044f", +"Link...": "\u0421\u0441\u044b\u043b\u043a\u0430...", +"Paste or type a link": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abmailto:\u00bb?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abhttp:\/\/\u00bb?", +"Link list": "\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0441\u044b\u043b\u043e\u043a", +"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e", +"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e", +"Insert\/edit media": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e", +"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a", +"Alternative source URL": "URL \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430", +"Media poster (Image URL)": "\u041f\u043e\u0441\u0442\u0435\u0440 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430 (URL \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f)", +"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435:", +"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438", +"Media...": "\u041c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0430...", +"Nonbreaking space": "\u041d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0431\u0435\u043b", +"Page break": "\u0420\u0430\u0437\u0440\u044b\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b", +"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442", +"Preview": "\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440", +"Print...": "\u041d\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u0442\u044c...", +"Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", +"Find": "\u041d\u0430\u0439\u0442\u0438", +"Replace with": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430", +"Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c", +"Replace all": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435", +"Previous": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439", +"Next": "\u0412\u043d\u0438\u0437", +"Find and replace...": "\u041d\u0430\u0439\u0442\u0438 \u0438 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c...", +"Could not find the specified string.": "\u0417\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430", +"Match case": "\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440", +"Find whole words only": "\u041d\u0430\u0439\u0442\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0446\u0435\u043b\u044b\u0435 \u0441\u043b\u043e\u0432\u0430", +"Spell check": "\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438", +"Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c", +"Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435", +"Finish": "\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c", +"Add to Dictionary": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c", +"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", +"Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b", +"Delete table": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", +"Cell": "\u042f\u0447\u0435\u0439\u043a\u0430", +"Row": "\u0421\u0442\u0440\u043e\u043a\u0430", +"Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446", +"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u0435\u0439\u043a\u0438", +"Merge cells": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438", +"Split cell": "\u0420\u0430\u0437\u0431\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443", +"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443", +"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443", +"Delete row": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0440\u043e\u043a\u0438", +"Cut row": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Copy row": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443", +"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443", +"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443", +"Insert column before": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043b\u0435\u0432\u0430", +"Insert column after": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043f\u0440\u0430\u0432\u0430", +"Delete column": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446", +"Cols": "\u0421\u0442\u043e\u043b\u0431\u0446\u044b", +"Rows": "\u0421\u0442\u0440\u043e\u043a\u0438", +"Width": "\u0428\u0438\u0440\u0438\u043d\u0430", +"Height": "\u0412\u044b\u0441\u043e\u0442\u0430", +"Cell spacing": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f", +"Cell padding": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f", +"Show caption": "\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0434\u043f\u0438\u0441\u044c", +"Left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Cell type": "\u0422\u0438\u043f \u044f\u0447\u0435\u0439\u043a\u0438", +"Scope": "Scope", +"Alignment": "\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u0443", +"Middle": "\u041f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435", +"Bottom": "\u041f\u043e \u043d\u0438\u0437\u0443", +"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a", +"Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a", +"Row type": "\u0422\u0438\u043f \u0441\u0442\u0440\u043e\u043a\u0438", +"Header": "\u0428\u0430\u043f\u043a\u0430", +"Body": "\u0422\u0435\u043b\u043e", +"Footer": "\u041d\u0438\u0437", +"Border color": "\u0426\u0432\u0435\u0442 \u0440\u0430\u043c\u043a\u0438", +"Insert template...": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d...", +"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b", +"Template": "\u0428\u0430\u0431\u043b\u043e\u043d", +"Text color": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430", +"Background color": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430", +"Custom...": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c\u2026", +"Custom color": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0446\u0432\u0435\u0442", +"No color": "\u0411\u0435\u0437 \u0446\u0432\u0435\u0442\u0430", +"Remove color": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0446\u0432\u0435\u0442", +"Table of Contents": "\u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435", +"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438", +"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b", +"Word count": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432", +"Count": "\u041f\u043e\u0434\u0441\u0447\u0438\u0442\u0430\u0442\u044c", +"Document": "\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442", +"Selection": "\u0412\u044b\u0431\u043e\u0440", +"Words": "\u0421\u043b\u043e\u0432\u0430", +"Words: {0}": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {0}", +"{0} words": "\u0441\u043b\u043e\u0432: {0}", +"File": "\u0424\u0430\u0439\u043b", +"Edit": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c", +"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c", +"View": "\u0412\u0438\u0434", +"Format": "\u0424\u043e\u0440\u043c\u0430\u0442", +"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430", +"Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b", +"Powered by {0}": "\u041f\u0440\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-F9 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, ALT-0 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.", +"Image title": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Border width": "\u0428\u0438\u0440\u0438\u043d\u0430 \u0440\u0430\u043c\u043a\u0438", +"Border style": "\u0421\u0442\u0438\u043b\u044c \u0440\u0430\u043c\u043a\u0438", +"Error": "\u041e\u0448\u0438\u0431\u043a\u0430", +"Warn": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435", +"Valid": "\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439", +"To open the popup, press Shift+Enter": "\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0435\u0435 \u043e\u043a\u043d\u043e, \u043d\u0430\u0436\u043c\u0438\u0442\u0435 Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u041f\u043e\u043b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-0, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443.", +"System Font": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442", +"Failed to upload image: {0}": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f: {0}", +"Failed to load plugin: {0} from url {1}": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430: {0} \u0438\u0437 URL {1}", +"Failed to load plugin url: {0}": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 URL \u043f\u043b\u0430\u0433\u0438\u043d\u0430: {0}", +"Failed to initialize plugin: {0}": "\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430: {0}", +"example": "\u043f\u0440\u0438\u043c\u0435\u0440", +"Search": "\u041f\u043e\u0438\u0441\u043a", +"All": "\u0412\u0441\u0435", +"Currency": "\u0412\u0430\u043b\u044e\u0442\u0430", +"Text": "\u0422\u0435\u043a\u0441\u0442", +"Quotations": "\u0426\u0438\u0442\u0430\u0442\u044b", +"Mathematical": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435", +"Extended Latin": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u043b\u0430\u0442\u044b\u043d\u044c", +"Symbols": "\u0421\u0438\u043c\u0432\u043e\u043b\u044b", +"Arrows": "\u0421\u0442\u0440\u0435\u043b\u043a\u0438", +"User Defined": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c", +"dollar sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0434\u043e\u043b\u043b\u0430\u0440\u0430", +"currency sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0432\u0430\u043b\u044e\u0442\u044b", +"euro-currency sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0435\u0432\u0440\u043e", +"colon sign": "\u0414\u0432\u043e\u0435\u0442\u043e\u0447\u0438\u0435", +"cruzeiro sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e", +"french franc sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u043e\u0433\u043e \u0444\u0440\u0430\u043d\u043a\u0430", +"lira sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043b\u0438\u0440\u044b", +"mill sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0434\u0435\u0441\u044f\u0442\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0446\u0435\u043d\u0442\u0430", +"naira sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043d\u0430\u0439\u0440\u044b", +"peseta sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0441\u0435\u0442\u044b", +"rupee sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0440\u0443\u043f\u0438\u0438", +"won sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0432\u043e\u043d\u044b", +"new sheqel sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0448\u0435\u043a\u0435\u043b\u044f", +"dong sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0434\u043e\u043d\u0433\u0430", +"kip sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043a\u0438\u043f\u044b", +"tugrik sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0442\u0443\u0433\u0440\u0438\u043a\u0430", +"drachma sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0434\u0440\u0430\u0445\u043c\u044b", +"german penny symbol": "\u0421\u0438\u043c\u0432\u043e\u043b \u043f\u0444\u0435\u043d\u043d\u0438\u0433\u0430", +"peso sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043f\u0435\u0441\u043e", +"guarani sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0433\u0443\u0430\u0440\u0430\u043d\u0438", +"austral sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0430\u0443\u0441\u0442\u0440\u0430\u043b\u0430", +"hryvnia sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0433\u0440\u0438\u0432\u043d\u0438", +"cedi sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0441\u0435\u0434\u0438", +"livre tournois sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043b\u0438\u0432\u0440\u044b", +"spesmilo sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0441\u043f\u0435\u0441\u043c\u0438\u043b\u043e", +"tenge sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0442\u0435\u043d\u044c\u0433\u0435", +"indian rupee sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0438\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0439 \u0440\u0443\u043f\u0438\u0438", +"turkish lira sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0442\u0443\u0440\u0435\u0446\u043a\u043e\u0439 \u043b\u0438\u0440\u044b", +"nordic mark sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043c\u0430\u0440\u043a\u0438", +"manat sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u043c\u0430\u043d\u0430\u0442\u0430", +"ruble sign": "\u0421\u0438\u043c\u0432\u043e\u043b \u0440\u0443\u0431\u043b\u044f", +"yen character": "\u0421\u0438\u043c\u0432\u043e\u043b \u0438\u0435\u043d\u044b", +"yuan character": "\u0421\u0438\u043c\u0432\u043e\u043b \u044e\u0430\u043d\u044f", +"yuan character, in hong kong and taiwan": "\u0421\u0438\u043c\u0432\u043e\u043b \u044e\u0430\u043d\u044f, \u0413\u043e\u043d\u043a\u043e\u043d\u0433 \u0438 \u0422\u0430\u0439\u0432\u0430\u043d\u044c", +"yen\/yuan character variant one": "\u0421\u0438\u043c\u0432\u043e\u043b \u0438\u0435\u043d\u044b\/\u044e\u0430\u043d\u044f, \u0432\u0430\u0440\u0438\u0430\u043d\u0442 1", +"Loading emoticons...": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043c\u0430\u0439\u043b\u043e\u0432...", +"Could not load emoticons": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b\u044b", +"People": "\u041b\u044e\u0434\u0438", +"Animals and Nature": "\u0416\u0438\u0432\u043e\u0442\u043d\u044b\u0435 \u0438 \u043f\u0440\u0438\u0440\u043e\u0434\u0430", +"Food and Drink": "\u0415\u0434\u0430 \u0438 \u043d\u0430\u043f\u0438\u0442\u043a\u0438", +"Activity": "\u0414\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c", +"Travel and Places": "\u041f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u044f \u0438 \u043c\u0435\u0441\u0442\u0430", +"Objects": "\u041e\u0431\u044a\u0435\u043a\u0442\u044b", +"Flags": "\u0424\u043b\u0430\u0433\u0438", +"Characters": "\u0421\u0438\u043c\u0432\u043e\u043b\u044b", +"Characters (no spaces)": "\u0421\u0438\u043c\u0432\u043e\u043b\u044b (\u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u043e\u0432)", +"{0} characters": "{0} \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432", +"Error: Form submit field collision.": "\u041e\u0448\u0438\u0431\u043a\u0430: \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043f\u043e\u043b\u0435\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b.", +"Error: No form element found.": "\u041e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0444\u043e\u0440\u043c\u044b.", +"Update": "\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c", +"Color swatch": "\u041e\u0431\u0440\u0430\u0437\u0435\u0446 \u0446\u0432\u0435\u0442\u0430", +"Turquoise": "\u0411\u0438\u0440\u044e\u0437\u043e\u0432\u044b\u0439", +"Green": "\u0417\u0435\u043b\u0435\u043d\u044b\u0439", +"Blue": "\u0421\u0438\u043d\u0438\u0439", +"Purple": "\u0420\u043e\u0437\u043e\u0432\u044b\u0439", +"Navy Blue": "\u0422\u0435\u043c\u043d\u043e-\u0441\u0438\u043d\u0438\u0439", +"Dark Turquoise": "\u0422\u0435\u043c\u043d\u043e-\u0431\u0438\u0440\u044e\u0437\u043e\u0432\u044b\u0439", +"Dark Green": "\u0422\u0435\u043c\u043d\u043e-\u0437\u0435\u043b\u0435\u043d\u044b\u0439", +"Medium Blue": "\u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0441\u0438\u043d\u0438\u0439", +"Medium Purple": "\u0423\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0443\u0440\u043f\u0443\u0440\u043d\u044b\u0439", +"Midnight Blue": "\u0427\u0435\u0440\u043d\u043e-\u0441\u0438\u043d\u0438\u0439", +"Yellow": "\u0416\u0435\u043b\u0442\u044b\u0439", +"Orange": "\u041e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439", +"Red": "\u041a\u0440\u0430\u0441\u043d\u044b\u0439", +"Light Gray": "\u0421\u0432\u0435\u0442\u043b\u043e-\u0441\u0435\u0440\u044b\u0439", +"Gray": "\u0421\u0435\u0440\u044b\u0439", +"Dark Yellow": "\u0422\u0435\u043c\u043d\u043e-\u0436\u0435\u043b\u0442\u044b\u0439", +"Dark Orange": "\u0422\u0435\u043c\u043d\u043e-\u043e\u0440\u0430\u043d\u0436\u0435\u0432\u044b\u0439", +"Dark Red": "\u0422\u0435\u043c\u043d\u043e-\u043a\u0440\u0430\u0441\u043d\u044b\u0439", +"Medium Gray": "\u0423\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0441\u0435\u0440\u044b\u0439", +"Dark Gray": "\u0422\u0435\u043c\u043d\u043e-\u0441\u0435\u0440\u044b\u0439", +"Light Green": "\u0421\u0432\u0435\u0442\u043b\u043e\u0437\u0435\u043b\u0435\u043d\u044b\u0439", +"Light Yellow": "\u0421\u0432\u0435\u0442\u043b\u043e\u0436\u0435\u043b\u0442\u044b\u0439", +"Light Red": "\u0421\u0432\u0435\u0442\u043b\u043e\u043a\u0440\u0430\u0441\u043d\u044b\u0439", +"Light Purple": "\u0421\u0432\u0435\u0442\u043b\u043e\u043f\u0443\u0440\u043f\u0443\u0440\u043d\u044b\u0439", +"Light Blue": "\u0421\u0432\u0435\u0442\u043b\u043e\u0441\u0438\u043d\u0438\u0439", +"Dark Purple": "\u0422\u0435\u043c\u043d\u043e\u043f\u0443\u0440\u043f\u0443\u0440\u043d\u044b\u0439", +"Dark Blue": "\u0422\u0435\u043c\u043d\u043e\u0441\u0438\u043d\u0438\u0439", +"Black": "\u0427\u0435\u0440\u043d\u044b\u0439", +"White": "\u0411\u0435\u043b\u044b\u0439", +"Switch to or from fullscreen mode": "\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c", +"Open help dialog": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0441\u043f\u0440\u0430\u0432\u043a\u0443", +"history": "\u0438\u0441\u0442\u043e\u0440\u0438\u044f", +"styles": "\u0441\u0442\u0438\u043b\u0438", +"formatting": "\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435", +"alignment": "\u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435", +"indentation": "\u043e\u0442\u0441\u0442\u0443\u043f", +"permanent pen": "\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u043f\u0435\u0440\u043e", +"comments": "\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438", +"Format Painter": "\u0425\u0443\u0434\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442", +"Insert\/edit iframe": "\u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c iframe", +"Capitalization": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435", +"lowercase": "\u041f\u0440\u043e\u043f\u0438\u0441\u043d\u044b\u0435", +"UPPERCASE": "\u0412\u0415\u0420\u0425\u041d\u0418\u0419 \u0420\u0415\u0413\u0418\u0421\u0422\u0420", +"Title Case": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Permanent Pen Properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0430", +"Permanent pen properties...": "\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0440\u0443\u0447\u043a\u0438 ...", +"Font": "\u0428\u0440\u0438\u0444\u0442", +"Size": "\u0420\u0430\u0437\u043c\u0435\u0440", +"More...": "\u0415\u0449\u0435...", +"Spellcheck Language": "\u0421\u043b\u043e\u0432\u0430\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f", +"Select...": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c", +"Preferences": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f", +"Yes": "\u0414\u0430", +"No": "\u041d\u0435\u0442", +"Keyboard Navigation": "\u041a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438", +"Version": "\u0412\u0435\u0440\u0441\u0438\u044f", +"Anchor": "\u042f\u043a\u043e\u0440\u044c", +"Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b", +"Code sample": "\u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430", +"Color": "\u0426\u0432\u0435\u0442", +"Emoticons": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b", +"Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f", +"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443", +"Link": "\u0421\u0441\u044b\u043b\u043a\u0430", +"Poster": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", +"Media": "\u0412\u0438\u0434\u0435\u043e", +"Print": "\u041f\u0435\u0447\u0430\u0442\u044c", +"Prev": "\u0412\u0432\u0435\u0440\u0445", +"Find and replace": "\u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430", +"Whole words": "\u0421\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c", +"Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435", +"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/sk.js b/common/plugins/editors/tinymce/media/langs/sk.js new file mode 100755 index 0000000000000000000000000000000000000000..682614a86f40d8b92effa250b49447bdd1835429 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/sk.js @@ -0,0 +1,388 @@ +tinymce.addI18n('sk',{ +"Redo": "Znova", +"Undo": "Sp\u00e4\u0165", +"Cut": "Vystrihn\u00fa\u0165", +"Copy": "Kop\u00edrova\u0165", +"Paste": "Prilepi\u0165", +"Select all": "Ozna\u010di\u0165 v\u0161etko", +"New document": "Nov\u00fd dokument", +"Ok": "Ok", +"Cancel": "Zru\u0161i\u0165", +"Visual aids": "Vizu\u00e1lne pom\u00f4cky", +"Bold": "Tu\u010dn\u00e9", +"Italic": "Kurz\u00edva", +"Underline": "Pod\u010diarknut\u00e9", +"Strikethrough": "Pre\u010diarknut\u00e9", +"Superscript": "Horn\u00fd index", +"Subscript": "Doln\u00fd index", +"Clear formatting": "Vymaza\u0165 form\u00e1tovanie", +"Align left": "Zarovna\u0165 v\u013eavo", +"Align center": "Zarovna\u0165 na stred", +"Align right": "Zarovna\u0165 vpravo", +"Justify": "Zarovna\u0165", +"Bullet list": "Zoznam s odr\u00e1\u017ekami", +"Numbered list": "\u010c\u00edslovan\u00fd zoznam", +"Decrease indent": "Zmen\u0161i\u0165 odsadenie", +"Increase indent": "Zv\u00e4\u010d\u0161i\u0165 odsadenie", +"Close": "Zatvori\u0165", +"Formats": "Form\u00e1ty", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "V\u00e1\u0161 prehliada\u010d nepodporuje priamy pr\u00edstup do schr\u00e1nky. Pou\u017eite kl\u00e1vesov\u00e9 skratky Ctrl+X\/C\/V.", +"Headers": "Z\u00e1hlavia", +"Header 1": "Z\u00e1hlavie 1", +"Header 2": "Z\u00e1hlavie 2", +"Header 3": "Z\u00e1hlavie 3", +"Header 4": "Z\u00e1hlavie 4", +"Header 5": "Z\u00e1hlavie 5", +"Header 6": "Z\u00e1hlavie 6", +"Headings": "Nadpisy", +"Heading 1": "Nadpis 1", +"Heading 2": "Nadpis 2", +"Heading 3": "Nadpis 3", +"Heading 4": "Nadpis 4", +"Heading 5": "Nadpis 5", +"Heading 6": "Nadpis 6", +"Preformatted": "Predform\u00e1tovan\u00e9", +"Div": "Div", +"Pre": "Pre", +"Code": "K\u00f3d", +"Paragraph": "Odstavec", +"Blockquote": "Blockquote", +"Inline": "Vlo\u017een\u00e9 \u0161t\u00fdly", +"Blocks": "Bloky", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Vkladanie je v m\u00f3de neform\u00e1tovan\u00e9ho textu. Vkladan\u00fd obsah bude vlo\u017een\u00fd ako neform\u00e1tovan\u00fd, a\u017e pok\u00fdm t\u00fato mo\u017enos\u0165 nevypnete.", +"Fonts": "Typy p\u00edsma", +"Font Sizes": "Ve\u013ekosti p\u00edsma", +"Class": "Trieda", +"Browse for an image": "N\u00e1js\u0165 obr\u00e1zok", +"OR": "ALEBO", +"Drop an image here": "Pretiahnite obr\u00e1zok sem", +"Upload": "Nahra\u0165", +"Block": "Blok", +"Align": "Zarovna\u0165", +"Default": "V\u00fdchodzie", +"Circle": "Kruh", +"Disc": "Disk", +"Square": "\u0160tvorec", +"Lower Alpha": "Mal\u00e9 p\u00edsmen\u00e1", +"Lower Greek": "Mal\u00e9 gr\u00e9cke p\u00edsmen\u00e1", +"Lower Roman": "Mal\u00e9 r\u00edmske \u010d\u00edslice", +"Upper Alpha": "Ve\u013ek\u00e9 p\u00edsmen\u00e1", +"Upper Roman": "Ve\u013ek\u00e9 r\u00edmske \u010d\u00edslice", +"Anchor...": "Kotva...", +"Name": "N\u00e1zov", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id by malo za\u010d\u00edna\u0165 p\u00edsmenom, nasledovan\u00e9 p\u00edsmenami, \u010d\u00edslami, pom\u013a\u010dkami, bodkami, dvojbodkami alebo podtr\u017en\u00edkmi.", +"You have unsaved changes are you sure you want to navigate away?": "M\u00e1te neulo\u017een\u00e9 zmeny, naozaj chcete opusti\u0165 str\u00e1nku?", +"Restore last draft": "Obnovi\u0165 posledn\u00fd koncept", +"Special characters...": "\u0160peci\u00e1lne znaky...", +"Source code": "Zdrojov\u00fd k\u00f3d", +"Insert\/Edit code sample": "Vlo\u017ei\u0165\/upravi\u0165 vzorku k\u00f3du", +"Language": "Jazyk", +"Code sample...": "Vzorka k\u00f3du...", +"Color Picker": "V\u00fdber farieb", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Z\u013eava doprava", +"Right to left": "Sprava do\u013eava", +"Emoticons...": "Smajl\u00edky...", +"Metadata and Document Properties": "Meta\u00fadaje a vlastnosti dokumentu", +"Title": "Nadpis", +"Keywords": "K\u013e\u00fa\u010dov\u00e9 slov\u00e1", +"Description": "Popis", +"Robots": "Preh\u013ead\u00e1vacie roboty", +"Author": "Autor", +"Encoding": "K\u00f3dovanie", +"Fullscreen": "Na cel\u00fa obrazovku", +"Action": "Action", +"Shortcut": "Shortcut", +"Help": "Help", +"Address": "Address", +"Focus to menubar": "Focus to menubar", +"Focus to toolbar": "Focus to toolbar", +"Focus to element path": "Focus to element path", +"Focus to contextual toolbar": "Focus to contextual toolbar", +"Insert link (if link plugin activated)": "Insert link (if link plugin activated)", +"Save (if save plugin activated)": "Save (if save plugin activated)", +"Find (if searchreplace plugin activated)": "Find (if searchreplace plugin activated)", +"Plugins installed ({0}):": "Plugins installed ({0}):", +"Premium plugins:": "Premium plugins:", +"Learn more...": "Learn more...", +"You are using {0}": "You are using {0}", +"Plugins": "Pluginy", +"Handy Shortcuts": "U\u017eito\u010dn\u00e9 odkazy", +"Horizontal line": "Horizont\u00e1lna \u010diara", +"Insert\/edit image": "Vlo\u017ei\u0165\/upravi\u0165 obr\u00e1zok", +"Image description": "Popis obr\u00e1zku", +"Source": "Zdroj", +"Dimensions": "Rozmery", +"Constrain proportions": "Vymedzen\u00e9 proporcie", +"General": "Hlavn\u00e9", +"Advanced": "Pokro\u010dil\u00e9", +"Style": "\u0160t\u00fdl", +"Vertical space": "Vertik\u00e1lny priestor", +"Horizontal space": "Horizont\u00e1lny priestor", +"Border": "Or\u00e1movanie", +"Insert image": "Vlo\u017ei\u0165 obr\u00e1zok", +"Image...": "Obr\u00e1zok...", +"Image list": "Zoznam obr\u00e1zkov", +"Rotate counterclockwise": "Oto\u010di\u0165 proti smeru hodinov\u00fdch ru\u010di\u010diek", +"Rotate clockwise": "Oto\u010di\u0165 v smere hodinov\u00fdch ru\u010di\u010diek", +"Flip vertically": "Preklopi\u0165 vertik\u00e1lne", +"Flip horizontally": "Preklopi\u0165 horizont\u00e1lne", +"Edit image": "Upravi\u0165 obr\u00e1zok", +"Image options": "Mo\u017enosti obr\u00e1zku", +"Zoom in": "Pribl\u00ed\u017ei\u0165", +"Zoom out": "Oddiali\u0165", +"Crop": "Vyreza\u0165", +"Resize": "Zmeni\u0165 ve\u013ekos\u0165", +"Orientation": "Orient\u00e1cia", +"Brightness": "Jas", +"Sharpen": "Zaostri\u0165", +"Contrast": "Kontrast", +"Color levels": "\u00darovne farieb", +"Gamma": "Gama", +"Invert": "Invertova\u0165", +"Apply": "Pou\u017ei\u0165", +"Back": "Sp\u00e4\u0165", +"Insert date\/time": "Vlo\u017ei\u0165 d\u00e1tum\/\u010das", +"Date\/time": "D\u00e1tum\/\u010das", +"Insert\/Edit Link": "Vlo\u017ei\u0165\/Upravi\u0165 odkaz", +"Insert\/edit link": "Vlo\u017ei\u0165\/upravi\u0165 odkaz", +"Text to display": "Zobrazen\u00fd text", +"Url": "Url", +"Open link in...": "Otvori\u0165 odkaz v...", +"Current window": "Aktu\u00e1lne okno", +"None": "\u017diadne", +"New window": "Nov\u00e9 okno", +"Remove link": "Odstr\u00e1ni\u0165 odkaz", +"Anchors": "Kotvy", +"Link...": "Odkaz...", +"Paste or type a link": "Prilepte alebo nap\u00ed\u0161te odkaz", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL, ktor\u00fa ste vlo\u017eili je pravdepodobne emailov\u00e1 adresa. \u017del\u00e1te si prida\u0165 vy\u017eadovan\u00fa mailto: predponu?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL adresa ktor\u00fa ste zadali vyzer\u00e1 ako extern\u00fd odkaz. Chcete prida\u0165 vy\u017eadovan\u00fa http:\/\/ predponu?", +"Link list": "Zoznam odkazov", +"Insert video": "Vlo\u017ei\u0165 video", +"Insert\/edit video": "Vlo\u017ei\u0165\/upravi\u0165 video", +"Insert\/edit media": "Vlo\u017ei\u0165\/upravi\u0165 m\u00e9di\u00e1", +"Alternative source": "Alternat\u00edvny zdroj", +"Alternative source URL": "Alternat\u00edvny zdroj URL", +"Media poster (Image URL)": "Obr\u00e1zok m\u00e9dia (URL obr\u00e1zka)", +"Paste your embed code below:": "Vlo\u017ete k\u00f3d pre vlo\u017eenie na str\u00e1nku:", +"Embed": "Vlo\u017een\u00e9", +"Media...": "M\u00e9di\u00e1...", +"Nonbreaking space": "Nedelite\u013en\u00e1 medzera", +"Page break": "Zalomenie str\u00e1nky", +"Paste as text": "Vlo\u017ei\u0165 ako text", +"Preview": "N\u00e1h\u013ead", +"Print...": "Tla\u010d...", +"Save": "Ulo\u017ei\u0165", +"Find": "H\u013eada\u0165", +"Replace with": "Nahradi\u0165 za", +"Replace": "Nahradi\u0165", +"Replace all": "Nahradi\u0165 v\u0161etko", +"Previous": "Predch\u00e1dzaj\u00face", +"Next": "Nasleduj\u00face", +"Find and replace...": "N\u00e1js\u0165 a nahradi\u0165...", +"Could not find the specified string.": "Zadan\u00fd re\u0165azec sa nena\u0161iel.", +"Match case": "Rozli\u0161ova\u0165 ve\u013ek\u00e9\/mal\u00e9", +"Find whole words only": "H\u013eada\u0165 len cel\u00e9 slov\u00e1", +"Spell check": "Kontrola pravopisu", +"Ignore": "Ignorova\u0165", +"Ignore all": "Ignorova\u0165 v\u0161etko", +"Finish": "Dokon\u010di\u0165", +"Add to Dictionary": "Prida\u0165 do slovn\u00edka", +"Insert table": "Vlo\u017ei\u0165 tabu\u013eku", +"Table properties": "Nastavenia tabu\u013eky", +"Delete table": "Zmaza\u0165 tabu\u013eku", +"Cell": "Bunka", +"Row": "Riadok", +"Column": "St\u013apec", +"Cell properties": "Vlastnosti bunky", +"Merge cells": "Spoji\u0165 bunky", +"Split cell": "Rozdeli\u0165 bunku", +"Insert row before": "Vlo\u017ei\u0165 nov\u00fd riadok pred", +"Insert row after": "Vlo\u017ei\u0165 nov\u00fd riadok za", +"Delete row": "Zmaza\u0165 riadok", +"Row properties": "Vlastnosti riadku", +"Cut row": "Vystrihn\u00fa\u0165 riadok", +"Copy row": "Kop\u00edrova\u0165 riadok", +"Paste row before": "Vlo\u017ei\u0165 riadok pred", +"Paste row after": "Vlo\u017ei\u0165 riadok za", +"Insert column before": "Prida\u0165 nov\u00fd st\u013apec pred", +"Insert column after": "Prida\u0165 nov\u00fd st\u013apec za", +"Delete column": "Vymaza\u0165 st\u013apec", +"Cols": "St\u013apce", +"Rows": "Riadky", +"Width": "\u0160\u00edrka", +"Height": "V\u00fd\u0161ka", +"Cell spacing": "Priestor medzi bunkami", +"Cell padding": "Odsadenie v bunk\u00e1ch", +"Show caption": "Zobrazi\u0165 popis", +"Left": "V\u013eavo", +"Center": "Na stred", +"Right": "Vpravo", +"Cell type": "Typ bunky", +"Scope": "Oblas\u0165", +"Alignment": "Zarovnanie", +"H Align": "Horizont\u00e1lne zarovnanie", +"V Align": "Vertik\u00e1lne zarovnanie", +"Top": "Vrch", +"Middle": "Stred", +"Bottom": "Spodok", +"Header cell": "Bunka z\u00e1hlavia", +"Row group": "Skupina riadkov", +"Column group": "Skupina st\u013apcov", +"Row type": "Typ riadku", +"Header": "Z\u00e1hlavie", +"Body": "Telo", +"Footer": "P\u00e4ti\u010dka", +"Border color": "Farba or\u00e1movania", +"Insert template...": "Vlo\u017ei\u0165 \u0161abl\u00f3nu...", +"Templates": "\u0160abl\u00f3ny", +"Template": "\u0160abl\u00f3na", +"Text color": "Farba textu", +"Background color": "Farba pozadia", +"Custom...": "Vlastn\u00e1...", +"Custom color": "Vlastn\u00e1 farba", +"No color": "Bez farby", +"Remove color": "Odstr\u00e1ni\u0165 farbu", +"Table of Contents": "Obsah", +"Show blocks": "Zobrazi\u0165 bloky", +"Show invisible characters": "Zobrazi\u0165 skryt\u00e9 znaky", +"Word count": "Po\u010det slov", +"Words: {0}": "Slov: {0}", +"{0} words": "{0} slov\u00e1\/slov", +"File": "S\u00fabor", +"Edit": "Upravi\u0165", +"Insert": "Vlo\u017ei\u0165", +"View": "Zobrazi\u0165", +"Format": "Form\u00e1t", +"Table": "Tabu\u013eka", +"Tools": "N\u00e1stroje", +"Powered by {0}": "Pou\u017e\u00edva {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textov\u00e9 pole. Stla\u010dte ALT-F9 pre zobrazenie menu, ALT-F10 pre zobrazenie panela n\u00e1strojov, ALT-0 pre n\u00e1povedu.", +"Image title": "N\u00e1zov obr\u00e1zka", +"Border width": "\u0160\u00edrka okraja", +"Border style": "\u0160t\u00fdl okraja", +"Error": "Chyba", +"Warn": "Upozornenie", +"Valid": "Platn\u00e9", +"To open the popup, press Shift+Enter": "Na otvorenie kontextovej ponuky stla\u010dte Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "Oblas\u0165 pre text vo form\u00e1te RTF. Stla\u010dte ALT-0 pre n\u00e1povedu.", +"System Font": "Syst\u00e9mov\u00e9 p\u00edsmo", +"Failed to upload image: {0}": "Obr\u00e1zok sa nepodarilo nahra\u0165: {0}", +"Failed to load plugin: {0} from url {1}": "Plugin: {0} sa nepodarilo nahra\u0165 z url {1}", +"Failed to load plugin url: {0}": "Nepodarilo sa nahra\u0165 plugin url: {0}", +"Failed to initialize plugin: {0}": "Nepodarilo sa inicializova\u0165 plugin: {0}", +"example": "pr\u00edklad", +"Search": "Vyh\u013eada\u0165", +"All": "V\u0161etko", +"Currency": "Mena", +"Text": "Text", +"Quotations": "Kvot\u00e1cie", +"Mathematical": "Matematick\u00e9", +"Extended Latin": "Roz\u0161\u00edren\u00e1 latinka", +"Symbols": "Symboly", +"Arrows": "\u0160\u00edpky", +"User Defined": "Definovan\u00e9 pou\u017e\u00edvate\u013eom", +"dollar sign": "znak pre dol\u00e1r", +"currency sign": "znak meny", +"euro-currency sign": "znak eura", +"colon sign": "znak dvojbodky", +"cruzeiro sign": "znak pre cruzeiro", +"french franc sign": "znak pre franc\u00fazsky frank", +"lira sign": "znak pre l\u00edru", +"mill sign": "znak pre mill", +"naira sign": "znak pre nairu", +"peseta sign": "znak pre pesetu", +"rupee sign": "znak pre rupiu", +"won sign": "znak pre won", +"new sheqel sign": "znak pre nov\u00fd \u0161ekel", +"dong sign": "znak pre dong", +"kip sign": "znak pre kip", +"tugrik sign": "znak pre tugrik", +"drachma sign": "znak pre drachmu", +"german penny symbol": "znak pre nemeck\u00fd pfennig", +"peso sign": "znak pre peso", +"guarani sign": "znak pre guarani", +"austral sign": "znak pre austral", +"hryvnia sign": "znak pre hrivnu", +"cedi sign": "znak pre cedi", +"livre tournois sign": "znak pre livre tournois", +"spesmilo sign": "znak pre spesmilo", +"tenge sign": "znak pre tenge", +"indian rupee sign": "znak pre indick\u00fa rupiu", +"turkish lira sign": "znak pre tureck\u00fa l\u00edru", +"nordic mark sign": "znak pre nordick\u00fa marku", +"manat sign": "znak pre manat", +"ruble sign": "znak pre rube\u013e", +"yen character": "znak pre jen", +"yuan character": "znak pre j\u00fcan", +"yuan character, in hong kong and taiwan": "znak pre j\u00fcan, v Hongkongu a Taiwane", +"yen\/yuan character variant one": "znak pre jen\/j\u00fcan variant jedna", +"Loading emoticons...": "Na\u010d\u00edtavam smajl\u00edky...", +"Could not load emoticons": "Smajl\u00edky sa nepodarilo na\u010d\u00edta\u0165", +"People": "\u013dudia", +"Animals and Nature": "Zvierat\u00e1 a pr\u00edroda", +"Food and Drink": "Jedlo a n\u00e1poje", +"Activity": "Aktivity", +"Travel and Places": "Cestovanie a miesta", +"Objects": "Objekty", +"Flags": "Vlajky", +"Characters": "Znaky", +"Characters (no spaces)": "Znaky (bez medzier)", +"Error: Form submit field collision.": "Chyba: konflikt po\u013ea odosielania formul\u00e1ra.", +"Error: No form element found.": "Chyba: nena\u0161iel sa prvok formul\u00e1ra.", +"Update": "Aktualizova\u0165", +"Color swatch": "Vzorky farieb", +"Turquoise": "Tyrkysov\u00e1", +"Green": "Zelen\u00e1", +"Blue": "Modr\u00e1", +"Purple": "Fialov\u00e1", +"Navy Blue": "N\u00e1morn\u00edcka modr\u00e1", +"Dark Turquoise": "Tmavotyrkysov\u00e1", +"Dark Green": "Tmavozelen\u00e1", +"Medium Blue": "Stredn\u00e1 modr\u00e1", +"Medium Purple": "Stredn\u00e1 fialov\u00e1", +"Midnight Blue": "Polno\u010dn\u00e1 modr\u00e1", +"Yellow": "\u017dlt\u00e1", +"Orange": "Oran\u017eov\u00e1", +"Red": "\u010cerven\u00e1", +"Light Gray": "Svetlosiv\u00e1", +"Gray": "Siv\u00e1", +"Dark Yellow": "Tmavo\u017elt\u00e1", +"Dark Orange": "Tmavooran\u017eov\u00e1", +"Dark Red": "Tmavo\u010derven\u00e1", +"Medium Gray": "Stredn\u00e1 siv\u00e1", +"Dark Gray": "Tmavosiv\u00e1", +"Black": "\u010cierna", +"White": "Biela", +"Switch to or from fullscreen mode": "Prepn\u00fa\u0165 do alebo z re\u017eimu plnej obrazovky", +"Open help dialog": "Otvori\u0165 okno n\u00e1povedy", +"history": "hist\u00f3ria", +"styles": "\u0161t\u00fdly", +"formatting": "form\u00e1tovanie", +"alignment": "zarovnanie", +"indentation": "odsadenie", +"permanent pen": "fixka", +"comments": "koment\u00e1re", +"Anchor": "Odkaz", +"Special character": "\u0160peci\u00e1lny znak", +"Color": "Farba", +"Emoticons": "Smajl\u00edci", +"Document properties": "Vlastnosti dokumentu", +"Image": "Obr\u00e1zok", +"Insert link": "Vlo\u017ei\u0165 odkaz", +"Target": "Cie\u013e", +"Link": "Odkaz", +"Poster": "Uk\u00e1\u017eka", +"Media": "M\u00e9di\u00e1", +"Print": "Tla\u010di\u0165", +"Prev": "Predch\u00e1dzaj\u00face", +"Find and replace": "Vyh\u013eada\u0165 a nahradi\u0165", +"Whole words": "Cel\u00e9 slov\u00e1", +"Spellcheck": "Kontrola pravopisu", +"Caption": "Popisok", +"Insert template": "Vlo\u017ei\u0165 \u0161abl\u00f3nu" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/sl.js b/common/plugins/editors/tinymce/media/langs/sl.js new file mode 100755 index 0000000000000000000000000000000000000000..b739e73ba6b6a76a0e0ade685c52e1dfb6cfcd19 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/sl.js @@ -0,0 +1,370 @@ +tinymce.addI18n('sl',{ +"Redo": "Ponovno uveljavi", +"Undo": "Razveljavi", +"Cut": "Izre\u017ei", +"Copy": "Kopiraj", +"Paste": "Prilepi", +"Select all": "Izberi vse", +"New document": "Nov dokument", +"Ok": "V redu", +"Cancel": "Prekli\u010di", +"Visual aids": "Vizualni pripomo\u010dki", +"Bold": "Krepko", +"Italic": "Po\u0161evno", +"Underline": "Pod\u010drtano", +"Strikethrough": "Pre\u010drtano", +"Superscript": "Nadpisano", +"Subscript": "Podpisano", +"Clear formatting": "Odstrani oblikovanje", +"Align left": "Leva poravnava", +"Align center": "Sredinska poravnava", +"Align right": "Desna poravnava", +"Justify": "Obojestranska poravnava", +"Bullet list": "Ozna\u010den seznam", +"Numbered list": "O\u0161tevil\u010den seznam", +"Decrease indent": "Zmanj\u0161aj zamik", +"Increase indent": "Pove\u010daj zamik", +"Close": "Zapri", +"Formats": "Oblika", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Varnostne nastavitve brskalnika ne dopu\u0161\u010dajo direktnega dostopa do odlo\u017ei\u0161\u010da. Uporabite kombinacijo tipk Ctrl + X\/C\/V na tipkovnici.", +"Headers": "Naslovi", +"Header 1": "Naslov 1", +"Header 2": "Naslov 2", +"Header 3": "Naslov 3", +"Header 4": "Naslov 4", +"Header 5": "Naslov 5", +"Header 6": "Naslov 6", +"Headings": "Naslovi", +"Heading 1": "Naslov 1", +"Heading 2": "Naslov 2", +"Heading 3": "Naslov 3", +"Heading 4": "Naslov 4", +"Heading 5": "Naslov 5", +"Heading 6": "Naslov 6", +"Preformatted": "Predformatirano", +"Div": "Div", +"Pre": "Pre", +"Code": "Koda", +"Paragraph": "Odstavek", +"Blockquote": "Blockquote", +"Inline": "Med besedilom", +"Blocks": "Bloki", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Odlagali\u0161\u010de je sedaj v tekstovnem na\u010dinu. Vsebina bo preslikana kot besedilo, dokler te mo\u017enosti ne izklju\u010dite.", +"Fonts": "Pisave", +"Font Sizes": "Velikosti pisave", +"Class": "Razred", +"Browse for an image": "Prebrskaj za sliko", +"OR": "ALI", +"Drop an image here": "Spusti sliko sem", +"Upload": "Nalo\u017ei", +"Block": "Blok", +"Align": "Poravnava", +"Default": "Privzeto", +"Circle": "Krog", +"Disc": "Disk", +"Square": "Kvadrat", +"Lower Alpha": "Mala alfa", +"Lower Greek": "Male gr\u0161ke \u010drke", +"Lower Roman": "Male rimske \u0161tevilke", +"Upper Alpha": "Velika alfa", +"Upper Roman": "Velike rimske \u0161tevilke", +"Anchor...": "Sidro ...", +"Name": "Naziv", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id se mora za\u010deti s \u010drko, sledijo samo \u010drke, \u0161tevilke, pomi\u0161ljaji, pike, dvopi\u010dja ali pod\u010drtaji.", +"You have unsaved changes are you sure you want to navigate away?": "Imate neshranjene spremembe. Ste prepri\u010dati, da \u017eelite zapustiti stran?", +"Restore last draft": "Obnovi zadnji osnutek", +"Special characters...": "Posebni znaki ...", +"Source code": "Izvorna koda", +"Insert\/Edit code sample": "Vstavi\/Uredi vzor\u010dno kodo", +"Language": "Jezik", +"Code sample...": "Vzor\u010dna koda ...", +"Color Picker": "Izbirnik barve", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Od leve proti desni", +"Right to left": "Od desne proti levi", +"Emoticons...": "\u010custveni simboli ...", +"Metadata and Document Properties": "Metapodatki in lastnosti dokumenta", +"Title": "Naslov", +"Keywords": "Klju\u010dne besede", +"Description": "Opis", +"Robots": "Robotki", +"Author": "Avtor", +"Encoding": "Kodiranje", +"Fullscreen": "\u010cez cel zaslon", +"Action": "Dejanje", +"Shortcut": "Bli\u017enjica", +"Help": "Pomo\u010d", +"Address": "Naslov", +"Focus to menubar": "Poudarek na menijski vrstici", +"Focus to toolbar": "Poudarek na orodni vrstici", +"Focus to element path": "Poudarek na poti elementa", +"Focus to contextual toolbar": "Poudarek na kontekstualni orodni vrstici", +"Insert link (if link plugin activated)": "Vstavi povezavo (\u010de je aktiviran vti\u010dnik za povezavo)", +"Save (if save plugin activated)": "Shrani (\u010de je aktiviran vti\u010dnik za shranjevanje)", +"Find (if searchreplace plugin activated)": "I\u0161\u010di (\u010de je aktiviran vti\u010dnik za iskanje\/zamenjavo)", +"Plugins installed ({0}):": "Name\u0161\u010deni vti\u010dniki ({0}):", +"Premium plugins:": "Premium vti\u010dniki:", +"Learn more...": "Ve\u010d ...", +"You are using {0}": "Uporabljate {0}", +"Plugins": "Vti\u010dniki", +"Handy Shortcuts": "Uporabne bli\u017enjice", +"Horizontal line": "Vodoravna \u010drta", +"Insert\/edit image": "Vstavi\/uredi sliko", +"Image description": "Opis slike", +"Source": "Pot", +"Dimensions": "Dimenzije", +"Constrain proportions": "Obdr\u017ei razmerje", +"General": "Splo\u0161no", +"Advanced": "Napredno", +"Style": "Slog", +"Vertical space": "Navpi\u010dni prostor", +"Horizontal space": "Vodoravni prostor", +"Border": "Meja", +"Insert image": "Vnesi sliko", +"Image...": "Slika ...", +"Image list": "Seznam slik", +"Rotate counterclockwise": "Zavrti v nasprotni smeri urnega kazalca", +"Rotate clockwise": "Zavrti v smeri urnega kazalca", +"Flip vertically": "Obrni navpi\u010dno", +"Flip horizontally": "Obrni vodoravno", +"Edit image": "Uredi sliko", +"Image options": "Mo\u017enosti slike", +"Zoom in": "Pove\u010daj", +"Zoom out": "Pomanj\u0161aj", +"Crop": "Obre\u017ei", +"Resize": "Spremeni velikost", +"Orientation": "Usmerjenost", +"Brightness": "Svetlost", +"Sharpen": "Izostri", +"Contrast": "Kontrast", +"Color levels": "Barvni nivo", +"Gamma": "Gama", +"Invert": "Obrni", +"Apply": "Uporabi", +"Back": "Nazaj", +"Insert date\/time": "Vstavi datum\/\u010das", +"Date\/time": "Datum\/\u010das", +"Insert\/Edit Link": "Vstavi\/uredi povezavo", +"Insert\/edit link": "Vstavi\/uredi povezavo", +"Text to display": "Besedilo za prikaz", +"Url": "Povezava", +"Open link in...": "Odpri povezavo v ...", +"Current window": "Trenutno okno", +"None": "Brez", +"New window": "Novo okno", +"Remove link": "Odstrani povezavo", +"Anchors": "Sidra", +"Link...": "Povezava ...", +"Paste or type a link": "Prilepite ali vnesite povezavo", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Vneseni URL predstavlja e-po\u0161tni naslov. Ali \u017eelite dodati potrebno predpono \"mailto:\"?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Vneseni URL predstavlja zunanjo povezavo. Ali \u017eelite dodati predpono \"http:\/\/\"?", +"Link list": "Seznam povezav", +"Insert video": "Vstavi video", +"Insert\/edit video": "Vstavi\/uredi video", +"Insert\/edit media": "Vstavi\/uredi medij", +"Alternative source": "Nadomestni vir", +"Alternative source URL": "Nadomestni vir URL", +"Media poster (Image URL)": "Medijski poster (URL slike)", +"Paste your embed code below:": "Spodaj prilepite kodo za vdelavo:", +"Embed": "Vdelaj", +"Media...": "Mediji ...", +"Nonbreaking space": "Nedeljivi presledek", +"Page break": "Prelom strani", +"Paste as text": "Vnesi kot besedilo", +"Preview": "Predogled", +"Print...": "Natisni ...", +"Save": "Shrani", +"Find": "Najdi", +"Replace with": "Zamenjaj z", +"Replace": "Zamenjaj", +"Replace all": "Zamenjaj vse", +"Previous": "Prej\u0161nja", +"Next": "Naslednja", +"Find and replace...": "Najdi in zamenjaj ...", +"Could not find the specified string.": "Iskanje ni vrnilo rezultatov.", +"Match case": "Ujemanje malih in velikih \u010drk", +"Find whole words only": "I\u0161\u010di samo cele besede", +"Spell check": "\u010crkovanje", +"Ignore": "Prezri", +"Ignore all": "Prezri vse", +"Finish": "Zaklju\u010di", +"Add to Dictionary": "Dodaj v slovar", +"Insert table": "Vstavi tabelo", +"Table properties": "Lastnosti tabele", +"Delete table": "Izbri\u0161i tabelo", +"Cell": "Celica", +"Row": "Vrstica", +"Column": "Stolpec", +"Cell properties": "Lastnosti celice", +"Merge cells": "Zdru\u017ei celice", +"Split cell": "Razdeli celico", +"Insert row before": "Vstavi vrstico pred", +"Insert row after": "Vstavi vrstico za", +"Delete row": "Izbri\u0161i vrstico", +"Row properties": "Lastnosti vrstice", +"Cut row": "Izre\u017ei vrstico", +"Copy row": "Kopiraj vrstico", +"Paste row before": "Prilepi vrstico pred", +"Paste row after": "Prilepi vrstico za", +"Insert column before": "Vstavi stolpec pred", +"Insert column after": "Vstavi stolpec za", +"Delete column": "Izbri\u0161i stolpec", +"Cols": "Stolpci", +"Rows": "Vrstice", +"Width": "\u0160irina", +"Height": "Vi\u0161ina", +"Cell spacing": "Razmik med celicami", +"Cell padding": "Polnilo med celicami", +"Show caption": "Poka\u017ei napis", +"Left": "Leva", +"Center": "Sredinska", +"Right": "Desna", +"Cell type": "Tip celice", +"Scope": "Obseg", +"Alignment": "Poravnava", +"H Align": "Vodoravna poravnava", +"V Align": "Navpi\u010dna poravnava", +"Top": "Vrh", +"Middle": "Sredina", +"Bottom": "Dno", +"Header cell": "Celica glave", +"Row group": "Grupiranje vrstic", +"Column group": "Grupiranje stolpcev", +"Row type": "Tip vrstice", +"Header": "Header", +"Body": "Vsebina", +"Footer": "Footer", +"Border color": "Barva obrobe", +"Insert template...": "Vstavi predlogo ...", +"Templates": "Predloge", +"Template": "Predloga", +"Text color": "Barva besedila", +"Background color": "Barva ozadja", +"Custom...": "Po meri ...", +"Custom color": "Barva po meri", +"No color": "Brezbarvno", +"Remove color": "Odstrani barvo", +"Table of Contents": "Kazalo", +"Show blocks": "Prika\u017ei bloke", +"Show invisible characters": "Prika\u017ei skrite znake", +"Word count": "\u0160tevilo besed", +"Words: {0}": "Besed: {0}", +"{0} words": "{0} besed", +"File": "Datoteka", +"Edit": "Uredi", +"Insert": "Vstavi", +"View": "Pogled", +"Format": "Oblika", +"Table": "Tabela", +"Tools": "Orodja", +"Powered by {0}": "Uporablja tehnologijo {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Bogato besedilo. Pritisnite ALT-F9 za meni. Pritisnite ALT-F10 za orodno vrstico. Pritisnite ALT-0 za pomo\u010d", +"Image title": "Naslov slike", +"Border width": "\u0160irina obrobe", +"Border style": "Slog obrobe", +"Error": "Napaka", +"Warn": "Opozorilo", +"Valid": "Veljavno", +"To open the popup, press Shift+Enter": "Za odpiranje pojavnega okna pritisnite Shift + Enter.", +"Rich Text Area. Press ALT-0 for help.": "Bogato besedilo. Pritisnite ALT-0 za pomo\u010d.", +"System Font": "Sistemska pisava", +"Failed to upload image: {0}": "Napaka nalaganja slike: {0}", +"Failed to load plugin: {0} from url {1}": "Napaka nalaganja vti\u010dnika: {0} z url {1}", +"Failed to load plugin url: {0}": "Napaka nalaganja url: {0}", +"Failed to initialize plugin: {0}": "Napaka inicializacije vti\u010dnika: {0}", +"example": "primer", +"Search": "Iskanje", +"All": "Vse", +"Currency": "Valuta", +"Text": "Besedilo", +"Quotations": "Citati", +"Mathematical": "Matemati\u010dno", +"Extended Latin": "Raz\u0161irjena latinica", +"Symbols": "Simboli", +"Arrows": "Pu\u0161\u010dice", +"User Defined": "Uporabnik dolo\u010den", +"dollar sign": "znak za dolar", +"currency sign": "znak za valuto", +"euro-currency sign": "znak za evro", +"colon sign": "znak za dvopi\u010dje", +"cruzeiro sign": "znak za cruzeiro", +"french franc sign": "znak za francoski frank", +"lira sign": "znak za liro", +"mill sign": "znak za mill", +"naira sign": "znak za nairo", +"peseta sign": "znak za peseto", +"rupee sign": "znak za rupijo", +"won sign": "znak za won", +"new sheqel sign": "znak za novi \u0161ekl", +"dong sign": "znak za dong", +"kip sign": "znak za kip", +"tugrik sign": "znak za tugrik", +"drachma sign": "znak za drahmo", +"german penny symbol": "znak za nem\u0161ki peni", +"peso sign": "znak za peso", +"guarani sign": "znak za guarani", +"austral sign": "znak za austral", +"hryvnia sign": "znak za hrivnijo", +"cedi sign": "znak za cedi", +"livre tournois sign": "znak za livre tournois", +"spesmilo sign": "znak za spesmilo", +"tenge sign": "znak za tenge", +"indian rupee sign": "znak za indijsko rupijo", +"turkish lira sign": "znak za tur\u0161ko liro", +"nordic mark sign": "znak za nordijsko marko", +"manat sign": "znak za manat", +"ruble sign": "znak za rubelj", +"yen character": "znak za jen", +"yuan character": "znak za yuan", +"yuan character, in hong kong and taiwan": "znak za yuan, v Hongkongu in na Tajvanu", +"yen\/yuan character variant one": "znak za jen\/yuan, prva razli\u010dica", +"Loading emoticons...": "Nalaganje \u010dustvenih simbolov ...", +"Could not load emoticons": "\u010custvenih simbolov ni mogo\u010de nalo\u017eiti.", +"People": "Ljudje", +"Animals and Nature": "\u017divali in narava", +"Food and Drink": "Hrana in pija\u010da", +"Activity": "Dejavnost", +"Travel and Places": "Potovanja in kraji", +"Objects": "Predmeti", +"Flags": "Zastave", +"Characters": "Znaki", +"Characters (no spaces)": "Znaki (brez presledkov)", +"Error: Form submit field collision.": "Napaka: navzkri\u017eje polja za oddajo obrazca", +"Error: No form element found.": "Napaka: elementa oblike ni mogo\u010de najti", +"Update": "Posodobitev", +"Color swatch": "Vzorec barv", +"Turquoise": "Turkizna", +"Green": "Zelena", +"Blue": "Modra", +"Purple": "\u0160krlatna", +"Navy Blue": "Mornarsko modra", +"Dark Turquoise": "Temno turkizna", +"Dark Green": "Temno zelena", +"Medium Blue": "Srednje modra", +"Medium Purple": "Srednje \u0161krlatna", +"Midnight Blue": "Polno\u010dno modra", +"Yellow": "Rumena", +"Orange": "Oran\u017ena", +"Red": "Rde\u010da", +"Light Gray": "Svetlo siva", +"Gray": "Siva", +"Dark Yellow": "Temno rumena", +"Dark Orange": "Temno oran\u017ena", +"Dark Red": "Temno rde\u010da", +"Medium Gray": "Srednje siva", +"Dark Gray": "Temno siva", +"Black": "\u010crna", +"White": "Bela", +"Switch to or from fullscreen mode": "Preklopi v ali iz celozaslonskega na\u010dina", +"Open help dialog": "Odpri pogovorno okno za pomo\u010d", +"history": "zgodovina", +"styles": "slogi", +"formatting": "oblikovanje", +"alignment": "poravnava", +"indentation": "zamik", +"permanent pen": "permanentno pisalo", +"comments": "komentarji" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/sl_SI.js b/common/plugins/editors/tinymce/media/langs/sl_SI.js new file mode 100755 index 0000000000000000000000000000000000000000..3665d9cb2a3dcdfc8c2d14445e4ed112caea9769 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/sl_SI.js @@ -0,0 +1,388 @@ +tinymce.addI18n('sl_SI',{ +"Redo": "Ponovno uveljavi", +"Undo": "Razveljavi", +"Cut": "Izre\u017ei", +"Copy": "Kopiraj", +"Paste": "Prilepi", +"Select all": "Izberi vse", +"New document": "Nov dokument", +"Ok": "V redu", +"Cancel": "Prekli\u010di", +"Visual aids": "Vizualni pripomo\u010dki", +"Bold": "Krepko", +"Italic": "Po\u0161evno", +"Underline": "Pod\u010drtano", +"Strikethrough": "Pre\u010drtano", +"Superscript": "Nadpisano", +"Subscript": "Podpisano", +"Clear formatting": "Odstrani oblikovanje", +"Align left": "Leva poravnava", +"Align center": "Sredinska poravnava", +"Align right": "Desna poravnava", +"Justify": "Obojestranska poravnava", +"Bullet list": "Ozna\u010den seznam", +"Numbered list": "O\u0161tevil\u010den seznam", +"Decrease indent": "Zmanj\u0161aj zamik", +"Increase indent": "Pove\u010daj zamik", +"Close": "Zapri", +"Formats": "Oblika", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Varnostne nastavitve brskalnika ne dopu\u0161\u010dajo direktnega dostopa do odlo\u017ei\u0161\u010da. Uporabite kombinacijo tipk Ctrl + X\/C\/V na tipkovnici.", +"Headers": "Naslovi", +"Header 1": "Naslov 1", +"Header 2": "Naslov 2", +"Header 3": "Naslov 3", +"Header 4": "Naslov 4", +"Header 5": "Naslov 5", +"Header 6": "Naslov 6", +"Headings": "Naslovi", +"Heading 1": "Naslov 1", +"Heading 2": "Naslov 2", +"Heading 3": "Naslov 3", +"Heading 4": "Naslov 4", +"Heading 5": "Naslov 5", +"Heading 6": "Naslov 6", +"Preformatted": "Predformatirano", +"Div": "Div", +"Pre": "Pre", +"Code": "Koda", +"Paragraph": "Odstavek", +"Blockquote": "Blockquote", +"Inline": "Med besedilom", +"Blocks": "Bloki", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Odlagali\u0161\u010de je zdaj v tekstovnem na\u010dinu. Vsebina bo preslikana kot golo besedilo brez oblike, dokler te mo\u017enosti ne izklju\u010dite.", +"Fonts": "Pisave", +"Font Sizes": "Velikosti pisave", +"Class": "Razred", +"Browse for an image": "Prebrskaj za sliko", +"OR": "ALI", +"Drop an image here": "Spusti sliko sem", +"Upload": "Nalo\u017ei", +"Block": "Blok", +"Align": "Poravnava", +"Default": "Privzeto", +"Circle": "Pikica", +"Disc": "Kroglica", +"Square": "Kvadratek", +"Lower Alpha": "Male tiskane \u010drke", +"Lower Greek": "Male gr\u0161ke \u010drke", +"Lower Roman": "Male rimske \u0161tevilke", +"Upper Alpha": "Velike tiskane \u010drke", +"Upper Roman": "Velike rimske \u0161tevilke", +"Anchor...": "Sidro ...", +"Name": "Naziv zaznamka", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id se mora za\u010deti s \u010drko, sledijo samo \u010drke, \u0161tevilke, pomi\u0161ljaj, pike, dvopi\u010dje ali pod\u010drtaj.", +"You have unsaved changes are you sure you want to navigate away?": "Imate neshranjene spremembe. Ste prepri\u010dati, da \u017eelite zapustiti stran?", +"Restore last draft": "Obnovi zadnji osnutek", +"Special characters...": "Posebni znaki ...", +"Source code": "Izvorna koda", +"Insert\/Edit code sample": "Vstavi\/Uredi vzor\u010dno kodo", +"Language": "Jezik", +"Code sample...": "Vzor\u010dna koda ...", +"Color Picker": "Izbirnik barve", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Od leve proti desni", +"Right to left": "Od desne proti levi", +"Emoticons...": "\u010custveni simboli ...", +"Metadata and Document Properties": "Metapodatki in lastnosti dokumenta", +"Title": "Naslov", +"Keywords": "Klju\u010dne besede", +"Description": "Opis", +"Robots": "Robotki", +"Author": "Avtor", +"Encoding": "Kodiranje", +"Fullscreen": "\u010cez cel zaslon", +"Action": "Dejanje", +"Shortcut": "Bli\u017enjica", +"Help": "Pomo\u010d", +"Address": "Naslov", +"Focus to menubar": "Poudarek na menijski vrstici", +"Focus to toolbar": "Poudarek na orodni vrstici", +"Focus to element path": "Poudarek na poti elementa", +"Focus to contextual toolbar": "Poudarek na kontekstualni orodni vrstici", +"Insert link (if link plugin activated)": "Vstavi povezavo (\u010de je aktiviran vti\u010dnik za povezavo)", +"Save (if save plugin activated)": "Shrani (\u010de je aktiviran vti\u010dnik za shranjevanje)", +"Find (if searchreplace plugin activated)": "I\u0161\u010di (\u010de je aktiviran vti\u010dnik za iskanje\/zamenjavo)", +"Plugins installed ({0}):": "Name\u0161\u010deni vti\u010dniki ({0}):", +"Premium plugins:": "Premium vti\u010dniki:", +"Learn more...": "Ve\u010d ...", +"You are using {0}": "Uporabljate {0}", +"Plugins": "Vti\u010dniki", +"Handy Shortcuts": "Uporabne bli\u017enjice", +"Horizontal line": "Vodoravna \u010drta", +"Insert\/edit image": "Vstavi\/uredi sliko", +"Image description": "Opis slike", +"Source": "Pot", +"Dimensions": "Dimenzije", +"Constrain proportions": "Obdr\u017ei razmerje", +"General": "Splo\u0161no", +"Advanced": "Napredno", +"Style": "Slog", +"Vertical space": "Navpi\u010dni prostor", +"Horizontal space": "Vodoravni prostor", +"Border": "Obroba", +"Insert image": "Vnesi sliko", +"Image...": "Slika ...", +"Image list": "Seznam slik", +"Rotate counterclockwise": "Zavrti v nasprotni smeri urnega kazalca", +"Rotate clockwise": "Zavrti v smeri urinega kazalca", +"Flip vertically": "Obrni navpi\u010dno", +"Flip horizontally": "Obrni vodoravno", +"Edit image": "Uredi sliko", +"Image options": "Mo\u017enosti slike", +"Zoom in": "Pove\u010daj", +"Zoom out": "Pomanj\u0161aj", +"Crop": "Obre\u017ei", +"Resize": "Spremeni velikost", +"Orientation": "Usmerjenost", +"Brightness": "Svetlost", +"Sharpen": "Izostri", +"Contrast": "Kontrast", +"Color levels": "Barvni nivo", +"Gamma": "Gama", +"Invert": "Obrni", +"Apply": "Uporabi", +"Back": "Nazaj", +"Insert date\/time": "Vstavi datum\/\u010das", +"Date\/time": "Datum\/\u010das", +"Insert\/Edit Link": "Vstavi\/uredi povezavo", +"Insert\/edit link": "Vstavi\/uredi povezavo", +"Text to display": "Prikazno besedilo", +"Url": "Povezava", +"Open link in...": "Odpri povezavo v ...", +"Current window": "Trenutno okno", +"None": "Brez", +"New window": "Novo okno", +"Remove link": "Odstrani povezavo", +"Anchors": "Sidra", +"Link...": "Povezava ...", +"Paste or type a link": "Prilepite ali vnesite povezavo", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Vne\u0161eni URL predstavlja e-po\u0161tni naslov. Ali \u017eelite dodati potrebno \"mailto:\" predpono?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Vne\u0161eni URL predstavlja zunanjo povezavo. Ali \u017eelite dodati \"http:\/\/\" predpono?", +"Link list": "Seznam povezav", +"Insert video": "Vstavi video", +"Insert\/edit video": "Vstavi\/uredi video", +"Insert\/edit media": "Vstavi\/uredi medij", +"Alternative source": "Nadomestni vir", +"Alternative source URL": "Nadomestni vir URL", +"Media poster (Image URL)": "Medijski poster (URL slike)", +"Paste your embed code below:": "Prilepite kodo za vdelavo:", +"Embed": "Vdelaj", +"Media...": "Mediji ...", +"Nonbreaking space": "Nedeljivi presledek", +"Page break": "Prelom strani", +"Paste as text": "Vnesi kot besedilo", +"Preview": "Predogled", +"Print...": "Natisni ...", +"Save": "Shrani", +"Find": "I\u0161\u010di", +"Replace with": "Zamenjaj z", +"Replace": "Zamenjaj", +"Replace all": "Zamenjaj vse", +"Previous": "Prej\u0161nja", +"Next": "Naprej", +"Find and replace...": "Najdi in zamenjaj ...", +"Could not find the specified string.": "Iskanje ni vrnilo rezultatov.", +"Match case": "Ujemanje malih in velikih \u010drk", +"Find whole words only": "I\u0161\u010di samo cele besede", +"Spell check": "\u010crkovanje", +"Ignore": "Prezri", +"Ignore all": "Prezri vse", +"Finish": "Zaklju\u010di", +"Add to Dictionary": "Dodaj v slovar", +"Insert table": "Vstavi tabelo", +"Table properties": "Lastnosti tabele", +"Delete table": "Izbri\u0161i tabelo", +"Cell": "Celica", +"Row": "Vrstica", +"Column": "Stolpec", +"Cell properties": "Lastnosti celice", +"Merge cells": "Zdru\u017ei celice", +"Split cell": "Razdeli celico", +"Insert row before": "Vstavi vrstico pred", +"Insert row after": "Vstavi vrstico za", +"Delete row": "Izbri\u0161i vrstico", +"Row properties": "Lastnosti vrstice", +"Cut row": "Izre\u017ei vrstico", +"Copy row": "Kopiraj vrstico", +"Paste row before": "Prilepi vrstico pred", +"Paste row after": "Prilepi vrstico za", +"Insert column before": "Vstavi stolpec pred", +"Insert column after": "Vstavi stolpec za", +"Delete column": "Izbri\u0161i stolpec", +"Cols": "Stolpci", +"Rows": "Vrstice", +"Width": "\u0160irina", +"Height": "Vi\u0161ina", +"Cell spacing": "Razmik med celicami", +"Cell padding": "Polnilo med celicami", +"Show caption": "Poka\u017ei napis", +"Left": "Levo", +"Center": "Sredinsko", +"Right": "Desno", +"Cell type": "Tip celice", +"Scope": "Obseg", +"Alignment": "Poravnava", +"H Align": "Horizontalna poravnava", +"V Align": "Vertikalna poravnava", +"Top": "Vrh", +"Middle": "Sredina", +"Bottom": "Dno", +"Header cell": "Celica glave", +"Row group": "Grupiranje vrstic", +"Column group": "Grupiranje stolpcev", +"Row type": "Tip vrstice", +"Header": "Glava", +"Body": "Vsebina", +"Footer": "Noga", +"Border color": "Barva obrobe", +"Insert template...": "Vstavi predlogo ...", +"Templates": "Predloge", +"Template": "Predloga", +"Text color": "Barva besedila", +"Background color": "Barva ozadja", +"Custom...": "Po meri ...", +"Custom color": "Barva po meri", +"No color": "Brezbarvno", +"Remove color": "Odstrani barvo", +"Table of Contents": "Kazalo", +"Show blocks": "Prika\u017ei bloke", +"Show invisible characters": "Prika\u017ei skrite znake", +"Word count": "\u0160tevilo besed", +"Words: {0}": "Besed: {0}", +"{0} words": "{0} besed", +"File": "Datoteka", +"Edit": "Uredi", +"Insert": "Vstavi", +"View": "Pogled", +"Format": "Oblika", +"Table": "Tabela", +"Tools": "Orodja", +"Powered by {0}": "Uporablja tehnologijo {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Bogato besedilo. Pritisnite ALT-F9 za meni. Pritisnite ALT-F10 za orodno vrstico. Pritisnite ALT-0 za pomo\u010d", +"Image title": "Naslov slike", +"Border width": "\u0160irina obrobe", +"Border style": "Slog obrobe", +"Error": "Napaka", +"Warn": "Opozorilo", +"Valid": "Veljavno", +"To open the popup, press Shift+Enter": "Za odpiranje pojavnega okna pritisnite Shift + Enter.", +"Rich Text Area. Press ALT-0 for help.": "Bogato besedilo. Pritisnite ALT-0 za pomo\u010d.", +"System Font": "Sistemska pisava", +"Failed to upload image: {0}": "Napaka nalaganja slike: {0}", +"Failed to load plugin: {0} from url {1}": "Napaka nalaganja vti\u010dnika: {0} z url {1}", +"Failed to load plugin url: {0}": "Napaka nalaganja url: {0}", +"Failed to initialize plugin: {0}": "Napaka inicializacije vti\u010dnika: {0}", +"example": "primer", +"Search": "Iskanje", +"All": "Vse", +"Currency": "Valuta", +"Text": "Besedilo", +"Quotations": "Citati", +"Mathematical": "Matemati\u010dno", +"Extended Latin": "Raz\u0161irjena latinica", +"Symbols": "Simboli", +"Arrows": "Pu\u0161\u010dice", +"User Defined": "Uporabnik dolo\u010den", +"dollar sign": "znak za dolar", +"currency sign": "znak za valuto", +"euro-currency sign": "znak za evro", +"colon sign": "znak za dvopi\u010dje", +"cruzeiro sign": "znak za cruzeiro", +"french franc sign": "znak za francoski frank", +"lira sign": "znak za liro", +"mill sign": "znak za mill", +"naira sign": "znak za nairo", +"peseta sign": "znak za peseto", +"rupee sign": "znak za rupijo", +"won sign": "znak za won", +"new sheqel sign": "znak za novi \u0161ekl", +"dong sign": "znak za dong", +"kip sign": "znak za kip", +"tugrik sign": "znak za tugrik", +"drachma sign": "znak za drahmo", +"german penny symbol": "znak za nem\u0161ki peni", +"peso sign": "znak za peso", +"guarani sign": "znak za guarani", +"austral sign": "znak za austral", +"hryvnia sign": "znak za hrivnijo", +"cedi sign": "znak za cedi", +"livre tournois sign": "znak za livre tournois", +"spesmilo sign": "znak za spesmilo", +"tenge sign": "znak za tenge", +"indian rupee sign": "znak za indijsko rupijo", +"turkish lira sign": "znak za tur\u0161ko liro", +"nordic mark sign": "znak za nordijsko marko", +"manat sign": "znak za manat", +"ruble sign": "znak za rubelj", +"yen character": "znak za jen", +"yuan character": "znak za yuan", +"yuan character, in hong kong and taiwan": "znak za yuan, v Hongkongu in na Tajvanu", +"yen\/yuan character variant one": "znak za jen\/yuan, prva razli\u010dica", +"Loading emoticons...": "Nalaganje \u010dustvenih simbolov ...", +"Could not load emoticons": "\u010custvenih simbolov ni mogo\u010de nalo\u017eiti.", +"People": "Ljudje", +"Animals and Nature": "\u017divali in narava", +"Food and Drink": "Hrana in pija\u010da", +"Activity": "Dejavnost", +"Travel and Places": "Potovanja in kraji", +"Objects": "Predmeti", +"Flags": "Zastave", +"Characters": "Znaki", +"Characters (no spaces)": "Znaki (brez presledkov)", +"Error: Form submit field collision.": "Napaka: navzkri\u017eje polja za oddajo obrazca", +"Error: No form element found.": "Napaka: elementa oblike ni mogo\u010de najti", +"Update": "Posodobitev", +"Color swatch": "Vzorec barv", +"Turquoise": "Turkizna", +"Green": "Zelena", +"Blue": "Modra", +"Purple": "\u0160krlatna", +"Navy Blue": "Mornarsko modra", +"Dark Turquoise": "Temno turkizna", +"Dark Green": "Temno zelena", +"Medium Blue": "Srednje modra", +"Medium Purple": "Srednje \u0161krlatna", +"Midnight Blue": "Polno\u010dno modra", +"Yellow": "Rumena", +"Orange": "Oran\u017ena", +"Red": "Rde\u010da", +"Light Gray": "Svetlo siva", +"Gray": "Siva", +"Dark Yellow": "Temno rumena", +"Dark Orange": "Temno oran\u017ena", +"Dark Red": "Temno rde\u010da", +"Medium Gray": "Srednje siva", +"Dark Gray": "Temno siva", +"Black": "\u010crna", +"White": "Bela", +"Switch to or from fullscreen mode": "Preklopi v ali iz celozaslonskega na\u010dina", +"Open help dialog": "Odpri pogovorno okno za pomo\u010d", +"history": "zgodovina", +"styles": "slogi", +"formatting": "oblikovanje", +"alignment": "poravnava", +"indentation": "zamik", +"permanent pen": "permanentno pisalo", +"comments": "komentarji", +"Anchor": "Zaznamek", +"Special character": "Posebni znaki", +"Color": "Barva", +"Emoticons": "Sme\u0161ki", +"Document properties": "Lastnosti dokumenta", +"Image": "Slika", +"Insert link": "Vstavi povezavo", +"Link": "Povezava", +"Target": "Cilj", +"Media": "Medij", +"Poster": "Poster", +"Print": "Natisni", +"Whole words": "Cele besede", +"Find and replace": "Poi\u0161\u010di in zamenjaj", +"Prev": "Nazaj", +"Spellcheck": "Preverjanje \u010drkovanja", +"Caption": "Naslov", +"Insert template": "Vstavi predlogo" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/sv_SE.js b/common/plugins/editors/tinymce/media/langs/sv_SE.js new file mode 100755 index 0000000000000000000000000000000000000000..12cae7d6ae7bb8b03d2034afdcfe4c2ff647fdf7 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/sv_SE.js @@ -0,0 +1,389 @@ +tinymce.addI18n('sv_SE',{ +"Redo": "G\u00f6r om", +"Undo": "\u00c5ngra", +"Cut": "Klipp ut", +"Copy": "Kopiera", +"Paste": "Klistra in", +"Select all": "Markera allt", +"New document": "Nytt dokument", +"Ok": "Ok", +"Cancel": "Avbryt", +"Visual aids": "Visuella hj\u00e4lpmedel", +"Bold": "Fet", +"Italic": "Kursiv", +"Underline": "Understruken", +"Strikethrough": "Genomstruken", +"Superscript": "Upph\u00f6jd", +"Subscript": "Neds\u00e4nkt", +"Clear formatting": "Rensa formatering", +"Align left": "V\u00e4nsterjustera", +"Align center": "Centrera", +"Align right": "H\u00f6gerjustera", +"Justify": "Verifiera", +"Bullet list": "Punktlista", +"Numbered list": "Nummerlista", +"Decrease indent": "Minska indrag", +"Increase indent": "\u00d6ka indrag", +"Close": "St\u00e4ng", +"Formats": "Format", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Din webbl\u00e4sare st\u00f6djer inte direkt \u00e5tkomst till klippboken. Anv\u00e4nd kortkommandona Ctrl\u00a0+\u00a0X\/C\/V i st\u00e4llet.", +"Headers": "Rubriker", +"Header 1": "Rubrik 1", +"Header 2": "Rubrik 2", +"Header 3": "Rubrik 3", +"Header 4": "Rubrik 4", +"Header 5": "Rubrik 5", +"Header 6": "Rubrik 6", +"Headings": "Rubriker", +"Heading 1": "Rubrik 1", +"Heading 2": "Rubrik 2", +"Heading 3": "Rubrik 3", +"Heading 4": "Rubrik 4", +"Heading 5": "Rubrik 5", +"Heading 6": "Rubrik 6", +"Preformatted": "F\u00f6rformaterad", +"Div": "Div", +"Pre": "Pre", +"Code": "Kod", +"Paragraph": "Avsnitt", +"Blockquote": "Blockquote", +"Inline": "Inline", +"Blocks": "Block", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Klistra in \u00e4r nu i textl\u00e4ge. Inneh\u00e5ll kommer att konverteras till text tills du sl\u00e5r av detta l\u00e4ge.", +"Fonts": "Typsnitt", +"Font Sizes": "Teckenstorlek", +"Class": "Klass", +"Browse for an image": "Bl\u00e4ddra efter en bild", +"OR": "ELLER", +"Drop an image here": "Sl\u00e4pp en bild h\u00e4r", +"Upload": "Ladda upp", +"Block": "Block", +"Align": "Justera", +"Default": "Original", +"Circle": "Cirkel", +"Disc": "Disk", +"Square": "Fyrkant", +"Lower Alpha": "Gemener", +"Lower Greek": "Grekiska gemener", +"Lower Roman": "Romerska gemener", +"Upper Alpha": "Versaler", +"Upper Roman": "Romerska versaler", +"Anchor...": "Ankare...", +"Name": "Namn", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id skall b\u00f6rja med en bokstav och f\u00f6ljande tecken ska vara bokst\u00e4ver, nummer, punkter, understr\u00e4ck eller kolon.", +"You have unsaved changes are you sure you want to navigate away?": "Du har f\u00f6r\u00e4ndringar som du inte har sparat. \u00c4r du s\u00e4ker p\u00e5 att du vill navigera vidare?", +"Restore last draft": "\u00c5terst\u00e4ll senaste utkast", +"Special characters...": "Specialtecken...", +"Source code": "K\u00e4llkod", +"Insert\/Edit code sample": "Infoga\/Redigera k\u00e5d exempel", +"Language": "Spr\u00e5k", +"Code sample...": "Kodexempel...", +"Color Picker": "F\u00e4rgv\u00e4ljare", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "V\u00e4nster till h\u00f6ger", +"Right to left": "H\u00f6ger till v\u00e4nster", +"Emoticons...": "Emoticons...", +"Metadata and Document Properties": "Metadata och dokumentegenskaper", +"Title": "Titel", +"Keywords": "Nyckelord", +"Description": "Beskrivning", +"Robots": "Robotar", +"Author": "F\u00f6rfattare", +"Encoding": "Encoding", +"Fullscreen": "Fullsk\u00e4rm", +"Action": "H\u00e4ndelse", +"Shortcut": "Kortkommando", +"Help": "Hj\u00e4lp", +"Address": "Adress", +"Focus to menubar": "Fokusera p\u00e5 menyrad", +"Focus to toolbar": "Fokusera p\u00e5 verktygsrad", +"Focus to element path": "Fokusera p\u00e5 elements\u00f6kv\u00e4gsrad", +"Focus to contextual toolbar": "Fokusera p\u00e5 den kontextuella verktygsraden", +"Insert link (if link plugin activated)": "Infoga l\u00e4nk (om link-pluginet \u00e4r aktiverat)", +"Save (if save plugin activated)": "Spara (om save-pluginet \u00e4r aktiverat)", +"Find (if searchreplace plugin activated)": "S\u00f6k (om searchreplace-pluginet \u00e4r aktiverat)", +"Plugins installed ({0}):": "Installerade plugins ({0}):", +"Premium plugins:": "Premiumplugins:", +"Learn more...": "L\u00e4s mer...", +"You are using {0}": "Du anv\u00e4nder {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Kortkommandon", +"Horizontal line": "Horisontell linje", +"Insert\/edit image": "Infoga\/redigera bild", +"Image description": "Bildbeskrivning", +"Source": "K\u00e4lla", +"Dimensions": "Dimensioner", +"Constrain proportions": "Begr\u00e4nsa proportioner", +"General": "Generella", +"Advanced": "Avancerat", +"Style": "Stil", +"Vertical space": "Vertikaltutrymme", +"Horizontal space": "Horisontellt utrymme", +"Border": "Ram", +"Insert image": "Infoga bild", +"Image...": "Bild...", +"Image list": "Bildlista", +"Rotate counterclockwise": "Rotera moturs", +"Rotate clockwise": "Rotera medurs", +"Flip vertically": "Spegelv\u00e4nd vertikalt", +"Flip horizontally": "Spegelv\u00e4nd horisontellt", +"Edit image": "Redigera bild", +"Image options": "Bild inst\u00e4llningar", +"Zoom in": "Zooma in", +"Zoom out": "Zooma ut", +"Crop": "Besk\u00e4r", +"Resize": "Skala om", +"Orientation": "Orientera", +"Brightness": "Ljusstyrka", +"Sharpen": "Sk\u00e4rpa", +"Contrast": "Kontrast", +"Color levels": "F\u00e4rgniv\u00e5er", +"Gamma": "Gamma", +"Invert": "Invertera", +"Apply": "Applicera", +"Back": "Tillbaka", +"Insert date\/time": "Infoga datum\/tid", +"Date\/time": "Datum\/tid", +"Insert\/Edit Link": "Infoga\/redigera l\u00e4nk", +"Insert\/edit link": "Infoga\/redigera l\u00e4nk", +"Text to display": "Text att visa", +"Url": "Url", +"Open link in...": "\u00d6ppna l\u00e4nk i...", +"Current window": "Nuvarande f\u00f6nster", +"None": "Ingen", +"New window": "Nytt f\u00f6nster", +"Remove link": "Ta bort l\u00e4nk", +"Anchors": "Bokm\u00e4rken", +"Link...": "L\u00e4nk...", +"Paste or type a link": "Klistra in eller skriv en l\u00e4nk", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Urlen du angav verkar vara en epost adress. Vill du l\u00e4gga till ett mailto: prefix?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Urlen du angav verkar vara en extern l\u00e4nk. Vill du l\u00e4gga till http:\/\/ prefixet?", +"Link list": "L\u00e4nklista", +"Insert video": "Infoga video", +"Insert\/edit video": "Infoga\/redigera video", +"Insert\/edit media": "Infoga\/redigera media", +"Alternative source": "Alternativ k\u00e4lla", +"Alternative source URL": "Alternativ k\u00e4llwebbadress", +"Media poster (Image URL)": "Mediaposter (bildwebbadress)", +"Paste your embed code below:": "Klistra in din inb\u00e4ddningskod nedan:", +"Embed": "Inb\u00e4ddning", +"Media...": "Media...", +"Nonbreaking space": "Avbrottsfritt mellanrum", +"Page break": "Sidbrytning", +"Paste as text": "Klistra in som text", +"Preview": "F\u00f6rhandsgranska", +"Print...": "Skriv ut...", +"Save": "Spara", +"Find": "S\u00f6k", +"Replace with": "Ers\u00e4tt med", +"Replace": "Ers\u00e4tt", +"Replace all": "Ers\u00e4tt alla", +"Previous": "F\u00f6reg\u00e5ende", +"Next": "N\u00e4sta", +"Find and replace...": "S\u00f6k och ers\u00e4tt...", +"Could not find the specified string.": "Kunde inte hitta den specifierade st\u00e4ngen.", +"Match case": "Matcha gemener\/versaler", +"Find whole words only": "Hitta endast hela ord", +"Spell check": "Stavningskontroll", +"Ignore": "Ignorera", +"Ignore all": "Ignorera alla", +"Finish": "Avsluta", +"Add to Dictionary": "L\u00e4gg till i ordlista", +"Insert table": "Infoga tabell", +"Table properties": "Tabellegenskaper", +"Delete table": "Radera tabell", +"Cell": "Cell", +"Row": "Rad", +"Column": "Kolumn", +"Cell properties": "Cellegenskaper", +"Merge cells": "Sammanfoga celler", +"Split cell": "Bryt is\u00e4r celler", +"Insert row before": "Infoga rad f\u00f6re", +"Insert row after": "Infoga rad efter", +"Delete row": "Radera rad", +"Row properties": "Radegenskaper", +"Cut row": "Klipp ut rad", +"Copy row": "Kopiera rad", +"Paste row before": "Klista in rad f\u00f6re", +"Paste row after": "Klistra in rad efter", +"Insert column before": "Infoga kolumn f\u00f6re", +"Insert column after": "Infoga kolumn efter", +"Delete column": "Radera kolumn", +"Cols": "Kolumner", +"Rows": "Rader", +"Width": "Bredd", +"Height": "H\u00f6jd", +"Cell spacing": "Cellmellanrum", +"Cell padding": "Cellpaddning", +"Show caption": "Visa bildtext", +"Left": "V\u00e4nster", +"Center": "Centrum", +"Right": "H\u00f6ger", +"Cell type": "Celltyp", +"Scope": "Omf\u00e5ng", +"Alignment": "Justering", +"H Align": "H-justering", +"V Align": "V-justering", +"Top": "Toppen", +"Middle": "Mitten", +"Bottom": "Botten", +"Header cell": "Huvudcell", +"Row group": "Radgrupp", +"Column group": "Kolumngrupp", +"Row type": "Radtyp", +"Header": "Huvud", +"Body": "Kropp", +"Footer": "Fot", +"Border color": "Ramf\u00e4rg", +"Insert template...": "Infoga mall...", +"Templates": "Mallar", +"Template": "Mall", +"Text color": "Textf\u00e4rg", +"Background color": "Bakgrundsf\u00e4rg", +"Custom...": "Anpassad...", +"Custom color": "Anpassad f\u00e4rg", +"No color": "Ingen f\u00e4rg", +"Remove color": "Ta bort f\u00e4rg", +"Table of Contents": "Inneh\u00e5llsf\u00f6rteckning", +"Show blocks": "Visa block", +"Show invisible characters": "Visa onsynliga tecken", +"Word count": "Ordantal", +"Words: {0}": "Ord: {0}", +"{0} words": "{0} ord", +"File": "Fil", +"Edit": "Redigera", +"Insert": "Infoga", +"View": "Visa", +"Format": "Format", +"Table": "Tabell", +"Tools": "Verktyg", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Textredigerare. Tryck ALT-F9 f\u00f6r menyn. Tryck ALT-F10 f\u00f6r verktygsrader. Tryck ALT-0 f\u00f6r hj\u00e4lp.", +"Image title": "Bildtitel", +"Border width": "Kantlinjebredd", +"Border style": "Kantlinjestil", +"Error": "Fel", +"Warn": "Varning", +"Valid": "Giltig", +"To open the popup, press Shift+Enter": "Tryck p\u00e5 Shift\u00a0+\u00a0Enter f\u00f6r att \u00f6ppna popup-f\u00f6nstret", +"Rich Text Area. Press ALT-0 for help.": "Omr\u00e5de med formaterad text. Tryck p\u00e5 ALT-0 f\u00f6r hj\u00e4lp.", +"System Font": "Systemtypsnitt", +"Failed to upload image: {0}": "Kunde inte ladda upp bild: {0}", +"Failed to load plugin: {0} from url {1}": "Kunde inte l\u00e4sa in insticksprogram: {0} fr\u00e5n webbadress {1}", +"Failed to load plugin url: {0}": "Kunde inte l\u00e4sa in webbadress f\u00f6r insticksprogram: {0}", +"Failed to initialize plugin: {0}": "Kunde inte initiera insticksprogram: {0}", +"example": "exempel", +"Search": "S\u00f6k", +"All": "Alla", +"Currency": "Valuta", +"Text": "Text", +"Quotations": "Citattecken", +"Mathematical": "Matematiskt", +"Extended Latin": "Ut\u00f6kad latin", +"Symbols": "Symboler", +"Arrows": "Pilar", +"User Defined": "Anv\u00e4ndardefinierade", +"dollar sign": "dollartecken", +"currency sign": "valutatecken", +"euro-currency sign": "eurotecken", +"colon sign": "kolon", +"cruzeiro sign": "cruzeirotecken", +"french franc sign": "franctecken", +"lira sign": "liratecken", +"mill sign": "milltecken", +"naira sign": "nairatecken", +"peseta sign": "pesetastecken", +"rupee sign": "rupeetecken", +"won sign": "wontecken", +"new sheqel sign": "schekeltecken", +"dong sign": "dongtecken", +"kip sign": "kiptecken", +"tugrik sign": "tugriktecken", +"drachma sign": "drachmertecken", +"german penny symbol": "tecken f\u00f6r tysk penny", +"peso sign": "pesotecken", +"guarani sign": "guaranitecken", +"austral sign": "australtecken", +"hryvnia sign": "hryvniatecken", +"cedi sign": "ceditecken", +"livre tournois sign": "tecken f\u00f6r livre tournois", +"spesmilo sign": "spesmilotecken", +"tenge sign": "tengetecken", +"indian rupee sign": "tecken f\u00f6r indisk rupee", +"turkish lira sign": "tecken f\u00f6r turkisk lira", +"nordic mark sign": "tecken f\u00f6r nordisk mark", +"manat sign": "manattecken", +"ruble sign": "rubeltecken", +"yen character": "yentecken", +"yuan character": "yuantecken", +"yuan character, in hong kong and taiwan": "yuantecken i Hongkong och Taiwan", +"yen\/yuan character variant one": "yen-\/yuantecken variant ett", +"Loading emoticons...": "L\u00e4ser in emoticons...", +"Could not load emoticons": "Kunde inte l\u00e4sa in emoticons", +"People": "M\u00e4nniskor", +"Animals and Nature": "Djur och natur", +"Food and Drink": "Mat och dryck", +"Activity": "Aktivitet", +"Travel and Places": "Resa och platser", +"Objects": "F\u00f6rem\u00e5l", +"Flags": "Flaggor", +"Characters": "Tecken", +"Characters (no spaces)": "Tecken (inga mellanrum)", +"Error: Form submit field collision.": "Fel: Kollision f\u00e4lt f\u00f6r s\u00e4ndning av formul\u00e4r.", +"Error: No form element found.": "Fel: Inget formul\u00e4relement hittades.", +"Update": "Uppdatera", +"Color swatch": "F\u00e4rgpalett", +"Turquoise": "Turkos", +"Green": "Gr\u00f6n", +"Blue": "Bl\u00e5", +"Purple": "Lila", +"Navy Blue": "M\u00f6rkbl\u00e5", +"Dark Turquoise": "M\u00f6rkturkos", +"Dark Green": "M\u00f6rkgr\u00f6n", +"Medium Blue": "Mellanbl\u00e5", +"Medium Purple": "Mellanlila", +"Midnight Blue": "Midnattsbl\u00e5", +"Yellow": "Gul", +"Orange": "Orange", +"Red": "R\u00f6d", +"Light Gray": "Ljusgr\u00e5", +"Gray": "Gr\u00e5", +"Dark Yellow": "M\u00f6rkgul", +"Dark Orange": "M\u00f6rkorange", +"Dark Red": "M\u00f6rkr\u00f6d", +"Medium Gray": "Mellangr\u00e5", +"Dark Gray": "M\u00f6rkgr\u00e5", +"Black": "Svart", +"White": "Vit", +"Switch to or from fullscreen mode": "V\u00e4xla till eller fr\u00e5n fullsk\u00e4rmsl\u00e4ge", +"Open help dialog": "\u00d6ppna hj\u00e4lpdialogrutan", +"history": "historik", +"styles": "stilar", +"formatting": "formatering", +"alignment": "justering", +"indentation": "indragning", +"permanent pen": "permanent penna", +"comments": "kommentarer", +"Anchor": "Ankare", +"Special character": "Specialtecken", +"Code sample": "K\u00e5dexempel", +"Color": "F\u00e4rg", +"Emoticons": "Emoticons", +"Document properties": "Dokumentegenskaper", +"Image": "Bild", +"Insert link": "Infoga l\u00e4nk", +"Target": "M\u00e5l", +"Link": "L\u00e4nk", +"Poster": "Affish", +"Media": "Media", +"Print": "Skriv ut", +"Prev": "F\u00f6reg\u00e5ende", +"Find and replace": "S\u00f6k och ers\u00e4tt", +"Whole words": "Hela ord", +"Spellcheck": "R\u00e4ttstava", +"Caption": "Rubrik", +"Insert template": "Infoga mall" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ta.js b/common/plugins/editors/tinymce/media/langs/ta.js new file mode 100755 index 0000000000000000000000000000000000000000..9149acd9e5ced1ac555f9ca5f2494e03e4a1ef4e --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ta.js @@ -0,0 +1,419 @@ +tinymce.addI18n('ta',{ +"Redo": "\u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Undo": "\u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0ba4\u0bb5\u0bbf\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Cut": "\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Copy": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Paste": "\u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Select all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"New document": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b86\u0bb5\u0ba3\u0bae\u0bcd", +"Ok": "\u0b9a\u0bb0\u0bbf", +"Cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Visual aids": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd", +"Bold": "\u0ba4\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Italic": "\u0b9a\u0bbe\u0baf\u0bcd\u0bb5\u0bc1", +"Underline": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1", +"Strikethrough": "\u0ba8\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1", +"Superscript": "\u0bae\u0bc7\u0bb2\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1", +"Subscript": "\u0b95\u0bc0\u0bb4\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1", +"Clear formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95", +"Align left": "\u0b87\u0b9f\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Align center": "\u0bae\u0bc8\u0baf \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Align right": "\u0bb5\u0bb2\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Justify": "\u0ba8\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Bullet list": "\u0baa\u0bca\u0b9f\u0bcd\u0b9f\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Numbered list": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Decrease indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95", +"Increase indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Close": "\u0bae\u0bc2\u0b9f\u0bc1\u0b95", +"Formats": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0ba8\u0b95\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0ba8\u0bc7\u0bb0\u0b9f\u0bbf \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bc8 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb2\u0bbe\u0bb5\u0bbf \u0b86\u0ba4\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b86\u0b95\u0bb5\u0bc7 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bbe\u0ba9 Ctrl+X\/C\/V \u0b87\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0ba4\u0baf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95.", +"Headers": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Header 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1", +"Header 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2", +"Header 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3", +"Header 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4", +"Header 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5", +"Header 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6", +"Headings": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Heading 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1", +"Heading 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2", +"Heading 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3", +"Heading 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4", +"Heading 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5", +"Heading 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6", +"Preformatted": "\u0bae\u0bc1\u0ba9\u0bcd\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1", +"Div": "\u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1 (Div)", +"Pre": "\u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1 (Pre)", +"Code": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1", +"Paragraph": "\u0baa\u0ba4\u0bcd\u0ba4\u0bbf", +"Blockquote": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bcb\u0bb3\u0bcd", +"Inline": "\u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1. \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bb5\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.", +"Fonts": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Font Sizes": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1 \u0b85\u0bb3\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", +"Class": "Class", +"Browse for an image": "\u0b92\u0bb0\u0bc1 \u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1\u0b95", +"OR": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1", +"Drop an image here": "\u0b92\u0bb0\u0bc1 \u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc1 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd \u0baa\u0bcb\u0b9f\u0bb5\u0bc1\u0bae\u0bcd", +"Upload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Block": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf", +"Align": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Default": "\u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1", +"Circle": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bae\u0bcd", +"Disc": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bc1", +"Square": "\u0b9a\u0ba4\u0bc1\u0bb0\u0bae\u0bcd", +"Lower Alpha": "\u0b95\u0bc0\u0bb4\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Lower Greek": "\u0b95\u0bc0\u0bb4\u0bcd \u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Lower Roman": "\u0b95\u0bc0\u0bb4\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd", +"Upper Alpha": "\u0bae\u0bc7\u0bb2\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Upper Roman": "\u0bae\u0bc7\u0bb2\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd", +"Anchor...": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd...", +"Name": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0b86\u0ba9\u0ba4\u0bc1 \u0b92\u0bb0\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd; \u0b87\u0ba4\u0ba9\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd, \u0b8e\u0ba3\u0bcd\u0b95\u0bb3\u0bcd, \u0b87\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (-), \u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (.), \u0bae\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0bb1\u0bcd\u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (:) \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (_) \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b87\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd.", +"You have unsaved changes are you sure you want to navigate away?": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bbe\u0ba4 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba9; \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bbe\u0bb3\u0bbe?", +"Restore last draft": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Special character...": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc1...", +"Source code": "\u0bae\u0bc2\u0bb2 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1", +"Insert\/Edit code sample": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Language": "\u0bae\u0bca\u0bb4\u0bbf", +"Code sample...": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf...", +"Color Picker": "\u0ba8\u0bbf\u0bb1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0bb5\u0bc1", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u0b87\u0b9f\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bb5\u0bb2\u0bae\u0bcd", +"Right to left": "\u0bb5\u0bb2\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0b87\u0b9f\u0bae\u0bcd", +"Emoticons...": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Metadata and Document Properties": "\u0bae\u0bc0\u0ba4\u0bcd\u0ba4\u0bb0\u0bb5\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b86\u0bb5\u0ba3\u0baa\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Title": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Keywords": "\u0bae\u0bc1\u0ba4\u0ba9\u0bcd\u0bae\u0bc8\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Description": "\u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd", +"Robots": "\u0baa\u0bca\u0bb1\u0bbf\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd (Robots)", +"Author": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb3\u0bb0\u0bcd", +"Encoding": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Fullscreen": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8", +"Action": "\u0b9a\u0bc6\u0baf\u0bb2\u0bcd", +"Shortcut": "\u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf", +"Help": "\u0b89\u0ba4\u0bb5\u0bbf", +"Address": "\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Focus to menubar": "\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to toolbar": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to element path": "\u0bae\u0bc2\u0bb2\u0b95\u0baa\u0bcd \u0baa\u0bbe\u0ba4\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to contextual toolbar": "\u0b9a\u0bc2\u0bb4\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Insert link (if link plugin activated)": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95 (\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Save (if save plugin activated)": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95 (\u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Find (if searchreplace plugin activated)": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 (\u0ba4\u0bc7\u0b9f\u0bbf\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bb2\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Plugins installed ({0}):": "\u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd ({0}):", +"Premium plugins:": "\u0b89\u0baf\u0bb0\u0bcd\u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd:", +"Learn more...": "\u0bae\u0bc7\u0bb2\u0bc1\u0bae\u0bcd \u0b85\u0bb1\u0bbf\u0b95...", +"You are using {0}": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb5\u0ba4\u0bc1 {0}", +"Plugins": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd", +"Handy Shortcuts": "\u0b8e\u0bb3\u0bbf\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0b95\u0bcd\u0b95\u0bc2\u0b9f\u0bbf\u0baf \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bcd", +"Horizontal line": "\u0b95\u0bbf\u0b9f\u0bc8 \u0b95\u0bcb\u0b9f\u0bc1", +"Insert\/edit image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Image description": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd", +"Source": "\u0bae\u0bc2\u0bb2\u0bae\u0bcd", +"Dimensions": "\u0baa\u0bb0\u0bbf\u0bae\u0bbe\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Constrain proportions": "\u0bb5\u0bbf\u0b95\u0bbf\u0ba4\u0bbe\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"General": "\u0baa\u0bca\u0ba4\u0bc1", +"Advanced": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1", +"Style": "\u0baa\u0bbe\u0ba3\u0bbf", +"Vertical space": "\u0ba8\u0bc6\u0b9f\u0bc1\u0ba4\u0bb3 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Horizontal space": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Border": "\u0b95\u0bb0\u0bc8", +"Insert image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Image...": "\u0baa\u0b9f\u0bae\u0bcd...", +"Image list": "\u0baa\u0b9f\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Rotate counterclockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0 \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1", +"Rotate clockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1", +"Flip vertically": "\u0b9a\u0bc6\u0b99\u0bcd\u0b95\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1", +"Flip horizontally": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f\u0bae\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1", +"Edit image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bca\u0b95\u0bc1", +"Image options": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Zoom in": "\u0baa\u0bc6\u0bb0\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Zoom out": "\u0b9a\u0bbf\u0bb1\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Crop": "\u0b9a\u0bc6\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc1", +"Resize": "\u0bae\u0bb1\u0bc1\u0b85\u0bb3\u0bb5\u0bbf\u0b9f\u0bc1", +"Orientation": "\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bae\u0bc8\u0bb5\u0bc1", +"Brightness": "\u0b92\u0bb3\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1", +"Sharpen": "\u0b95\u0bc2\u0bb0\u0bcd\u0bae\u0bc8\u0baf\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Contrast": "\u0ba8\u0bbf\u0bb1\u0bae\u0bbe\u0bb1\u0bc1\u0baa\u0bbe\u0b9f\u0bc1", +"Color levels": "\u0bb5\u0ba3\u0bcd\u0ba3 \u0ba8\u0bbf\u0bb2\u0bc8\u0b95\u0bb3\u0bcd", +"Gamma": "Gamma", +"Invert": "\u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1", +"Apply": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Back": "\u0baa\u0bbf\u0ba9\u0bcd", +"Insert date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd", +"Insert\/Edit Link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert\/edit link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Text to display": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf\u0baf \u0b89\u0bb0\u0bc8", +"Url": "\u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Open link in...": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b87\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95...", +"Current window": "\u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd", +"None": "\u0b8f\u0ba4\u0bc1\u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"New window": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd", +"Remove link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Anchors": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Link...": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1...", +"Paste or type a link": "\u0b92\u0bb0\u0bc1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd-\u0b85\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 mailto: \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bb5\u0bc6\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 (external link) \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 http:\/\/ \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?", +"Link list": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Insert video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert\/edit video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert\/edit media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Alternative source": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2\u0bae\u0bcd", +"Alternative source URL": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2 \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Media poster (Image URL)": "\u0b8a\u0b9f\u0b95 \u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf (\u0b89\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf)", +"Paste your embed code below:": "\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b9f\u0bcd\u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b95\u0bc0\u0bb4\u0bc7 \u0b92\u0b9f\u0bcd\u0b9f\u0bb5\u0bc1\u0bae\u0bcd:", +"Embed": "\u0b89\u0b9f\u0bcd\u0baa\u0bca\u0ba4\u0bbf", +"Media...": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd...", +"Nonbreaking space": "\u0baa\u0bbf\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Page break": "\u0baa\u0b95\u0bcd\u0b95 \u0baa\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Paste as text": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Preview": "\u0bae\u0bc1\u0ba9\u0bcd\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1", +"Print...": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95...", +"Save": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95", +"Find": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Replace with": "\u0b87\u0ba4\u0ba9\u0bc1\u0b9f\u0ba9\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Replace": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Replace all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Previous": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf", +"Next": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4", +"Find and replace...": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95...", +"Could not find the specified string.": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f \u0b9a\u0bb0\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"Match case": "\u0bb5\u0b9f\u0bbf\u0bb5\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0bca\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Find whole words only": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Spell check": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1", +"Ignore": "\u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95", +"Ignore all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95", +"Finish": "\u0bae\u0bc1\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Add to Dictionary": "\u0b85\u0b95\u0bb0\u0bbe\u0ba4\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Insert table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Table properties": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Delete table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8", +"Row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Cell properties": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Merge cells": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Split cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Insert row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Delete row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Row properties": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Cut row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Copy row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Paste row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Paste row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Insert column before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert column after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Delete column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Cols": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd", +"Rows": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd", +"Width": "\u0b85\u0b95\u0bb2\u0bae\u0bcd", +"Height": "\u0b89\u0baf\u0bb0\u0bae\u0bcd", +"Cell spacing": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Cell padding": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0ba8\u0bbf\u0bb0\u0baa\u0bcd\u0baa\u0bb2\u0bcd", +"Show caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Left": "\u0b87\u0b9f\u0bae\u0bcd", +"Center": "\u0bae\u0bc8\u0baf\u0bae\u0bcd", +"Right": "\u0bb5\u0bb2\u0bae\u0bcd", +"Cell type": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0bb5\u0b95\u0bc8", +"Scope": "\u0bb5\u0bb0\u0bc8\u0baf\u0bc6\u0bb2\u0bcd\u0bb2\u0bc8", +"Alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1", +"H Align": "\u0b95\u0bbf (H) \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"V Align": "\u0b9a\u0bc6 (V) \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Top": "\u0bae\u0bc7\u0bb2\u0bcd", +"Middle": "\u0ba8\u0b9f\u0bc1", +"Bottom": "\u0b95\u0bc0\u0bb4\u0bcd", +"Header cell": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8", +"Row group": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1", +"Column group": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1", +"Row type": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0b95\u0bc8", +"Header": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Body": "\u0b89\u0b9f\u0bb2\u0bcd", +"Footer": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Border color": "\u0b95\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Insert template...": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95...", +"Templates": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1", +"Text color": "\u0b89\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Background color": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0ba3\u0bbf \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Custom...": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd...", +"Custom color": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"No color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8", +"Remove color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Table of Contents": "\u0baa\u0bca\u0bb0\u0bc1\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Show blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Show invisible characters": "\u0b95\u0ba3\u0bcd\u0ba3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Word count": "\u0b9a\u0bca\u0bb2\u0bcd \u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b95\u0bcd\u0b95\u0bc8", +"Count": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b95\u0bcd\u0b95\u0bc8", +"Document": "\u0b86\u0bb5\u0ba3\u0bae\u0bcd", +"Selection": "\u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1", +"Words": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Words: {0}": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd: {0}", +"{0} words": "{0} \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"File": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1", +"Edit": "\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert": "\u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"View": "\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Format": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8", +"Tools": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd", +"Powered by {0}": "\u0bb5\u0bb2\u0bc1\u0bb5\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0ba4\u0bc1 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-F9 , \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 ALT-F10 , \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0", +"Image title": "\u0baa\u0b9f\u0ba4\u0bcd \u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Border width": "\u0b95\u0bb0\u0bc8 \u0b85\u0b95\u0bb2\u0bae\u0bcd", +"Border style": "\u0b95\u0bb0\u0bc8 \u0baa\u0bbe\u0ba3\u0bbf", +"Error": "\u0baa\u0bbf\u0bb4\u0bc8", +"Warn": "\u0b8e\u0b9a\u0bcd\u0b9a\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Valid": "\u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0ba4\u0bcd\u0ba4\u0b95\u0bcd\u0b95\u0ba4\u0bc1", +"To open the popup, press Shift+Enter": "\u0bae\u0bc7\u0bb2\u0bcd\u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1-\u0bb5\u0bc8\u0ba4\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95 Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0", +"System Font": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Failed to upload image: {0}": "\u0baa\u0b9f\u0bae\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"Failed to load plugin: {0} from url {1}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0} - {1} \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bbf\u0bb2\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1", +"Failed to load plugin url: {0}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"Failed to initialize plugin: {0}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0ba4\u0bc1\u0bb5\u0b99\u0bcd\u0b95\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"example": "\u0b89\u0ba4\u0bbe\u0bb0\u0ba3\u0bae\u0bcd", +"Search": "\u0ba4\u0bc7\u0b9f\u0bc1\u0b95", +"All": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1\u0bae\u0bcd", +"Currency": "\u0b9a\u0bc6\u0bb2\u0bbe\u0bb5\u0ba3\u0bbf (Currency)", +"Text": "\u0b89\u0bb0\u0bc8", +"Quotations": "\u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bc7\u0bbe\u0bb3\u0bcd\u0b95\u0bb3\u0bcd", +"Mathematical": "\u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bbf\u0baf\u0bb2\u0bcd", +"Extended Latin": "\u0ba8\u0bc0\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0b87\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0ba9\u0bcd", +"Symbols": "\u0b87\u0b9f\u0bc1\u0b95\u0bc1\u0bb1\u0bbf\u0b95\u0bb3\u0bcd", +"Arrows": "\u0b85\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"User Defined": "\u0baa\u0baf\u0ba9\u0bb0\u0bcd \u0bb5\u0bb0\u0bc8\u0baf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4", +"dollar sign": "dollar \u0b95\u0bc1\u0bb1\u0bbf", +"currency sign": "\u0b9a\u0bc6\u0bb2\u0bbe\u0bb5\u0ba3\u0bbf\u0b95\u0bcd \u0b95\u0bc1\u0bb1\u0bbf", +"euro-currency sign": "euro-currency \u0b95\u0bc1\u0bb1\u0bbf", +"colon sign": "colon \u0b95\u0bc1\u0bb1\u0bbf", +"cruzeiro sign": "cruzeiro \u0b95\u0bc1\u0bb1\u0bbf", +"french franc sign": "french franc \u0b95\u0bc1\u0bb1\u0bbf", +"lira sign": "lira \u0b95\u0bc1\u0bb1\u0bbf", +"mill sign": "mill \u0b95\u0bc1\u0bb1\u0bbf", +"naira sign": "naira \u0b95\u0bc1\u0bb1\u0bbf", +"peseta sign": "peseta \u0b95\u0bc1\u0bb1\u0bbf", +"rupee sign": "rupee \u0b95\u0bc1\u0bb1\u0bbf", +"won sign": "won \u0b95\u0bc1\u0bb1\u0bbf", +"new sheqel sign": "new sheqel \u0b95\u0bc1\u0bb1\u0bbf", +"dong sign": "dong \u0b95\u0bc1\u0bb1\u0bbf", +"kip sign": "kip \u0b95\u0bc1\u0bb1\u0bbf", +"tugrik sign": "tugrik \u0b95\u0bc1\u0bb1\u0bbf", +"drachma sign": "drachma \u0b95\u0bc1\u0bb1\u0bbf", +"german penny symbol": "german penny \u0b87\u0b9f\u0bc1\u0b95\u0bc1\u0bb1\u0bbf", +"peso sign": "peso \u0b95\u0bc1\u0bb1\u0bbf", +"guarani sign": "guarani \u0b95\u0bc1\u0bb1\u0bbf", +"austral sign": "austral \u0b95\u0bc1\u0bb1\u0bbf", +"hryvnia sign": "hryvnia \u0b95\u0bc1\u0bb1\u0bbf", +"cedi sign": "cedi \u0b95\u0bc1\u0bb1\u0bbf", +"livre tournois sign": "livre tournois \u0b95\u0bc1\u0bb1\u0bbf", +"spesmilo sign": "spesmilo \u0b95\u0bc1\u0bb1\u0bbf", +"tenge sign": "tenge \u0b95\u0bc1\u0bb1\u0bbf", +"indian rupee sign": "indian rupee \u0b95\u0bc1\u0bb1\u0bbf", +"turkish lira sign": "turkish lira \u0b95\u0bc1\u0bb1\u0bbf", +"nordic mark sign": "nordic mark \u0b95\u0bc1\u0bb1\u0bbf", +"manat sign": "manat \u0b95\u0bc1\u0bb1\u0bbf", +"ruble sign": "ruble \u0b95\u0bc1\u0bb1\u0bbf", +"yen character": "yen \u0b89\u0bb0\u0bc1", +"yuan character": "yuan \u0b89\u0bb0\u0bc1", +"yuan character, in hong kong and taiwan": "yuan \u0b89\u0bb0\u0bc1, \u0bb9\u0bbe\u0b99\u0bcd\u0b95\u0bbe\u0b99\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0ba4\u0bbe\u0baf\u0bcd\u0bb5\u0bbe\u0ba9\u0bcd \u0b87\u0bb2\u0bcd", +"yen\/yuan character variant one": "yen\/yuan \u0b89\u0bb0\u0bc1 \u0bae\u0bbe\u0bb1\u0bc1\u0baa\u0bbe\u0b9f\u0bc1", +"Loading emoticons...": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b8f\u0bb1\u0bcd\u0bb1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0ba9\u0bcd\u0bb1\u0ba9...", +"Could not load emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bc8 \u0b8f\u0bb1\u0bcd\u0bb1 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"People": "\u0bae\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Animals and Nature": "\u0bae\u0bbf\u0bb0\u0bc1\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b87\u0baf\u0bb1\u0bcd\u0b95\u0bc8", +"Food and Drink": "\u0b89\u0ba3\u0bb5\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0baa\u0bbe\u0ba9\u0bae\u0bcd", +"Activity": "\u0b9a\u0bc6\u0baf\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1", +"Travel and Places": "\u0baa\u0baf\u0ba3\u0bae\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b87\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Objects": "\u0baa\u0bca\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bcd", +"Flags": "\u0b95\u0bca\u0b9f\u0bbf\u0b95\u0bb3\u0bcd", +"Characters": "\u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Characters (no spaces)": "\u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd (\u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf\u0b95\u0bb3\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8)", +"{0} characters": "{0} \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Error: Form submit field collision.": "\u0baa\u0bbf\u0bb4\u0bc8: \u0baa\u0b9f\u0bbf\u0bb5\u0bae\u0bcd \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd \u0baa\u0bc1\u0bb2\u0bae\u0bcd \u0bae\u0bcb\u0ba4\u0bb2\u0bcd.", +"Error: No form element found.": "\u0baa\u0bbf\u0bb4\u0bc8: \u0baa\u0bc1\u0bb2\u0bae\u0bcd \u0bae\u0bc2\u0bb2\u0b95\u0bae\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b95\u0bbe\u0ba3\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.", +"Update": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95", +"Color swatch": "\u0ba8\u0bbf\u0bb1\u0b9a\u0bcd \u0b9a\u0bcb\u0ba4\u0ba9\u0bc8\u0b95\u0bcd\u0b95\u0bb2\u0bb5\u0bc8", +"Turquoise": "\u0ba8\u0bc0\u0bb2\u0baa\u0bcd\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Green": "\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Blue": "\u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Purple": "\u0b8a\u0ba4\u0bbe", +"Navy Blue": "\u0b95\u0b9f\u0bb1\u0bcd\u0baa\u0b9f\u0bc8 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Dark Turquoise": "\u0b85\u0b9f\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0baa\u0bcd\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Dark Green": "\u0b85\u0b9f\u0bb0\u0bcd \u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Medium Blue": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Medium Purple": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0b8a\u0ba4\u0bbe", +"Midnight Blue": "\u0ba8\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bb5\u0bc1 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Yellow": "\u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Orange": "\u0b9a\u0bbf\u0bb5\u0ba8\u0bcd\u0ba4 \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Red": "\u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Light Gray": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Gray": "\u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Dark Yellow": "\u0b85\u0b9f\u0bb0\u0bcd \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Dark Orange": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbf\u0bb5\u0ba8\u0bcd\u0ba4 \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Dark Red": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Medium Gray": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Dark Gray": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Light Green": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Light Yellow": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Light Red": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd\u00a0\u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Light Purple": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0b8a\u0ba4\u0bbe", +"Light Blue": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Dark Purple": "\u0b85\u0b9f\u0bb0\u0bcd \u0b8a\u0ba4\u0bbe", +"Dark Blue": "\u0b85\u0b9f\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Black": "\u0b95\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1", +"White": "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bc8", +"Switch to or from fullscreen mode": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0bc1\/\u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bc1\u0b95", +"Open help dialog": "\u0b89\u0ba4\u0bb5\u0bbf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95", +"history": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bc1", +"styles": "\u0baa\u0bbe\u0ba3\u0bbf\u0b95\u0bb3\u0bcd", +"formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd", +"alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1", +"indentation": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bcd", +"permanent pen": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe", +"comments": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bb3\u0bcd", +"Format Painter": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0baa\u0bc2\u0b9a\u0bbe\u0bb3\u0ba9\u0bcd", +"Insert\/edit iframe": "iframe \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Capitalization": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"lowercase": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bc6\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"UPPERCASE": "\u0baa\u0bc7\u0bb0\u0bc6\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Title Case": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bcd", +"Permanent Pen Properties": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Permanent pen properties...": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd...", +"Font": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Size": "\u0b85\u0bb3\u0bb5\u0bc1", +"More...": "\u0bae\u0bc7\u0bb2\u0bc1\u0bae\u0bcd...", +"Spellcheck Language": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1 \u0bae\u0bca\u0bb4\u0bbf", +"Select...": "\u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95...", +"Preferences": "\u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Yes": "\u0b86\u0bae\u0bcd", +"No": "\u0b87\u0bb2\u0bcd\u0bb2\u0bc8", +"Keyboard Navigation": "\u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0bb5\u0bb4\u0bbf\u0b9a\u0bcd\u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd", +"Version": "\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Anchor": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd", +"Special character": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Code sample": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf", +"Color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Document properties": "\u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Image": "\u0baa\u0b9f\u0bae\u0bcd", +"Insert link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Target": "\u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1", +"Link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Poster": "\u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf", +"Media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd", +"Print": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95", +"Prev": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf", +"Find and replace": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Whole words": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Spellcheck": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Insert template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/ta_IN.js b/common/plugins/editors/tinymce/media/langs/ta_IN.js new file mode 100755 index 0000000000000000000000000000000000000000..d738e6a6c8380e926bfb61f1a209921ac5b9ac3d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/ta_IN.js @@ -0,0 +1,419 @@ +tinymce.addI18n('ta_IN',{ +"Redo": "\u0bae\u0bc0\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Undo": "\u0b9a\u0bc6\u0baf\u0bb2\u0bcd\u0ba4\u0bb5\u0bbf\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Cut": "\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Copy": "\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Paste": "\u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Select all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"New document": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b86\u0bb5\u0ba3\u0bae\u0bcd", +"Ok": "\u0b9a\u0bb0\u0bbf", +"Cancel": "\u0bb0\u0ba4\u0bcd\u0ba4\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Visual aids": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0ba4\u0bcd \u0ba4\u0bc1\u0ba3\u0bc8\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd", +"Bold": "\u0ba4\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Italic": "\u0b9a\u0bbe\u0baf\u0bcd\u0bb5\u0bc1", +"Underline": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1", +"Strikethrough": "\u0ba8\u0b9f\u0bc1\u0b95\u0bcd\u0b95\u0bcb\u0b9f\u0bc1", +"Superscript": "\u0bae\u0bc7\u0bb2\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1", +"Subscript": "\u0b95\u0bc0\u0bb4\u0bcd\u0b92\u0b9f\u0bcd\u0b9f\u0bc1", +"Clear formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b85\u0bb4\u0bbf\u0b95\u0bcd\u0b95", +"Align left": "\u0b87\u0b9f\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Align center": "\u0bae\u0bc8\u0baf \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Align right": "\u0bb5\u0bb2\u0ba4\u0bc1 \u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Justify": "\u0ba8\u0bc7\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bbf \u0b9a\u0bc6\u0baf\u0bcd\u0b95", +"Bullet list": "\u0baa\u0bca\u0b9f\u0bcd\u0b9f\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Numbered list": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Decrease indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b95\u0bc1\u0bb1\u0bc8\u0b95\u0bcd\u0b95", +"Increase indent": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bc8 \u0b85\u0ba4\u0bbf\u0b95\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Close": "\u0bae\u0bc2\u0b9f\u0bc1\u0b95", +"Formats": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0ba8\u0b95\u0bb2\u0b95\u0ba4\u0bcd\u0ba4\u0bbf\u0bb1\u0bcd\u0b95\u0bc1 \u0ba8\u0bc7\u0bb0\u0b9f\u0bbf \u0b85\u0ba3\u0bc1\u0b95\u0bb2\u0bc8 \u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb2\u0bbe\u0bb5\u0bbf \u0b86\u0ba4\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8. \u0b86\u0b95\u0bb5\u0bc7 \u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bbe\u0ba9 Ctrl+X\/C\/V \u0b87\u0bb5\u0bb1\u0bcd\u0bb1\u0bc8 \u0ba4\u0baf\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0ba4\u0bc1 \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95.", +"Headers": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Header 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1", +"Header 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2", +"Header 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3", +"Header 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4", +"Header 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5", +"Header 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6", +"Headings": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Heading 1": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 1", +"Heading 2": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 2", +"Heading 3": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 3", +"Heading 4": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 4", +"Heading 5": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 5", +"Heading 6": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 6", +"Preformatted": "\u0bae\u0bc1\u0ba9\u0bcd\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1", +"Div": "\u0baa\u0bbf\u0bb0\u0bbf\u0bb5\u0bc1 (Div)", +"Pre": "\u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1 (Pre)", +"Code": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1", +"Paragraph": "\u0baa\u0ba4\u0bcd\u0ba4\u0bbf", +"Blockquote": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bcb\u0bb3\u0bcd", +"Inline": "\u0b89\u0bb3\u0bcd\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bcd", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0ba4\u0bb2\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba4\u0bc1. \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0ba8\u0bcd\u0ba4 \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc8 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0bb5\u0bb0\u0bc8 \u0b89\u0bb3\u0bcd\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b87\u0baf\u0bb2\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0bae\u0bcd.", +"Fonts": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Font Sizes": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1 \u0b85\u0bb3\u0bb5\u0bc1\u0b95\u0bb3\u0bcd", +"Class": "Class", +"Browse for an image": "\u0b92\u0bb0\u0bc1 \u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc1 \u0b89\u0bb2\u0bbe\u0bb5\u0bc1\u0b95", +"OR": "\u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1", +"Drop an image here": "\u0b92\u0bb0\u0bc1 \u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0b87\u0b99\u0bcd\u0b95\u0bc1 \u0b87\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd \u0baa\u0bcb\u0b9f\u0bb5\u0bc1\u0bae\u0bcd", +"Upload": "\u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Block": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf", +"Align": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8", +"Default": "\u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1", +"Circle": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bae\u0bcd", +"Disc": "\u0bb5\u0b9f\u0bcd\u0b9f\u0bc1", +"Square": "\u0b9a\u0ba4\u0bc1\u0bb0\u0bae\u0bcd", +"Lower Alpha": "\u0b95\u0bc0\u0bb4\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Lower Greek": "\u0b95\u0bc0\u0bb4\u0bcd \u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Lower Roman": "\u0b95\u0bc0\u0bb4\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd", +"Upper Alpha": "\u0bae\u0bc7\u0bb2\u0bcd \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Upper Roman": "\u0bae\u0bc7\u0bb2\u0bcd \u0bb0\u0bcb\u0bae\u0bbe\u0ba9\u0bbf\u0baf\u0bae\u0bcd", +"Anchor...": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd...", +"Name": "\u0baa\u0bc6\u0baf\u0bb0\u0bcd", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0b86\u0ba9\u0ba4\u0bc1 \u0b92\u0bb0\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bca\u0b9f\u0b99\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd; \u0b87\u0ba4\u0ba9\u0bc8\u0ba4\u0bcd \u0ba4\u0bca\u0b9f\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd, \u0b8e\u0ba3\u0bcd\u0b95\u0bb3\u0bcd, \u0b87\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (-), \u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (.), \u0bae\u0bc1\u0b95\u0bcd\u0b95\u0bbe\u0bb1\u0bcd\u0baa\u0bc1\u0bb3\u0bcd\u0bb3\u0bbf\u0b95\u0bb3\u0bcd (:) \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc7\u0bbe\u0b9f\u0bc1\u0b95\u0bb3\u0bcd (_) \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bc7 \u0b87\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bcd.", +"You have unsaved changes are you sure you want to navigate away?": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bbe\u0ba4 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0ba9; \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb1\u0bc1\u0ba4\u0bbf\u0baf\u0bbe\u0b95 \u0bb5\u0bc6\u0bb3\u0bbf\u0baf\u0bc7\u0bb1 \u0bb5\u0bbf\u0bb0\u0bc1\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bbf\u0bb1\u0bc0\u0bb0\u0bcd\u0b95\u0bbe\u0bb3\u0bbe?", +"Restore last draft": "\u0b95\u0b9f\u0ba8\u0bcd\u0ba4 \u0bb5\u0bb0\u0bc8\u0bb5\u0bc8 \u0bae\u0bc0\u0b9f\u0bcd\u0b9f\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Special character...": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b89\u0bb0\u0bc1...", +"Source code": "\u0bae\u0bc2\u0bb2 \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1", +"Insert\/Edit code sample": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Language": "\u0bae\u0bca\u0bb4\u0bbf", +"Code sample...": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf...", +"Color Picker": "\u0ba8\u0bbf\u0bb1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0bb5\u0bc1", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u0b87\u0b9f\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bb5\u0bb2\u0bae\u0bcd", +"Right to left": "\u0bb5\u0bb2\u0bae\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0b87\u0b9f\u0bae\u0bcd", +"Emoticons...": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Metadata and Document Properties": "\u0bae\u0bc0\u0ba4\u0bcd\u0ba4\u0bb0\u0bb5\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b86\u0bb5\u0ba3\u0baa\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Title": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Keywords": "\u0bae\u0bc1\u0ba4\u0ba9\u0bcd\u0bae\u0bc8\u0b9a\u0bcd\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Description": "\u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd", +"Robots": "\u0baa\u0bca\u0bb1\u0bbf\u0baf\u0ba9\u0bcd\u0b95\u0bb3\u0bcd (Robots)", +"Author": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0bb3\u0bb0\u0bcd", +"Encoding": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Fullscreen": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8", +"Action": "\u0b9a\u0bc6\u0baf\u0bb2\u0bcd", +"Shortcut": "\u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf", +"Help": "\u0b89\u0ba4\u0bb5\u0bbf", +"Address": "\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Focus to menubar": "\u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to toolbar": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to element path": "\u0bae\u0bc2\u0bb2\u0b95\u0baa\u0bcd \u0baa\u0bbe\u0ba4\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Focus to contextual toolbar": "\u0b9a\u0bc2\u0bb4\u0bcd\u0ba8\u0bbf\u0bb2\u0bc8 \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b95\u0bb5\u0ba9\u0bae\u0bcd \u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Insert link (if link plugin activated)": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95 (\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Save (if save plugin activated)": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95 (\u0b9a\u0bc7\u0bae\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Find (if searchreplace plugin activated)": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 (\u0ba4\u0bc7\u0b9f\u0bbf\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bb2\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b9a\u0bc6\u0baf\u0bb2\u0bbe\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbe\u0bb2\u0bcd)", +"Plugins installed ({0}):": "\u0ba8\u0bbf\u0bb1\u0bc1\u0bb5\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc1\u0bb3\u0bcd\u0bb3 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd ({0}):", +"Premium plugins:": "\u0b89\u0baf\u0bb0\u0bcd\u0bae\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd:", +"Learn more...": "\u0bae\u0bc7\u0bb2\u0bc1\u0bae\u0bcd \u0b85\u0bb1\u0bbf\u0b95...", +"You are using {0}": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb5\u0ba4\u0bc1 {0}", +"Plugins": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf\u0b95\u0bb3\u0bcd", +"Handy Shortcuts": "\u0b8e\u0bb3\u0bbf\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0bc8\u0baf\u0bbe\u0bb3\u0b95\u0bcd\u0b95\u0bc2\u0b9f\u0bbf\u0baf \u0b95\u0bc1\u0bb1\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bb4\u0bbf\u0b95\u0bb3\u0bcd", +"Horizontal line": "\u0b95\u0bbf\u0b9f\u0bc8 \u0b95\u0bcb\u0b9f\u0bc1", +"Insert\/edit image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Image description": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb5\u0bb0\u0bae\u0bcd", +"Source": "\u0bae\u0bc2\u0bb2\u0bae\u0bcd", +"Dimensions": "\u0baa\u0bb0\u0bbf\u0bae\u0bbe\u0ba3\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Constrain proportions": "\u0bb5\u0bbf\u0b95\u0bbf\u0ba4\u0bbe\u0b9a\u0bcd\u0b9a\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0bb2\u0bcd \u0b95\u0b9f\u0bcd\u0b9f\u0bc1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"General": "\u0baa\u0bca\u0ba4\u0bc1", +"Advanced": "\u0bae\u0bc7\u0bae\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0ba4\u0bc1", +"Style": "\u0baa\u0bbe\u0ba3\u0bbf", +"Vertical space": "\u0ba8\u0bc6\u0b9f\u0bc1\u0ba4\u0bb3 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Horizontal space": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Border": "\u0b95\u0bb0\u0bc8", +"Insert image": "\u0baa\u0b9f\u0bae\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Image...": "\u0baa\u0b9f\u0bae\u0bcd...", +"Image list": "\u0baa\u0b9f\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Rotate counterclockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0 \u0b8e\u0ba4\u0bbf\u0bb0\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1", +"Rotate clockwise": "\u0b95\u0b9f\u0bbf\u0b95\u0bbe\u0bb0\u0ba4\u0bcd\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc1\u0bb4\u0bb1\u0bcd\u0bb1\u0bc1", +"Flip vertically": "\u0b9a\u0bc6\u0b99\u0bcd\u0b95\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1", +"Flip horizontally": "\u0b95\u0bbf\u0b9f\u0bc8\u0bae\u0b9f\u0bcd\u0b9f\u0bae\u0bbe\u0b95 \u0baa\u0bc1\u0bb0\u0b9f\u0bcd\u0b9f\u0bc1", +"Edit image": "\u0baa\u0b9f\u0ba4\u0bcd\u0ba4\u0bc8 \u0ba4\u0bca\u0b95\u0bc1", +"Image options": "\u0baa\u0b9f \u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Zoom in": "\u0baa\u0bc6\u0bb0\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Zoom out": "\u0b9a\u0bbf\u0bb1\u0bbf\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Crop": "\u0b9a\u0bc6\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc1", +"Resize": "\u0bae\u0bb1\u0bc1\u0b85\u0bb3\u0bb5\u0bbf\u0b9f\u0bc1", +"Orientation": "\u0ba4\u0bbf\u0b9a\u0bc8\u0baf\u0bae\u0bc8\u0bb5\u0bc1", +"Brightness": "\u0b92\u0bb3\u0bbf\u0bb0\u0bcd\u0bb5\u0bc1", +"Sharpen": "\u0b95\u0bc2\u0bb0\u0bcd\u0bae\u0bc8\u0baf\u0bbe\u0b95\u0bcd\u0b95\u0bc1", +"Contrast": "\u0ba8\u0bbf\u0bb1\u0bae\u0bbe\u0bb1\u0bc1\u0baa\u0bbe\u0b9f\u0bc1", +"Color levels": "\u0bb5\u0ba3\u0bcd\u0ba3 \u0ba8\u0bbf\u0bb2\u0bc8\u0b95\u0bb3\u0bcd", +"Gamma": "Gamma", +"Invert": "\u0ba8\u0bc7\u0bb0\u0bcd\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1", +"Apply": "\u0baa\u0baf\u0ba9\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Back": "\u0baa\u0bbf\u0ba9\u0bcd", +"Insert date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Date\/time": "\u0ba4\u0bc7\u0ba4\u0bbf\/\u0ba8\u0bc7\u0bb0\u0bae\u0bcd", +"Insert\/Edit Link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert\/edit link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Text to display": "\u0b95\u0bbe\u0b9f\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bbf\u0baf \u0b89\u0bb0\u0bc8", +"Url": "\u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Open link in...": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b87\u0ba4\u0bbf\u0bb2\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95...", +"Current window": "\u0ba4\u0bb1\u0bcd\u0baa\u0bcb\u0ba4\u0bc8\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd", +"None": "\u0b8f\u0ba4\u0bc1\u0bae\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"New window": "\u0baa\u0bc1\u0ba4\u0bbf\u0baf \u0b9a\u0bbe\u0bb3\u0bb0\u0bae\u0bcd", +"Remove link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc8 \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Anchors": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Link...": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1...", +"Paste or type a link": "\u0b92\u0bb0\u0bc1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95 \u0b85\u0bb2\u0bcd\u0bb2\u0ba4\u0bc1 \u0ba4\u0b9f\u0bcd\u0b9f\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bae\u0bbf\u0ba9\u0bcd-\u0b85\u0b9e\u0bcd\u0b9a\u0bb2\u0bcd \u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 mailto: \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0bb3\u0bcd\u0bb3\u0bbf\u0b9f\u0bcd\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf (URL) \u0b92\u0bb0\u0bc1 \u0bb5\u0bc6\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0bc1\u0bb1 \u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 (external link) \u0baa\u0bcb\u0bb2\u0bcd \u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1\u0b95\u0bbf\u0bb1\u0ba4\u0bc1. \u0ba4\u0bc7\u0bb5\u0bc8\u0baf\u0bbe\u0ba9 http:\/\/ \u0bae\u0bc1\u0ba9\u0bcd-\u0b92\u0b9f\u0bcd\u0b9f\u0bc8\u0ba4\u0bcd (prefix) \u0ba4\u0bbe\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95 \u0bb5\u0bc7\u0ba3\u0bcd\u0b9f\u0bc1\u0bae\u0bbe?", +"Link list": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1\u0baa\u0bcd \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0baf\u0bb2\u0bcd", +"Insert video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert\/edit video": "\u0b95\u0bbe\u0ba3\u0bca\u0bb3\u0bbf \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert\/edit media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Alternative source": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2\u0bae\u0bcd", +"Alternative source URL": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1 \u0bae\u0bc2\u0bb2 \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf", +"Media poster (Image URL)": "\u0b8a\u0b9f\u0b95 \u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf (\u0b89\u0b9f \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf)", +"Paste your embed code below:": "\u0ba4\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b89\u0b9f\u0bcd\u0baa\u0bc6\u0bbe\u0ba4\u0bbf \u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bcd\u0b9f\u0bc8 \u0b95\u0bc0\u0bb4\u0bc7 \u0b92\u0b9f\u0bcd\u0b9f\u0bb5\u0bc1\u0bae\u0bcd:", +"Embed": "\u0b89\u0b9f\u0bcd\u0baa\u0bca\u0ba4\u0bbf", +"Media...": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd...", +"Nonbreaking space": "\u0baa\u0bbf\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Page break": "\u0baa\u0b95\u0bcd\u0b95 \u0baa\u0bbf\u0bb0\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Paste as text": "\u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b95 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Preview": "\u0bae\u0bc1\u0ba9\u0bcd\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1", +"Print...": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95...", +"Save": "\u0b9a\u0bc7\u0bae\u0bbf\u0b95\u0bcd\u0b95", +"Find": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Replace with": "\u0b87\u0ba4\u0ba9\u0bc1\u0b9f\u0ba9\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Replace": "\u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Replace all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Previous": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf", +"Next": "\u0b85\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4", +"Find and replace...": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95...", +"Could not find the specified string.": "\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bbf\u0b9f\u0bcd\u0b9f \u0b9a\u0bb0\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"Match case": "\u0bb5\u0b9f\u0bbf\u0bb5\u0ba4\u0bcd\u0ba4\u0bc8 \u0baa\u0bca\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95", +"Find whole words only": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0b9f\u0bcd\u0b9f\u0bc1\u0bae\u0bcd \u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Spell check": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1", +"Ignore": "\u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95", +"Ignore all": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0baa\u0bc1\u0bb1\u0b95\u0bcd\u0b95\u0ba3\u0bbf\u0b95\u0bcd\u0b95", +"Finish": "\u0bae\u0bc1\u0b9f\u0bbf\u0b95\u0bcd\u0b95", +"Add to Dictionary": "\u0b85\u0b95\u0bb0\u0bbe\u0ba4\u0bbf\u0baf\u0bbf\u0bb2\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Insert table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Table properties": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Delete table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8", +"Row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8", +"Cell properties": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Merge cells": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8\u0b95\u0bb3\u0bcd \u0b9a\u0bc7\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Split cell": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0baa\u0bbf\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Insert row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Delete row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Row properties": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Cut row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Copy row": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1\u0b95\u0bcd\u0b95", +"Paste row before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Paste row after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b92\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Insert column before": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0bae\u0bc1\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Insert column after": "\u0b87\u0ba4\u0bb1\u0bcd\u0b95\u0bc1 \u0baa\u0bbf\u0ba9\u0bcd \u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Delete column": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0ba8\u0bc0\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Cols": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd", +"Rows": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8\u0b95\u0bb3\u0bcd", +"Width": "\u0b85\u0b95\u0bb2\u0bae\u0bcd", +"Height": "\u0b89\u0baf\u0bb0\u0bae\u0bcd", +"Cell spacing": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf", +"Cell padding": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0ba8\u0bbf\u0bb0\u0baa\u0bcd\u0baa\u0bb2\u0bcd", +"Show caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Left": "\u0b87\u0b9f\u0bae\u0bcd", +"Center": "\u0bae\u0bc8\u0baf\u0bae\u0bcd", +"Right": "\u0bb5\u0bb2\u0bae\u0bcd", +"Cell type": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8 \u0bb5\u0b95\u0bc8", +"Scope": "\u0bb5\u0bb0\u0bc8\u0baf\u0bc6\u0bb2\u0bcd\u0bb2\u0bc8", +"Alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1", +"H Align": "\u0b95\u0bbf (H) \u0b87\u0b9a\u0bc8\u0bb5\u0bc1", +"V Align": "\u0b9a\u0bc6 (V) \u0b87\u0b9a\u0bc8\u0bb5\u0bc1", +"Top": "\u0bae\u0bc7\u0bb2\u0bcd", +"Middle": "\u0ba8\u0b9f\u0bc1", +"Bottom": "\u0bae\u0bc7\u0bb2\u0bcd", +"Header cell": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bb1\u0bc8", +"Row group": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1", +"Column group": "\u0ba8\u0bc6\u0b9f\u0bc1\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0b95\u0bc1\u0bb4\u0bc1", +"Row type": "\u0bb5\u0bb0\u0bbf\u0b9a\u0bc8 \u0bb5\u0b95\u0bc8", +"Header": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Body": "\u0b89\u0b9f\u0bb2\u0bcd", +"Footer": "\u0b85\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1\u0bb1\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Border color": "\u0b95\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Insert template...": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1 \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95...", +"Templates": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1", +"Text color": "\u0b89\u0bb0\u0bc8\u0baf\u0bbf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Background color": "\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0ba3\u0bbf \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Custom...": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd...", +"Custom color": "\u0ba4\u0ba9\u0bbf\u0baa\u0bcd\u0baa\u0baf\u0ba9\u0bcd \u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"No color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8", +"Remove color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd \u0b85\u0b95\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Table of Contents": "\u0baa\u0bca\u0bb0\u0bc1\u0bb3\u0b9f\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"Show blocks": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Show invisible characters": "\u0b95\u0ba3\u0bcd\u0ba3\u0bc1\u0b95\u0bcd\u0b95\u0bc1\u0ba4\u0bcd \u0ba4\u0bc6\u0bb0\u0bbf\u0baf\u0bbe\u0ba4 \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bc8 \u0b95\u0bbe\u0b9f\u0bcd\u0b9f\u0bc1\u0b95", +"Word count": "\u0b9a\u0bca\u0bb2\u0bcd \u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b95\u0bcd\u0b95\u0bc8", +"Count": "\u0b8e\u0ba3\u0bcd\u0ba3\u0bbf\u0b95\u0bcd\u0b95\u0bc8", +"Document": "\u0b86\u0bb5\u0ba3\u0bae\u0bcd", +"Selection": "\u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1", +"Words": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Words: {0}": "\u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd: {0}", +"{0} words": "{0} \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"File": "\u0b95\u0bcb\u0baa\u0bcd\u0baa\u0bc1", +"Edit": "\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Insert": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"View": "\u0ba8\u0bcb\u0b95\u0bcd\u0b95\u0bc1\u0b95", +"Format": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Table": "\u0b85\u0b9f\u0bcd\u0b9f\u0bb5\u0ba3\u0bc8", +"Tools": "\u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0b95\u0bb3\u0bcd", +"Powered by {0}": "\u0bb5\u0bb2\u0bc1\u0bb5\u0bb3\u0bbf\u0baa\u0bcd\u0baa\u0ba4\u0bc1 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0baa\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-F9 , \u0b95\u0bb0\u0bc1\u0bb5\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f\u0bc8\u0b95\u0bcd\u0b95\u0bc1 ALT-F10 , \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0", +"Image title": "\u0baa\u0b9f\u0ba4\u0bcd \u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Border width": "\u0b95\u0bb0\u0bc8 \u0b85\u0b95\u0bb2\u0bae\u0bcd", +"Border style": "\u0b95\u0bb0\u0bc8 \u0baa\u0bbe\u0ba3\u0bbf", +"Error": "\u0baa\u0bbf\u0bb4\u0bc8", +"Warn": "\u0b8e\u0b9a\u0bcd\u0b9a\u0bb0\u0bbf\u0b95\u0bcd\u0b95", +"Valid": "\u0b9a\u0bc6\u0bb2\u0bcd\u0bb2\u0ba4\u0bcd\u0ba4\u0b95\u0bcd\u0b95\u0ba4\u0bc1", +"To open the popup, press Shift+Enter": "\u0bae\u0bc7\u0bb2\u0bcd\u0ba4\u0bcb\u0ba9\u0bcd\u0bb1\u0bc1-\u0bb5\u0bc8\u0ba4\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95 Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u0b89\u0baf\u0bb0\u0bcd \u0b89\u0bb0\u0bc8 \u0baa\u0b95\u0bc1\u0ba4\u0bbf. \u0b89\u0ba4\u0bb5\u0bbf\u0b95\u0bcd\u0b95\u0bc1 ALT-0", +"System Font": "\u0ba4\u0bca\u0b95\u0bc1\u0ba4\u0bbf \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Failed to upload image: {0}": "\u0baa\u0b9f\u0bae\u0bcd \u0baa\u0ba4\u0bbf\u0bb5\u0bc7\u0bb1\u0bcd\u0bb1\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"Failed to load plugin: {0} from url {1}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0} - {1} \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf\u0baf\u0bbf\u0bb2\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1", +"Failed to load plugin url: {0}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0b87\u0ba3\u0bc8\u0baf\u0bae\u0bc1\u0b95\u0bb5\u0bb0\u0bbf \u0b8f\u0bb1\u0bcd\u0bb1\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"Failed to initialize plugin: {0}": "\u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bbf \u0ba4\u0bc1\u0bb5\u0b99\u0bcd\u0b95\u0bc1\u0ba4\u0bb2\u0bcd \u0ba4\u0bcb\u0bb2\u0bcd\u0bb5\u0bbf\u0baf\u0bc1\u0bb1\u0bcd\u0bb1\u0ba4\u0bc1: {0}", +"example": "\u0b89\u0ba4\u0bbe\u0bb0\u0ba3\u0bae\u0bcd", +"Search": "\u0ba4\u0bc7\u0b9f\u0bc1\u0b95", +"All": "\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1\u0bae\u0bcd", +"Currency": "\u0b9a\u0bc6\u0bb2\u0bbe\u0bb5\u0ba3\u0bbf (Currency)", +"Text": "\u0b89\u0bb0\u0bc8", +"Quotations": "\u0bae\u0bc7\u0bb1\u0bcd\u0b95\u0bc7\u0bbe\u0bb3\u0bcd\u0b95\u0bb3\u0bcd", +"Mathematical": "\u0b95\u0ba3\u0b95\u0bcd\u0b95\u0bbf\u0baf\u0bb2\u0bcd", +"Extended Latin": "\u0ba8\u0bc0\u0b9f\u0bcd\u0b9f\u0bbf\u0b95\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0b9f\u0bcd\u0b9f \u0b87\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0ba9\u0bcd", +"Symbols": "\u0b87\u0b9f\u0bc1\u0b95\u0bc1\u0bb1\u0bbf\u0b95\u0bb3\u0bcd", +"Arrows": "\u0b85\u0bae\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"User Defined": "\u0baa\u0baf\u0ba9\u0bb0\u0bcd \u0bb5\u0bb0\u0bc8\u0baf\u0bb1\u0bc1\u0ba4\u0bcd\u0ba4", +"dollar sign": "dollar \u0b95\u0bc1\u0bb1\u0bbf", +"currency sign": "\u0b9a\u0bc6\u0bb2\u0bbe\u0bb5\u0ba3\u0bbf\u0b95\u0bcd \u0b95\u0bc1\u0bb1\u0bbf", +"euro-currency sign": "euro-currency \u0b95\u0bc1\u0bb1\u0bbf", +"colon sign": "colon \u0b95\u0bc1\u0bb1\u0bbf", +"cruzeiro sign": "cruzeiro \u0b95\u0bc1\u0bb1\u0bbf", +"french franc sign": "french franc \u0b95\u0bc1\u0bb1\u0bbf", +"lira sign": "lira \u0b95\u0bc1\u0bb1\u0bbf", +"mill sign": "mill \u0b95\u0bc1\u0bb1\u0bbf", +"naira sign": "naira \u0b95\u0bc1\u0bb1\u0bbf", +"peseta sign": "peseta \u0b95\u0bc1\u0bb1\u0bbf", +"rupee sign": "rupee \u0b95\u0bc1\u0bb1\u0bbf", +"won sign": "won \u0b95\u0bc1\u0bb1\u0bbf", +"new sheqel sign": "new sheqel \u0b95\u0bc1\u0bb1\u0bbf", +"dong sign": "dong \u0b95\u0bc1\u0bb1\u0bbf", +"kip sign": "kip \u0b95\u0bc1\u0bb1\u0bbf", +"tugrik sign": "tugrik \u0b95\u0bc1\u0bb1\u0bbf", +"drachma sign": "drachma \u0b95\u0bc1\u0bb1\u0bbf", +"german penny symbol": "german penny \u0b87\u0b9f\u0bc1\u0b95\u0bc1\u0bb1\u0bbf", +"peso sign": "peso \u0b95\u0bc1\u0bb1\u0bbf", +"guarani sign": "guarani \u0b95\u0bc1\u0bb1\u0bbf", +"austral sign": "austral \u0b95\u0bc1\u0bb1\u0bbf", +"hryvnia sign": "hryvnia \u0b95\u0bc1\u0bb1\u0bbf", +"cedi sign": "cedi \u0b95\u0bc1\u0bb1\u0bbf", +"livre tournois sign": "livre tournois \u0b95\u0bc1\u0bb1\u0bbf", +"spesmilo sign": "spesmilo \u0b95\u0bc1\u0bb1\u0bbf", +"tenge sign": "tenge \u0b95\u0bc1\u0bb1\u0bbf", +"indian rupee sign": "indian rupee \u0b95\u0bc1\u0bb1\u0bbf", +"turkish lira sign": "turkish lira \u0b95\u0bc1\u0bb1\u0bbf", +"nordic mark sign": "nordic mark \u0b95\u0bc1\u0bb1\u0bbf", +"manat sign": "manat \u0b95\u0bc1\u0bb1\u0bbf", +"ruble sign": "ruble \u0b95\u0bc1\u0bb1\u0bbf", +"yen character": "yen \u0b89\u0bb0\u0bc1", +"yuan character": "yuan \u0b89\u0bb0\u0bc1", +"yuan character, in hong kong and taiwan": "yuan \u0b89\u0bb0\u0bc1, \u0bb9\u0bbe\u0b99\u0bcd\u0b95\u0bbe\u0b99\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0ba4\u0bbe\u0baf\u0bcd\u0bb5\u0bbe\u0ba9\u0bcd \u0b87\u0bb2\u0bcd", +"yen\/yuan character variant one": "yen\/yuan \u0b89\u0bb0\u0bc1 \u0bae\u0bbe\u0bb1\u0bc1\u0baa\u0bbe\u0b9f\u0bc1", +"Loading emoticons...": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0b8f\u0bb1\u0bcd\u0bb1\u0baa\u0bcd\u0baa\u0b9f\u0bc1\u0b95\u0bbf\u0ba9\u0bcd\u0bb1\u0ba9...", +"Could not load emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bc8 \u0b8f\u0bb1\u0bcd\u0bb1 \u0bae\u0bc1\u0b9f\u0bbf\u0baf\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8", +"People": "\u0bae\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Animals and Nature": "\u0bae\u0bbf\u0bb0\u0bc1\u0b95\u0b99\u0bcd\u0b95\u0bb3\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b87\u0baf\u0bb1\u0bcd\u0b95\u0bc8", +"Food and Drink": "\u0b89\u0ba3\u0bb5\u0bc1 \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0baa\u0bbe\u0ba9\u0bae\u0bcd", +"Activity": "\u0b9a\u0bc6\u0baf\u0bb1\u0bcd\u0baa\u0bbe\u0b9f\u0bc1", +"Travel and Places": "\u0baa\u0baf\u0ba3\u0bae\u0bcd \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0b87\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Objects": "\u0baa\u0bca\u0bb0\u0bc1\u0b9f\u0bcd\u0b95\u0bb3\u0bcd", +"Flags": "\u0b95\u0bca\u0b9f\u0bbf\u0b95\u0bb3\u0bcd", +"Characters": "\u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Characters (no spaces)": "\u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd (\u0b87\u0b9f\u0bc8\u0bb5\u0bc6\u0bb3\u0bbf\u0b95\u0bb3\u0bcd \u0b87\u0bb2\u0bcd\u0bb2\u0bc8)", +"{0} characters": "{0} \u0b89\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bb3\u0bcd", +"Error: Form submit field collision.": "\u0baa\u0bbf\u0bb4\u0bc8: \u0baa\u0b9f\u0bbf\u0bb5\u0bae\u0bcd \u0b9a\u0bae\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bbf\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd \u0baa\u0bc1\u0bb2\u0bae\u0bcd \u0bae\u0bcb\u0ba4\u0bb2\u0bcd.", +"Error: No form element found.": "\u0baa\u0bbf\u0bb4\u0bc8: \u0baa\u0bc1\u0bb2\u0bae\u0bcd \u0bae\u0bc2\u0bb2\u0b95\u0bae\u0bcd \u0b8e\u0ba4\u0bc1\u0bb5\u0bc1\u0bae\u0bcd \u0b95\u0bbe\u0ba3\u0bb5\u0bbf\u0bb2\u0bcd\u0bb2\u0bc8.", +"Update": "\u0baa\u0bc1\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0b95\u0bcd\u0b95", +"Color swatch": "\u0ba8\u0bbf\u0bb1\u0b9a\u0bcd \u0b9a\u0bcb\u0ba4\u0ba9\u0bc8\u0b95\u0bcd\u0b95\u0bb2\u0bb5\u0bc8", +"Turquoise": "\u0ba8\u0bc0\u0bb2\u0baa\u0bcd\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Green": "\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Blue": "\u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Purple": "\u0b8a\u0ba4\u0bbe", +"Navy Blue": "\u0b95\u0b9f\u0bb1\u0bcd\u0baa\u0b9f\u0bc8 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Dark Turquoise": "\u0b85\u0b9f\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0baa\u0bcd\u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Dark Green": "\u0b85\u0b9f\u0bb0\u0bcd \u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Medium Blue": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Medium Purple": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0b8a\u0ba4\u0bbe", +"Midnight Blue": "\u0ba8\u0bb3\u0bcd\u0bb3\u0bbf\u0bb0\u0bb5\u0bc1 \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Yellow": "\u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Orange": "\u0b9a\u0bbf\u0bb5\u0ba8\u0bcd\u0ba4 \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Red": "\u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Light Gray": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Gray": "\u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Dark Yellow": "\u0b85\u0b9f\u0bb0\u0bcd \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Dark Orange": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbf\u0bb5\u0ba8\u0bcd\u0ba4 \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Dark Red": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Medium Gray": "\u0ba8\u0b9f\u0bc1\u0ba4\u0bcd\u0ba4\u0bb0 \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Dark Gray": "\u0b85\u0b9f\u0bb0\u0bcd \u0b9a\u0bbe\u0bae\u0bcd\u0baa\u0bb2\u0bcd", +"Light Green": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0baa\u0b9a\u0bcd\u0b9a\u0bc8", +"Light Yellow": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0bae\u0b9e\u0bcd\u0b9a\u0bb3\u0bcd", +"Light Red": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd\u00a0\u0b9a\u0bbf\u0bb5\u0baa\u0bcd\u0baa\u0bc1", +"Light Purple": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0b8a\u0ba4\u0bbe", +"Light Blue": "\u0bb5\u0bc6\u0bb3\u0bbf\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Dark Purple": "\u0b85\u0b9f\u0bb0\u0bcd \u0b8a\u0ba4\u0bbe", +"Dark Blue": "\u0b85\u0b9f\u0bb0\u0bcd \u0ba8\u0bc0\u0bb2\u0bae\u0bcd", +"Black": "\u0b95\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bc1", +"White": "\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bc8", +"Switch to or from fullscreen mode": "\u0bae\u0bc1\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbf\u0bb0\u0bc8 \u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0b95\u0bcd\u0b95\u0bc1\/\u0bae\u0bc1\u0bb1\u0bc8\u0bae\u0bc8\u0baf\u0bbf\u0bb2\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bc1\u0b95", +"Open help dialog": "\u0b89\u0ba4\u0bb5\u0bbf \u0b89\u0bb0\u0bc8\u0baf\u0bbe\u0b9f\u0bb2\u0bcd \u0ba4\u0bbf\u0bb1\u0b95\u0bcd\u0b95", +"history": "\u0bb5\u0bb0\u0bb2\u0bbe\u0bb1\u0bc1", +"styles": "\u0baa\u0bbe\u0ba3\u0bbf\u0b95\u0bb3\u0bcd", +"formatting": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd", +"alignment": "\u0b9a\u0bc0\u0bb0\u0bae\u0bc8\u0bb5\u0bc1", +"indentation": "\u0b89\u0bb3\u0bcd\u0ba4\u0bb3\u0bcd\u0bb3\u0bc1\u0ba4\u0bb2\u0bcd", +"permanent pen": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe", +"comments": "\u0b95\u0bb0\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bb3\u0bcd", +"Format Painter": "\u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0baa\u0bc2\u0b9a\u0bbe\u0bb3\u0ba9\u0bcd", +"Insert\/edit iframe": "iframe \u0b9a\u0bc6\u0bb0\u0bc1\u0b95\u0bc1\u0b95\/\u0ba4\u0bca\u0b95\u0bc1\u0b95\u0bcd\u0b95", +"Capitalization": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bbe\u0b95\u0bcd\u0b95\u0bae\u0bcd", +"lowercase": "\u0b9a\u0bbf\u0bb1\u0bcd\u0bb1\u0bc6\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"UPPERCASE": "\u0baa\u0bc7\u0bb0\u0bc6\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1", +"Title Case": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0bb5\u0b9f\u0bbf\u0bb5\u0bae\u0bcd", +"Permanent Pen Properties": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Permanent pen properties...": "\u0ba8\u0bbf\u0bb0\u0ba8\u0bcd\u0ba4\u0bb0\u0baa\u0bcd \u0baa\u0bc7\u0ba9\u0bbe \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd...", +"Font": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Size": "\u0b85\u0bb3\u0bb5\u0bc1", +"More...": "\u0bae\u0bc7\u0bb2\u0bc1\u0bae\u0bcd...", +"Spellcheck Language": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1 \u0bae\u0bca\u0bb4\u0bbf", +"Select...": "\u0ba4\u0bc7\u0bb0\u0bcd\u0bb5\u0bc1 \u0b9a\u0bc6\u0baf\u0bcd\u0b95...", +"Preferences": "\u0bb5\u0bbf\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Yes": "\u0b86\u0bae\u0bcd", +"No": "\u0b87\u0bb2\u0bcd\u0bb2\u0bc8", +"Keyboard Navigation": "\u0bb5\u0bbf\u0b9a\u0bc8\u0baa\u0bcd\u0baa\u0bb2\u0b95\u0bc8 \u0bb5\u0bb4\u0bbf\u0b9a\u0bcd\u0b9a\u0bc6\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bb2\u0bcd", +"Version": "\u0baa\u0ba4\u0bbf\u0baa\u0bcd\u0baa\u0bc1", +"Anchor": "\u0ba8\u0b99\u0bcd\u0b95\u0bc2\u0bb0\u0bae\u0bcd", +"Special character": "\u0b9a\u0bbf\u0bb1\u0baa\u0bcd\u0baa\u0bc1 \u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0bb0\u0bc1", +"Code sample": "\u0b95\u0bc1\u0bb1\u0bbf\u0baf\u0bc0\u0b9f\u0bc1 \u0bae\u0bbe\u0ba4\u0bbf\u0bb0\u0bbf", +"Color": "\u0ba8\u0bbf\u0bb1\u0bae\u0bcd", +"Emoticons": "\u0b89\u0ba3\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bbf\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u0bae\u0b99\u0bcd\u0b95\u0bb3\u0bcd", +"Document properties": "\u0b86\u0bb5\u0ba3\u0ba4\u0bcd\u0ba4\u0bbf\u0ba9\u0bcd \u0baa\u0ba3\u0bcd\u0baa\u0bc1\u0b95\u0bb3\u0bcd", +"Image": "\u0baa\u0b9f\u0bae\u0bcd", +"Insert link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95", +"Target": "\u0b87\u0bb2\u0b95\u0bcd\u0b95\u0bc1", +"Link": "\u0b87\u0ba3\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Poster": "\u0b9a\u0bc1\u0bb5\u0bb0\u0bca\u0b9f\u0bcd\u0b9f\u0bbf", +"Media": "\u0b8a\u0b9f\u0b95\u0bae\u0bcd", +"Print": "\u0b85\u0b9a\u0bcd\u0b9a\u0bbf\u0b9f\u0bc1\u0b95", +"Prev": "\u0bae\u0bc1\u0ba8\u0bcd\u0ba4\u0bc8\u0baf", +"Find and replace": "\u0b95\u0ba3\u0bcd\u0b9f\u0bc1\u0baa\u0bbf\u0b9f\u0bbf\u0ba4\u0bcd\u0ba4\u0bc1 \u0bae\u0bbe\u0bb1\u0bcd\u0bb1\u0bc1\u0b95", +"Whole words": "\u0bae\u0bc1\u0bb4\u0bc1 \u0b9a\u0bca\u0bb1\u0bcd\u0b95\u0bb3\u0bcd", +"Spellcheck": "\u0b8e\u0bb4\u0bc1\u0ba4\u0bcd\u0ba4\u0bc1\u0baa\u0bcd\u0baa\u0bbf\u0bb4\u0bc8\u0baf\u0bc8 \u0b9a\u0bb0\u0bbf\u0baa\u0bbe\u0bb0\u0bcd\u0b95\u0bcd\u0b95", +"Caption": "\u0ba4\u0bb2\u0bc8\u0baa\u0bcd\u0baa\u0bc1", +"Insert template": "\u0bb5\u0bbe\u0bb0\u0bcd\u0baa\u0bcd\u0baa\u0bc1\u0bb0\u0bc1 \u0b9a\u0bca\u0bb0\u0bc1\u0b95\u0bc1\u0b95" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/th_TH.js b/common/plugins/editors/tinymce/media/langs/th_TH.js new file mode 100755 index 0000000000000000000000000000000000000000..df10c87c13700ef14330051bbc5465623639a620 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/th_TH.js @@ -0,0 +1,389 @@ +tinymce.addI18n('th_TH',{ +"Redo": "\u0e17\u0e33\u0e43\u0e2b\u0e21\u0e48\u0e2d\u0e35\u0e01", +"Undo": "\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e01\u0e25\u0e31\u0e1a\u0e04\u0e37\u0e19", +"Cut": "\u0e15\u0e31\u0e14", +"Copy": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01", +"Paste": "\u0e27\u0e32\u0e07", +"Select all": "\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", +"New document": "\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e43\u0e2b\u0e21\u0e48", +"Ok": "\u0e15\u0e01\u0e25\u0e07", +"Cancel": "\u0e22\u0e01\u0e40\u0e25\u0e34\u0e01", +"Visual aids": "\u0e17\u0e31\u0e28\u0e19\u0e39\u0e1b\u0e01\u0e23\u0e13\u0e4c", +"Bold": "\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e32", +"Italic": "\u0e15\u0e31\u0e27\u0e40\u0e2d\u0e35\u0e22\u0e07", +"Underline": "\u0e02\u0e35\u0e14\u0e40\u0e2a\u0e49\u0e19\u0e43\u0e15\u0e49", +"Strikethrough": "\u0e02\u0e35\u0e14\u0e04\u0e23\u0e48\u0e2d\u0e21", +"Superscript": "\u0e15\u0e31\u0e27\u0e22\u0e01", +"Subscript": "\u0e15\u0e31\u0e27\u0e2b\u0e49\u0e2d\u0e22", +"Clear formatting": "\u0e25\u0e49\u0e32\u0e07\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"Align left": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e0b\u0e49\u0e32\u0e22", +"Align center": "\u0e08\u0e31\u0e14\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07", +"Align right": "\u0e08\u0e31\u0e14\u0e0a\u0e34\u0e14\u0e02\u0e27\u0e32", +"Justify": "\u0e40\u0e15\u0e47\u0e21\u0e41\u0e19\u0e27", +"Bullet list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2b\u0e31\u0e27\u0e02\u0e49\u0e2d\u0e22\u0e48\u0e2d\u0e22", +"Numbered list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e33\u0e14\u0e31\u0e1a\u0e40\u0e25\u0e02", +"Decrease indent": "\u0e25\u0e14\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07", +"Increase indent": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e01\u0e32\u0e23\u0e40\u0e22\u0e37\u0e49\u0e2d\u0e07", +"Close": "\u0e1b\u0e34\u0e14", +"Formats": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0e40\u0e1a\u0e23\u0e32\u0e27\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e44\u0e21\u0e48\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e42\u0e14\u0e22\u0e15\u0e23\u0e07\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e04\u0e25\u0e34\u0e1b\u0e1a\u0e2d\u0e23\u0e4c\u0e14 \u0e01\u0e23\u0e38\u0e13\u0e32\u0e43\u0e0a\u0e49\u0e41\u0e1b\u0e49\u0e19\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e25\u0e31\u0e14 Ctrl+X\/C\/V \u0e41\u0e17\u0e19", +"Headers": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", +"Header 1": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 1", +"Header 2": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 2", +"Header 3": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 3", +"Header 4": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 4", +"Header 5": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 5", +"Header 6": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27 6", +"Headings": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", +"Heading 1": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 1", +"Heading 2": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 2", +"Heading 3": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 3", +"Heading 4": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 4", +"Heading 5": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 5", +"Heading 6": "\u0e2b\u0e31\u0e27\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e17\u0e35\u0e48 6", +"Preformatted": "\u0e1f\u0e2d\u0e23\u0e4c\u0e41\u0e21\u0e15\u0e44\u0e27\u0e49\u0e01\u0e48\u0e2d\u0e19", +"Div": "Div", +"Pre": "Pre", +"Code": "\u0e23\u0e2b\u0e31\u0e2a", +"Paragraph": "\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32", +"Blockquote": "Blockquote", +"Inline": "\u0e41\u0e1a\u0e1a\u0e2d\u0e34\u0e19\u0e44\u0e25\u0e19\u0e4c", +"Blocks": "\u0e1a\u0e25\u0e4a\u0e2d\u0e04", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0e01\u0e32\u0e23\u0e27\u0e32\u0e07\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e42\u0e2b\u0e21\u0e14\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e18\u0e23\u0e23\u0e21\u0e14\u0e32 \u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e08\u0e30\u0e16\u0e39\u0e01\u0e27\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e18\u0e23\u0e23\u0e21\u0e14\u0e32\u0e08\u0e19\u0e01\u0e27\u0e48\u0e32\u0e04\u0e38\u0e13\u0e08\u0e30\u0e1b\u0e34\u0e14\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e19\u0e35\u0e49", +"Fonts": "\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", +"Font Sizes": "\u0e02\u0e19\u0e32\u0e14\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23", +"Class": "\u0e0a\u0e31\u0e49\u0e19", +"Browse for an image": "\u0e40\u0e23\u0e35\u0e22\u0e01\u0e14\u0e39\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"OR": "\u0e2b\u0e23\u0e37\u0e2d", +"Drop an image here": "\u0e27\u0e32\u0e07\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48", +"Upload": "\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14", +"Block": "\u0e1a\u0e25\u0e47\u0e2d\u0e01", +"Align": "Align", +"Default": "\u0e04\u0e48\u0e32\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19", +"Circle": "\u0e27\u0e07\u0e01\u0e25\u0e21", +"Disc": "\u0e14\u0e34\u0e2a\u0e01\u0e4c", +"Square": "\u0e08\u0e31\u0e15\u0e38\u0e23\u0e31\u0e2a", +"Lower Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32", +"Lower Greek": "\u0e01\u0e23\u0e35\u0e01\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32", +"Lower Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32", +"Upper Alpha": "\u0e2d\u0e31\u0e25\u0e1f\u0e32\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32", +"Upper Roman": "\u0e42\u0e23\u0e21\u0e31\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07\u0e01\u0e27\u0e48\u0e32", +"Anchor...": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14...", +"Name": "\u0e0a\u0e37\u0e48\u0e2d", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id \u0e04\u0e27\u0e23\u0e08\u0e30\u0e02\u0e36\u0e49\u0e19\u0e15\u0e49\u0e19\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 \u0e15\u0e32\u0e21\u0e14\u0e49\u0e27\u0e22\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 \u0e15\u0e31\u0e27\u0e40\u0e25\u0e02 \u0e02\u0e35\u0e14\u0e01\u0e25\u0e32\u0e07 \u0e08\u0e38\u0e14 \u0e2d\u0e31\u0e12\u0e20\u0e32\u0e04 \u0e2b\u0e23\u0e37\u0e2d \u0e02\u0e35\u0e14\u0e25\u0e48\u0e32\u0e07", +"You have unsaved changes are you sure you want to navigate away?": "\u0e04\u0e38\u0e13\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2d\u0e2d\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48?", +"Restore last draft": "\u0e04\u0e37\u0e19\u0e04\u0e48\u0e32\u0e41\u0e1a\u0e1a\u0e23\u0e48\u0e32\u0e07\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14", +"Special characters...": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e1e\u0e34\u0e40\u0e28\u0e29...", +"Source code": "\u0e42\u0e04\u0e49\u0e14\u0e15\u0e49\u0e19\u0e09\u0e1a\u0e31\u0e1a", +"Insert\/Edit code sample": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14", +"Language": "\u0e20\u0e32\u0e29\u0e32", +"Code sample...": "\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14...", +"Color Picker": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e2a\u0e35", +"R": "\u0e41\u0e14\u0e07", +"G": "\u0e40\u0e02\u0e35\u0e22\u0e27", +"B": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19", +"Left to right": "\u0e0b\u0e49\u0e32\u0e22\u0e44\u0e1b\u0e02\u0e27\u0e32", +"Right to left": "\u0e02\u0e27\u0e32\u0e44\u0e1b\u0e0b\u0e49\u0e32\u0e22", +"Emoticons...": "\u0e2d\u0e35\u0e42\u0e21\u0e15\u0e34\u0e04\u0e2d\u0e19...", +"Metadata and Document Properties": "\u0e40\u0e21\u0e15\u0e32\u0e14\u0e32\u0e15\u0e49\u0e32\u0e41\u0e25\u0e30\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23", +"Title": "\u0e0a\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07", +"Keywords": "\u0e04\u0e33\u0e2a\u0e33\u0e04\u0e31\u0e0d", +"Description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22", +"Robots": "\u0e2b\u0e38\u0e48\u0e19\u0e22\u0e19\u0e15\u0e4c", +"Author": "\u0e1c\u0e39\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19", +"Encoding": "\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a", +"Fullscreen": "\u0e40\u0e15\u0e47\u0e21\u0e08\u0e2d", +"Action": "\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e17\u0e33", +"Shortcut": "\u0e17\u0e32\u0e07\u0e25\u0e31\u0e14", +"Help": "\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d", +"Address": "\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48", +"Focus to menubar": "\u0e42\u0e1f\u0e01\u0e31\u0e2a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e21\u0e19\u0e39\u0e1a\u0e32\u0e23\u0e4c", +"Focus to toolbar": "\u0e42\u0e1f\u0e01\u0e31\u0e2a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e16\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d", +"Focus to element path": "\u0e42\u0e1f\u0e01\u0e31\u0e2a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e2a\u0e49\u0e19\u0e17\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e2d\u0e07\u0e04\u0e4c\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a", +"Focus to contextual toolbar": "\u0e42\u0e1f\u0e01\u0e31\u0e2a\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e16\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e15\u0e32\u0e21\u0e1a\u0e23\u0e34\u0e1a\u0e17", +"Insert link (if link plugin activated)": "\u0e41\u0e17\u0e23\u0e01\u0e25\u0e34\u0e07\u0e01\u0e4c (\u0e2b\u0e32\u0e01\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c)", +"Save (if save plugin activated)": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01 (\u0e2b\u0e32\u0e01\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01)", +"Find (if searchreplace plugin activated)": "\u0e04\u0e49\u0e19\u0e2b\u0e32 (\u0e2b\u0e32\u0e01\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19 searchreplace)", +"Plugins installed ({0}):": "\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19\u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e41\u0e25\u0e49\u0e27 ({0}):", +"Premium plugins:": "\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19\u0e1e\u0e23\u0e35\u0e40\u0e21\u0e35\u0e22\u0e21:", +"Learn more...": "\u0e40\u0e23\u0e35\u0e22\u0e19\u0e23\u0e39\u0e49\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21...", +"You are using {0}": "\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e43\u0e0a\u0e49 {0}", +"Plugins": "\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19", +"Handy Shortcuts": "\u0e17\u0e32\u0e07\u0e25\u0e31\u0e14\u0e14\u0e49\u0e27\u0e22\u0e21\u0e37\u0e2d", +"Horizontal line": "\u0e40\u0e2a\u0e49\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19", +"Insert\/edit image": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e39\u0e1b", +"Image description": "\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e23\u0e39\u0e1b", +"Source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32", +"Dimensions": "\u0e02\u0e19\u0e32\u0e14", +"Constrain proportions": "\u0e08\u0e33\u0e01\u0e31\u0e14\u0e2a\u0e31\u0e14\u0e2a\u0e48\u0e27\u0e19", +"General": "\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b", +"Advanced": "\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07", +"Style": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"Vertical space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07", +"Horizontal space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19", +"Border": "\u0e40\u0e2a\u0e49\u0e19\u0e02\u0e2d\u0e1a", +"Insert image": "\u0e41\u0e17\u0e23\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"Image...": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e...", +"Image list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"Rotate counterclockwise": "\u0e2b\u0e21\u0e38\u0e19\u0e17\u0e27\u0e19\u0e40\u0e02\u0e47\u0e21\u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32", +"Rotate clockwise": "\u0e2b\u0e21\u0e38\u0e19\u0e15\u0e32\u0e21\u0e40\u0e02\u0e47\u0e21\u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32", +"Flip vertically": "\u0e1e\u0e25\u0e34\u0e01\u0e15\u0e32\u0e21\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07", +"Flip horizontally": "\u0e1e\u0e25\u0e34\u0e01\u0e15\u0e32\u0e21\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19", +"Edit image": "\u0e41\u0e01\u0e49\u0e44\u0e02\u0e23\u0e39\u0e1b", +"Image options": "\u0e15\u0e31\u0e27\u0e40\u0e25\u0e37\u0e2d\u0e01\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"Zoom in": "\u0e02\u0e22\u0e32\u0e22\u0e40\u0e02\u0e49\u0e32", +"Zoom out": "\u0e22\u0e48\u0e2d\u0e2d\u0e2d\u0e01", +"Crop": "\u0e04\u0e23\u0e2d\u0e1b\u0e15\u0e31\u0e14", +"Resize": "\u0e1b\u0e23\u0e31\u0e1a\u0e02\u0e19\u0e32\u0e14", +"Orientation": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e27\u0e32\u0e07", +"Brightness": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07", +"Sharpen": "\u0e04\u0e27\u0e32\u0e21\u0e04\u0e21", +"Contrast": "\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e23\u0e35\u0e22\u0e1a\u0e15\u0e48\u0e32\u0e07", +"Color levels": "\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e2a\u0e35", +"Gamma": "\u0e41\u0e01\u0e21\u0e21\u0e32", +"Invert": "\u0e22\u0e49\u0e2d\u0e19\u0e01\u0e25\u0e31\u0e1a", +"Apply": "\u0e19\u0e33\u0e44\u0e1b\u0e43\u0e0a\u0e49", +"Back": "\u0e01\u0e25\u0e31\u0e1a", +"Insert date\/time": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\/\u0e40\u0e27\u0e25\u0e32", +"Date\/time": "\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48\/\u0e40\u0e27\u0e25\u0e32", +"Insert\/Edit Link": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e25\u0e34\u0e07\u0e01\u0e4c", +"Insert\/edit link": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e25\u0e34\u0e07\u0e01\u0e4c", +"Text to display": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07", +"Url": "URL", +"Open link in...": "\u0e40\u0e1b\u0e34\u0e14\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e43\u0e19...", +"Current window": "\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19", +"None": "\u0e44\u0e21\u0e48\u0e21\u0e35", +"New window": "\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07\u0e43\u0e2b\u0e21\u0e48", +"Remove link": "\u0e40\u0e2d\u0e32\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e2d\u0e2d\u0e01", +"Anchors": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14", +"Link...": "\u0e25\u0e34\u0e07\u0e01\u0e4c...", +"Paste or type a link": "\u0e27\u0e32\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e1b\u0e49\u0e2d\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "URL \u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e23\u0e30\u0e1a\u0e38\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e35\u0e40\u0e21\u0e25\u0e41\u0e2d\u0e14\u0e40\u0e14\u0e23\u0e2a \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2a\u0e48 mailto: \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "URL \u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e23\u0e30\u0e1a\u0e38\u0e14\u0e39\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e34\u0e07\u0e01\u0e4c\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01 \u0e04\u0e38\u0e13\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e2a\u0e48 http:\/\/ \u0e19\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48", +"Link list": "\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23\u0e25\u0e34\u0e07\u0e01\u0e4c", +"Insert video": "\u0e41\u0e17\u0e23\u0e01\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d", +"Insert\/edit video": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d", +"Insert\/edit media": "\u0e41\u0e17\u0e23\u0e01\/\u0e41\u0e01\u0e49\u0e44\u0e02\u0e2a\u0e37\u0e48\u0e2d", +"Alternative source": "\u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e2a\u0e33\u0e23\u0e2d\u0e07", +"Alternative source URL": "URL \u0e41\u0e2b\u0e25\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e32\u0e2a\u0e33\u0e23\u0e2d\u0e07", +"Media poster (Image URL)": "\u0e42\u0e1b\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e21\u0e35\u0e40\u0e14\u0e35\u0e22 (URL \u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e)", +"Paste your embed code below:": "\u0e27\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14\u0e1d\u0e31\u0e07\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e04\u0e38\u0e13\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07:", +"Embed": "\u0e1d\u0e31\u0e07", +"Media...": "\u0e21\u0e35\u0e40\u0e14\u0e35\u0e22...", +"Nonbreaking space": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e44\u0e21\u0e48\u0e41\u0e22\u0e01", +"Page break": "\u0e15\u0e31\u0e27\u0e41\u0e1a\u0e48\u0e07\u0e2b\u0e19\u0e49\u0e32", +"Paste as text": "\u0e27\u0e32\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", +"Preview": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07", +"Print...": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c...", +"Save": "\u0e1a\u0e31\u0e19\u0e17\u0e36\u0e01", +"Find": "\u0e04\u0e49\u0e19\u0e2b\u0e32", +"Replace with": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e14\u0e49\u0e27\u0e22", +"Replace": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48", +"Replace all": "\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", +"Previous": "\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49", +"Next": "\u0e16\u0e31\u0e14\u0e44\u0e1b", +"Find and replace...": "\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e41\u0e25\u0e30\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48...", +"Could not find the specified string.": "\u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2a\u0e15\u0e23\u0e34\u0e07\u0e17\u0e35\u0e48\u0e23\u0e30\u0e1a\u0e38", +"Match case": "\u0e15\u0e23\u0e07\u0e15\u0e32\u0e21\u0e15\u0e31\u0e27\u0e1e\u0e34\u0e21\u0e1e\u0e4c\u0e43\u0e2b\u0e0d\u0e48-\u0e40\u0e25\u0e47\u0e01", +"Find whole words only": "\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e17\u0e31\u0e49\u0e07\u0e04\u0e33\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19", +"Spell check": "\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e04\u0e33\u0e1c\u0e34\u0e14", +"Ignore": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19", +"Ignore all": "\u0e25\u0e30\u0e40\u0e27\u0e49\u0e19\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", +"Finish": "\u0e40\u0e2a\u0e23\u0e47\u0e08\u0e2a\u0e34\u0e49\u0e19", +"Add to Dictionary": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e43\u0e19\u0e1e\u0e08\u0e19\u0e32\u0e19\u0e38\u0e01\u0e23\u0e21", +"Insert table": "\u0e41\u0e17\u0e23\u0e01\u0e15\u0e32\u0e23\u0e32\u0e07", +"Table properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e15\u0e32\u0e23\u0e32\u0e07", +"Delete table": "\u0e25\u0e1a\u0e15\u0e32\u0e23\u0e32\u0e07", +"Cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Row": "\u0e41\u0e16\u0e27", +"Column": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", +"Cell properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Merge cells": "\u0e1c\u0e2a\u0e32\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Split cell": "\u0e41\u0e22\u0e01\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Insert row before": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19", +"Insert row after": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07", +"Delete row": "\u0e25\u0e1a\u0e41\u0e16\u0e27", +"Row properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27", +"Cut row": "\u0e15\u0e31\u0e14\u0e41\u0e16\u0e27", +"Copy row": "\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e41\u0e16\u0e27", +"Paste row before": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19", +"Paste row after": "\u0e27\u0e32\u0e07\u0e41\u0e16\u0e27\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07", +"Insert column before": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e19\u0e49\u0e32", +"Insert column after": "\u0e41\u0e17\u0e23\u0e01\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c\u0e02\u0e49\u0e32\u0e07\u0e2b\u0e25\u0e31\u0e07", +"Delete column": "\u0e25\u0e1a\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", +"Cols": "\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", +"Rows": "\u0e41\u0e16\u0e27", +"Width": "\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07", +"Height": "\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07", +"Cell spacing": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Cell padding": "\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07\u0e20\u0e32\u0e22\u0e43\u0e19\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Show caption": "\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e33\u0e1a\u0e23\u0e23\u0e22\u0e32\u0e22", +"Left": "\u0e0b\u0e49\u0e32\u0e22", +"Center": "\u0e01\u0e36\u0e48\u0e07\u0e01\u0e25\u0e32\u0e07", +"Right": "\u0e02\u0e27\u0e32", +"Cell type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e0b\u0e25\u0e25\u0e4c", +"Scope": "\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15", +"Alignment": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e41\u0e19\u0e27", +"H Align": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e43\u0e19\u0e41\u0e19\u0e27\u0e19\u0e2d\u0e19", +"V Align": "\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e07\u0e43\u0e19\u0e41\u0e19\u0e27\u0e15\u0e31\u0e49\u0e07", +"Top": "\u0e1a\u0e19", +"Middle": "\u0e01\u0e25\u0e32\u0e07", +"Bottom": "\u0e25\u0e48\u0e32\u0e07", +"Header cell": "\u0e40\u0e0b\u0e25\u0e25\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", +"Row group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e41\u0e16\u0e27", +"Column group": "\u0e01\u0e25\u0e38\u0e48\u0e21\u0e04\u0e2d\u0e25\u0e31\u0e21\u0e19\u0e4c", +"Row type": "\u0e0a\u0e19\u0e34\u0e14\u0e02\u0e2d\u0e07\u0e41\u0e16\u0e27", +"Header": "\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e31\u0e27", +"Body": "\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", +"Footer": "\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e49\u0e32\u0e22", +"Border color": "\u0e2a\u0e35\u0e02\u0e2d\u0e1a", +"Insert template...": "\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a...", +"Templates": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", +"Template": "\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a", +"Text color": "\u0e2a\u0e35\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", +"Background color": "\u0e2a\u0e35\u0e1e\u0e37\u0e49\u0e19\u0e2b\u0e25\u0e31\u0e07", +"Custom...": "\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07", +"Custom color": "\u0e2a\u0e35\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07", +"No color": "\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2a\u0e35", +"Remove color": "\u0e25\u0e1a\u0e2a\u0e35", +"Table of Contents": "\u0e2a\u0e32\u0e23\u0e1a\u0e31\u0e0d", +"Show blocks": "\u0e41\u0e2a\u0e14\u0e07\u0e1a\u0e25\u0e47\u0e2d\u0e01", +"Show invisible characters": "\u0e41\u0e2a\u0e14\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e17\u0e35\u0e48\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19", +"Word count": "\u0e19\u0e31\u0e1a\u0e08\u0e33\u0e19\u0e27\u0e19\u0e04\u0e33", +"Words: {0}": "\u0e04\u0e33: {0}", +"{0} words": "{0} \u0e04\u0e33", +"File": "\u0e44\u0e1f\u0e25\u0e4c", +"Edit": "\u0e41\u0e01\u0e49\u0e44\u0e02", +"Insert": "\u0e41\u0e17\u0e23\u0e01", +"View": "\u0e21\u0e38\u0e21\u0e21\u0e2d\u0e07", +"Format": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"Table": "\u0e15\u0e32\u0e23\u0e32\u0e07", +"Tools": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d", +"Powered by {0}": "\u0e02\u0e31\u0e1a\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e42\u0e14\u0e22 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Rich Text \u0e01\u0e14 ALT-F9 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e21\u0e19\u0e39 \u0e01\u0e14 ALT-F10 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e41\u0e16\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d \u0e01\u0e14 ALT-0 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d", +"Image title": "\u0e0a\u0e37\u0e48\u0e2d\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"Border width": "\u0e04\u0e27\u0e32\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07\u0e40\u0e2a\u0e49\u0e19\u0e02\u0e2d\u0e1a", +"Border style": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e40\u0e2a\u0e49\u0e19\u0e02\u0e2d\u0e1a", +"Error": "\u0e04\u0e27\u0e32\u0e21\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14", +"Warn": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e15\u0e37\u0e2d\u0e19", +"Valid": "\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07", +"To open the popup, press Shift+Enter": "\u0e01\u0e14 Shift+Enter \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e1b\u0e4a\u0e2d\u0e1a\u0e2d\u0e31\u0e1e", +"Rich Text Area. Press ALT-0 for help.": "\u0e1e\u0e37\u0e49\u0e19\u0e17\u0e35\u0e48 Rich Text \u0e01\u0e14 ALT-0 \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d", +"System Font": "\u0e41\u0e1a\u0e1a\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a", +"Failed to upload image: {0}": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2d\u0e31\u0e1b\u0e42\u0e2b\u0e25\u0e14\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e: {0}", +"Failed to load plugin: {0} from url {1}": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19: {0} \u0e08\u0e32\u0e01 url {1}", +"Failed to load plugin url: {0}": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14 url \u0e02\u0e2d\u0e07\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19: {0}", +"Failed to initialize plugin: {0}": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19\u0e1b\u0e25\u0e31\u0e4a\u0e01\u0e2d\u0e34\u0e19: {0}", +"example": "\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07", +"Search": "\u0e04\u0e49\u0e19\u0e2b\u0e32", +"All": "\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14", +"Currency": "\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19", +"Text": "\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21", +"Quotations": "\u0e43\u0e1a\u0e40\u0e2a\u0e19\u0e2d\u0e23\u0e32\u0e04\u0e32", +"Mathematical": "\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e04\u0e13\u0e34\u0e15\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c", +"Extended Latin": "\u0e20\u0e32\u0e29\u0e32\u0e25\u0e32\u0e15\u0e34\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e22\u0e32\u0e22", +"Symbols": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c", +"Arrows": "\u0e25\u0e39\u0e01\u0e28\u0e23", +"User Defined": "\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e40\u0e2d\u0e07", +"dollar sign": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e14\u0e2d\u0e25\u0e25\u0e48\u0e32\u0e23\u0e4c", +"currency sign": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19", +"euro-currency sign": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e22\u0e39\u0e42\u0e23", +"colon sign": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e08\u0e38\u0e14\u0e04\u0e39\u0e48", +"cruzeiro sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e35\u0e23", +"french franc sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a", +"lira sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e25\u0e35\u0e23\u0e32", +"mill sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e21\u0e34\u0e25\u0e25\u0e4c", +"naira sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e44\u0e19\u0e23\u0e32", +"peseta sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32", +"rupee sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e39\u0e1b\u0e35", +"won sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e27\u0e2d\u0e19", +"new sheqel sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e19\u0e34\u0e27\u0e40\u0e0a\u0e40\u0e01\u0e25", +"dong sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e14\u0e2d\u0e07", +"kip sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e01\u0e35\u0e1a", +"tugrik sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e39\u0e01\u0e23\u0e34\u0e01", +"drachma sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e14\u0e23\u0e31\u0e04\u0e21\u0e32", +"german penny symbol": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e1e\u0e19\u0e19\u0e35\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19", +"peso sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e1b\u0e42\u0e0b", +"guarani sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e01\u0e27\u0e32\u0e23\u0e32\u0e19\u0e35", +"austral sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e2d\u0e2a\u0e15\u0e23\u0e31\u0e25", +"hryvnia sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2e\u0e23\u0e34\u0e1f\u0e40\u0e19\u0e35\u0e22", +"cedi sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e0b\u0e14\u0e35", +"livre tournois sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e15\u0e39\u0e23\u0e4c", +"spesmilo sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e2a\u0e40\u0e1b\u0e2a\u0e21\u0e34\u0e42\u0e25", +"tenge sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e40\u0e17\u0e07\u0e40\u0e08", +"indian rupee sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e39\u0e1b\u0e35\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22", +"turkish lira sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e25\u0e35\u0e23\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35", +"nordic mark sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e19\u0e2d\u0e23\u0e4c\u0e14\u0e34\u0e01", +"manat sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e21\u0e32\u0e19\u0e31\u0e15", +"ruble sign": "\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25", +"yen character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e40\u0e22\u0e19", +"yuan character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e22\u0e27\u0e19", +"yuan character, in hong kong and taiwan": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e2b\u0e22\u0e27\u0e19 \u0e43\u0e19\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07\u0e41\u0e25\u0e30\u0e44\u0e15\u0e49\u0e2b\u0e27\u0e31\u0e19", +"yen\/yuan character variant one": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e40\u0e07\u0e34\u0e19\u0e40\u0e22\u0e19\/\u0e2b\u0e22\u0e27\u0e19 \u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e17\u0e35\u0e48 1", +"Loading emoticons...": "\u0e01\u0e33\u0e25\u0e31\u0e07\u0e42\u0e2b\u0e25\u0e14\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e41\u0e2a\u0e14\u0e07\u0e2d\u0e32\u0e23\u0e21\u0e13\u0e4c...", +"Could not load emoticons": "\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22\u0e41\u0e2a\u0e14\u0e07\u0e2d\u0e32\u0e23\u0e21\u0e13\u0e4c\u0e44\u0e14\u0e49", +"People": "\u0e1c\u0e39\u0e49\u0e04\u0e19", +"Animals and Nature": "\u0e2a\u0e31\u0e15\u0e27\u0e4c\u0e41\u0e25\u0e30\u0e18\u0e23\u0e23\u0e21\u0e0a\u0e32\u0e15\u0e34", +"Food and Drink": "\u0e2d\u0e32\u0e2b\u0e32\u0e23\u0e41\u0e25\u0e30\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e14\u0e37\u0e48\u0e21", +"Activity": "\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21", +"Travel and Places": "\u0e01\u0e32\u0e23\u0e17\u0e48\u0e2d\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e27\u0e41\u0e25\u0e30\u0e2a\u0e16\u0e32\u0e19\u0e17\u0e35\u0e48", +"Objects": "\u0e27\u0e31\u0e15\u0e16\u0e38", +"Flags": "\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e2b\u0e21\u0e32\u0e22", +"Characters": "\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23", +"Characters (no spaces)": "\u0e15\u0e31\u0e27\u0e2d\u0e31\u0e01\u0e29\u0e23 (\u0e44\u0e21\u0e48\u0e21\u0e35\u0e0a\u0e48\u0e2d\u0e07\u0e27\u0e48\u0e32\u0e07)", +"Error: Form submit field collision.": "\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14: \u0e0a\u0e48\u0e2d\u0e07\u0e2a\u0e48\u0e07\u0e41\u0e1a\u0e1a\u0e1f\u0e2d\u0e23\u0e4c\u0e21\u0e02\u0e31\u0e14\u0e41\u0e22\u0e49\u0e07\u0e01\u0e31\u0e19", +"Error: No form element found.": "\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14: \u0e44\u0e21\u0e48\u0e1e\u0e1a\u0e2d\u0e07\u0e04\u0e4c\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e02\u0e2d\u0e07\u0e1f\u0e2d\u0e23\u0e4c\u0e21", +"Update": "\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e43\u0e2b\u0e49\u0e17\u0e31\u0e19\u0e2a\u0e21\u0e31\u0e22", +"Color swatch": "\u0e41\u0e16\u0e1a\u0e2a\u0e35", +"Turquoise": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19\u0e2d\u0e21\u0e40\u0e02\u0e35\u0e22\u0e27", +"Green": "\u0e40\u0e02\u0e35\u0e22\u0e27", +"Blue": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19", +"Purple": "\u0e21\u0e48\u0e27\u0e07", +"Navy Blue": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19\u0e40\u0e02\u0e49\u0e21", +"Dark Turquoise": "\u0e2a\u0e35\u0e1f\u0e49\u0e32\u0e04\u0e23\u0e32\u0e21\u0e40\u0e02\u0e49\u0e21", +"Dark Green": "\u0e40\u0e02\u0e35\u0e22\u0e27\u0e40\u0e02\u0e49\u0e21", +"Medium Blue": "\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19\u0e1b\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07", +"Medium Purple": "\u0e2a\u0e35\u0e21\u0e48\u0e27\u0e07\u0e01\u0e25\u0e32\u0e07\u0e46", +"Midnight Blue": "\u0e2a\u0e35\u0e1f\u0e49\u0e32\u0e40\u0e02\u0e49\u0e21", +"Yellow": "\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07", +"Orange": "\u0e2a\u0e49\u0e21", +"Red": "\u0e41\u0e14\u0e07", +"Light Gray": "\u0e2a\u0e35\u0e40\u0e17\u0e32\u0e2d\u0e48\u0e2d\u0e19", +"Gray": "\u0e40\u0e17\u0e32", +"Dark Yellow": "\u0e2a\u0e35\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e07\u0e40\u0e02\u0e49\u0e21", +"Dark Orange": "\u0e2a\u0e49\u0e21\u0e40\u0e02\u0e49\u0e21", +"Dark Red": "\u0e41\u0e14\u0e07\u0e40\u0e02\u0e49\u0e21", +"Medium Gray": "\u0e2a\u0e35\u0e40\u0e17\u0e32\u0e01\u0e25\u0e32\u0e07\u0e46", +"Dark Gray": "\u0e2a\u0e35\u0e40\u0e17\u0e32\u0e40\u0e02\u0e49\u0e21", +"Black": "\u0e14\u0e33", +"White": "\u0e02\u0e32\u0e27", +"Switch to or from fullscreen mode": "\u0e2a\u0e25\u0e31\u0e1a\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e2b\u0e23\u0e37\u0e2d\u0e08\u0e32\u0e01\u0e42\u0e2b\u0e21\u0e14\u0e40\u0e15\u0e47\u0e21\u0e2b\u0e19\u0e49\u0e32\u0e08\u0e2d", +"Open help dialog": "\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e19\u0e49\u0e32\u0e01\u0e32\u0e23\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d", +"history": "\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34", +"styles": "\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"formatting": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a", +"alignment": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e41\u0e19\u0e27", +"indentation": "\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e22\u0e48\u0e2d\u0e2b\u0e19\u0e49\u0e32", +"permanent pen": "\u0e1b\u0e32\u0e01\u0e01\u0e32\u0e40\u0e04\u0e21\u0e35\u0e0a\u0e19\u0e34\u0e14\u0e25\u0e1a\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49", +"comments": "\u0e02\u0e49\u0e2d\u0e04\u0e34\u0e14\u0e40\u0e2b\u0e47\u0e19", +"Anchor": "\u0e08\u0e38\u0e14\u0e22\u0e36\u0e14", +"Special character": "\u0e2d\u0e31\u0e01\u0e02\u0e23\u0e30\u0e1e\u0e34\u0e40\u0e28\u0e29", +"Code sample": "\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e42\u0e04\u0e49\u0e14", +"Color": "\u0e2a\u0e35", +"Emoticons": "\u0e2d\u0e34\u0e42\u0e21\u0e15\u0e34\u0e04\u0e2d\u0e19", +"Document properties": "\u0e04\u0e38\u0e13\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e34\u0e02\u0e2d\u0e07\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23", +"Image": "\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e", +"Insert link": "\u0e41\u0e17\u0e23\u0e01\u0e25\u0e34\u0e07\u0e01\u0e4c", +"Target": "\u0e40\u0e1b\u0e49\u0e32\u0e2b\u0e21\u0e32\u0e22", +"Link": "\u0e25\u0e34\u0e07\u0e01\u0e4c", +"Poster": "\u0e42\u0e1b\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c", +"Media": "\u0e2a\u0e37\u0e48\u0e2d", +"Print": "\u0e1e\u0e34\u0e21\u0e1e\u0e4c", +"Prev": "\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32", +"Find and replace": "\u0e04\u0e49\u0e19\u0e2b\u0e32\u0e41\u0e25\u0e30\u0e41\u0e17\u0e19\u0e17\u0e35\u0e48", +"Whole words": "\u0e17\u0e31\u0e49\u0e07\u0e04\u0e33", +"Spellcheck": "\u0e15\u0e23\u0e27\u0e08\u0e01\u0e32\u0e23\u0e2a\u0e30\u0e01\u0e14", +"Caption": "\u0e1b\u0e49\u0e32\u0e22\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22", +"Insert template": "\u0e41\u0e17\u0e23\u0e01\u0e41\u0e21\u0e48\u0e41\u0e1a\u0e1a" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/tr.js b/common/plugins/editors/tinymce/media/langs/tr.js new file mode 100755 index 0000000000000000000000000000000000000000..a6ec543b1bddfec09b60f4a0e69828dffb3c8ebc --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/tr.js @@ -0,0 +1,389 @@ +tinymce.addI18n('tr',{ +"Redo": "Yinele", +"Undo": "Geri al", +"Cut": "Kes", +"Copy": "Kopyala", +"Paste": "Yap\u0131\u015ft\u0131r", +"Select all": "T\u00fcm\u00fcn\u00fc se\u00e7", +"New document": "Yeni dok\u00fcman", +"Ok": "Tamam", +"Cancel": "\u0130ptal", +"Visual aids": "G\u00f6rsel ara\u00e7lar", +"Bold": "Kal\u0131n", +"Italic": "\u0130talik", +"Underline": "Alt\u0131 \u00e7izili", +"Strikethrough": "\u00dcst\u00fc \u00e7izgili", +"Superscript": "\u00dcst simge", +"Subscript": "Alt simge", +"Clear formatting": "Bi\u00e7imi temizle", +"Align left": "Sola hizala", +"Align center": "Ortala", +"Align right": "Sa\u011fa hizala", +"Justify": "\u0130ki yana yasla", +"Bullet list": "S\u0131ras\u0131z liste", +"Numbered list": "S\u0131ral\u0131 liste", +"Decrease indent": "Girintiyi azalt", +"Increase indent": "Girintiyi art\u0131r", +"Close": "Kapat", +"Formats": "Bi\u00e7imler", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Taray\u0131c\u0131n\u0131z panoya direk eri\u015fimi desteklemiyor. L\u00fctfen Ctrl+X\/C\/V klavye k\u0131sayollar\u0131n\u0131 kullan\u0131n.", +"Headers": "Ba\u015fl\u0131klar", +"Header 1": "Ba\u015fl\u0131k 1", +"Header 2": "Ba\u015fl\u0131k 2", +"Header 3": "Ba\u015fl\u0131k 3", +"Header 4": "Ba\u015fl\u0131k 4", +"Header 5": "Ba\u015fl\u0131k 5", +"Header 6": "Ba\u015fl\u0131k 6", +"Headings": "Ba\u015fl\u0131klar", +"Heading 1": "Ba\u015fl\u0131k 1", +"Heading 2": "Ba\u015fl\u0131k 2", +"Heading 3": "Ba\u015fl\u0131k 3", +"Heading 4": "Ba\u015fl\u0131k 4", +"Heading 5": "Ba\u015fl\u0131k 5", +"Heading 6": "Ba\u015fl\u0131k 6", +"Preformatted": "\u00d6nceden bi\u00e7imlendirilmi\u015f", +"Div": "Div", +"Pre": "Pre", +"Code": "Kod", +"Paragraph": "Paragraf", +"Blockquote": "Blockquote", +"Inline": "Sat\u0131r i\u00e7i", +"Blocks": "Bloklar", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00fcz metin modunda yap\u0131\u015ft\u0131r. Bu se\u00e7ene\u011fi kapatana kadar i\u00e7erikler d\u00fcz metin olarak yap\u0131\u015ft\u0131r\u0131l\u0131r.", +"Fonts": "Yaz\u0131 Tipleri", +"Font Sizes": "Yaz\u0131tipi B\u00fcy\u00fckl\u00fc\u011f\u00fc", +"Class": "S\u0131n\u0131f", +"Browse for an image": "Bir resim aray\u0131n", +"OR": "ya da", +"Drop an image here": "Buraya bir resim koyun", +"Upload": "Y\u00fckle", +"Block": "Blok", +"Align": "Hizala", +"Default": "Varsay\u0131lan", +"Circle": "Daire", +"Disc": "Disk", +"Square": "Kare", +"Lower Alpha": "K\u00fc\u00e7\u00fck Harf", +"Lower Greek": "K\u00fc\u00e7\u00fck Yunan Harfleri", +"Lower Roman": "K\u00fc\u00e7\u00fck Roman Harfleri ", +"Upper Alpha": "B\u00fcy\u00fck Harf", +"Upper Roman": "B\u00fcy\u00fck Roman Harfleri ", +"Anchor...": "\u00c7apa...", +"Name": "\u0130sim", +"Id": "Kimlik", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id bir harf ile ba\u015flamal\u0131d\u0131r ve harf, rakam, \u00e7izgi, nokta, iki nokta \u00fcst\u00fcste veya alt \u00e7izgi kullan\u0131labilir.", +"You have unsaved changes are you sure you want to navigate away?": "Kaydedilmemi\u015f de\u011fi\u015fiklikler var, sayfadan ayr\u0131lmak istedi\u011finize emin misiniz?", +"Restore last draft": "Son tasla\u011f\u0131 geri y\u00fckle", +"Special characters...": "\u00d6zel karakterler...", +"Source code": "Kaynak kodu", +"Insert\/Edit code sample": "\u00d6rnek kod ekle\/d\u00fczenle", +"Language": "Dil", +"Code sample...": "Kod \u00f6rne\u011fi...", +"Color Picker": "Renk Se\u00e7ici", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Soldan sa\u011fa", +"Right to left": "Sa\u011fdan sola", +"Emoticons...": "\u0130fadeler...", +"Metadata and Document Properties": "\u00d6nbilgi ve Belge \u00d6zellikleri", +"Title": "Ba\u015fl\u0131k", +"Keywords": "Anahtar kelimeler", +"Description": "A\u00e7\u0131klama", +"Robots": "Robotlar", +"Author": "Yazar", +"Encoding": "Kodlama", +"Fullscreen": "Tam ekran", +"Action": "Eylem", +"Shortcut": "K\u0131sayol", +"Help": "Yard\u0131m", +"Address": "Adres", +"Focus to menubar": "Men\u00fcye odaklan", +"Focus to toolbar": "Ara\u00e7 tak\u0131m\u0131na odaklan", +"Focus to element path": "\u00d6\u011fe yoluna odaklan", +"Focus to contextual toolbar": "Ba\u011flamsal ara\u00e7 tak\u0131m\u0131na odaklan", +"Insert link (if link plugin activated)": "Ba\u011flant\u0131 ekle (Ba\u011flant\u0131 eklentisi aktif ise)", +"Save (if save plugin activated)": "Kaydet (Kay\u0131t eklentisi aktif ise)", +"Find (if searchreplace plugin activated)": "Bul (Bul\/De\u011fi\u015ftir eklentisi aktif ise)", +"Plugins installed ({0}):": "Eklentiler y\u00fcklendi ({0}):", +"Premium plugins:": "Premium eklentiler:", +"Learn more...": "Detayl\u0131 bilgi...", +"You are using {0}": "\u015eu an {0} kullan\u0131yorsunuz", +"Plugins": "Plugins", +"Handy Shortcuts": "Handy Shortcuts", +"Horizontal line": "Yatay \u00e7izgi", +"Insert\/edit image": "Resim ekle\/d\u00fczenle", +"Image description": "Resim a\u00e7\u0131klamas\u0131", +"Source": "Kaynak", +"Dimensions": "Boyutlar", +"Constrain proportions": "Oranlar\u0131 koru", +"General": "Genel", +"Advanced": "Geli\u015fmi\u015f", +"Style": "Stil", +"Vertical space": "Dikey bo\u015fluk", +"Horizontal space": "Yatay bo\u015fluk", +"Border": "Kenarl\u0131k", +"Insert image": "Resim ekle", +"Image...": "Resim...", +"Image list": "G\u00f6rsel listesi", +"Rotate counterclockwise": "Saatin tersi y\u00f6n\u00fcnde d\u00f6nd\u00fcr", +"Rotate clockwise": "Saat y\u00f6n\u00fcnde d\u00f6nd\u00fcr", +"Flip vertically": "Dikine \u00e7evir", +"Flip horizontally": "Enine \u00e7evir", +"Edit image": "Resmi d\u00fczenle", +"Image options": "Resim ayarlar\u0131", +"Zoom in": "Yak\u0131nla\u015ft\u0131r", +"Zoom out": "Uzakla\u015ft\u0131r", +"Crop": "K\u0131rp", +"Resize": "Yeniden Boyutland\u0131r", +"Orientation": "Oryantasyon", +"Brightness": "Parlakl\u0131k", +"Sharpen": "Keskinle\u015ftir", +"Contrast": "Kontrast", +"Color levels": "Renk d\u00fczeyleri", +"Gamma": "Gama", +"Invert": "Ters \u00c7evir", +"Apply": "Uygula", +"Back": "Geri", +"Insert date\/time": "Tarih\/saat ekle", +"Date\/time": "Tarih\/saat", +"Insert\/Edit Link": "Ba\u011flant\u0131 Ekle\/D\u00fczenle", +"Insert\/edit link": "Ba\u011flant\u0131 ekle\/d\u00fczenle", +"Text to display": "Yaz\u0131y\u0131 g\u00f6r\u00fcnt\u00fcle", +"Url": "Url", +"Open link in...": "Ba\u011flant\u0131y\u0131 a\u00e7...", +"Current window": "Mevcut pencere", +"None": "Hi\u00e7biri", +"New window": "Yeni pencere", +"Remove link": "Ba\u011flant\u0131y\u0131 kald\u0131r", +"Anchors": "\u00c7apalar", +"Link...": "Ba\u011flant\u0131...", +"Paste or type a link": "Bir ba\u011flant\u0131 yaz\u0131n yada yap\u0131\u015ft\u0131r\u0131n", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Girdi\u011finiz URL bir e-posta adresi gibi g\u00f6r\u00fcn\u00fcyor. Gerekli olan mailto: \u00f6nekini eklemek ister misiniz?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Girdi\u011finiz URL bir d\u0131\u015f ba\u011flant\u0131 gibi g\u00f6r\u00fcn\u00fcyor. Gerekli olan http:\/\/ \u00f6nekini eklemek ister misiniz?", +"Link list": "Ba\u011flant\u0131 listesi", +"Insert video": "Video ekle", +"Insert\/edit video": "Video ekle\/d\u00fczenle", +"Insert\/edit media": "Medya ekle\/d\u00fczenle", +"Alternative source": "Alternatif kaynak", +"Alternative source URL": "Alternatif kaynak URL", +"Media poster (Image URL)": "Medya posteri (Resim URL)", +"Paste your embed code below:": "Video g\u00f6mme kodunu a\u015fa\u011f\u0131ya yap\u0131\u015ft\u0131r\u0131n\u0131z:", +"Embed": "G\u00f6mme", +"Media...": "Medya...", +"Nonbreaking space": "B\u00f6l\u00fcnemez bo\u015fluk", +"Page break": "Sayfa sonu", +"Paste as text": "Metin olarak yap\u0131\u015ft\u0131r", +"Preview": "\u00d6nizleme", +"Print...": "Yazd\u0131r...", +"Save": "Kaydet", +"Find": "Bul", +"Replace with": "Bununla de\u011fi\u015ftir", +"Replace": "De\u011fi\u015ftir", +"Replace all": "T\u00fcm\u00fcn\u00fc de\u011fi\u015ftir", +"Previous": "Geri", +"Next": "Sonraki", +"Find and replace...": "Bul ve de\u011fi\u015ftir...", +"Could not find the specified string.": "Herhangi bir sonu\u00e7 bulunamad\u0131.", +"Match case": "B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyarl\u0131", +"Find whole words only": "Sadece t\u00fcm kelimeyi ara", +"Spell check": "Yaz\u0131m denetimi", +"Ignore": "Yoksay", +"Ignore all": "T\u00fcm\u00fcn\u00fc yoksay", +"Finish": "Bitir", +"Add to Dictionary": "S\u00f6zl\u00fc\u011fe Ekle", +"Insert table": "Tablo ekle", +"Table properties": "Tablo \u00f6zellikleri", +"Delete table": "Tablo sil", +"Cell": "H\u00fccre", +"Row": "Sat\u0131r", +"Column": "S\u00fctun", +"Cell properties": "H\u00fccre \u00f6zellikleri", +"Merge cells": "H\u00fccreleri birle\u015ftir", +"Split cell": "H\u00fccre b\u00f6l", +"Insert row before": "\u00dcste sat\u0131r ekle", +"Insert row after": "Alta sat\u0131r ekle ", +"Delete row": "Sat\u0131r sil", +"Row properties": "Sat\u0131r \u00f6zellikleri", +"Cut row": "Sat\u0131r\u0131 kes", +"Copy row": "Sat\u0131r\u0131 kopyala", +"Paste row before": "\u00dcste sat\u0131r yap\u0131\u015ft\u0131r", +"Paste row after": "Alta sat\u0131r yap\u0131\u015ft\u0131r", +"Insert column before": "Sola s\u00fctun ekle", +"Insert column after": "Sa\u011fa s\u00fctun ekle", +"Delete column": "S\u00fctun sil", +"Cols": "S\u00fctunlar", +"Rows": "Sat\u0131rlar", +"Width": "Geni\u015flik", +"Height": "Y\u00fckseklik", +"Cell spacing": "H\u00fccre aral\u0131\u011f\u0131", +"Cell padding": "H\u00fccre dolgusu", +"Show caption": "Ba\u015fl\u0131\u011f\u0131 g\u00f6ster", +"Left": "Sol", +"Center": "Orta", +"Right": "Sa\u011f", +"Cell type": "H\u00fccre tipi", +"Scope": "Kapsam", +"Alignment": "Hizalama", +"H Align": "Yatay Hizalama", +"V Align": "Dikey Hizalama", +"Top": "\u00dcst", +"Middle": "Orta", +"Bottom": "Alt", +"Header cell": "Ba\u015fl\u0131k h\u00fccresi", +"Row group": "Sat\u0131r grubu", +"Column group": "S\u00fctun grubu", +"Row type": "Sat\u0131r tipi", +"Header": "Ba\u015fl\u0131k", +"Body": "G\u00f6vde", +"Footer": "Alt", +"Border color": "Kenarl\u0131k rengi", +"Insert template...": "\u015eablon ekle...", +"Templates": "\u015eablonlar", +"Template": "Taslak", +"Text color": "Yaz\u0131 rengi", +"Background color": "Arka plan rengi", +"Custom...": "\u00d6zel...", +"Custom color": "\u00d6zel renk", +"No color": "Renk yok", +"Remove color": "Rengi kald\u0131r", +"Table of Contents": "\u0130\u00e7erik tablosu", +"Show blocks": "Bloklar\u0131 g\u00f6ster", +"Show invisible characters": "G\u00f6r\u00fcnmez karakterleri g\u00f6ster", +"Word count": "Kelime say\u0131s\u0131", +"Words: {0}": "Kelime: {0}", +"{0} words": "{0} words", +"File": "Dosya", +"Edit": "D\u00fczenle", +"Insert": "Ekle", +"View": "G\u00f6r\u00fcn\u00fcm", +"Format": "Bi\u00e7im", +"Table": "Tablo", +"Tools": "Ara\u00e7lar", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zengin Metin Alan\u0131. Men\u00fc i\u00e7in ALT-F9 tu\u015funa bas\u0131n\u0131z. Ara\u00e7 \u00e7ubu\u011fu i\u00e7in ALT-F10 tu\u015funa bas\u0131n\u0131z. Yard\u0131m i\u00e7in ALT-0 tu\u015funa bas\u0131n\u0131z.", +"Image title": "Resim ba\u015fl\u0131\u011f\u0131", +"Border width": "Kenar geni\u015fli\u011fi", +"Border style": "Kenar sitili", +"Error": "Hata", +"Warn": "Uyar\u0131", +"Valid": "Ge\u00e7erli", +"To open the popup, press Shift+Enter": "Popup'\u0131 a\u00e7mak i\u00e7in Shift+Enter'a bas\u0131n", +"Rich Text Area. Press ALT-0 for help.": "Zengin Metin Alan\u0131. Yard\u0131m i\u00e7in Alt-0'a bas\u0131n.", +"System Font": "Sistem Yaz\u0131 Tipi", +"Failed to upload image: {0}": "Resim y\u00fcklenemedi: {0}", +"Failed to load plugin: {0} from url {1}": "Eklenti y\u00fcklenemedi: {1} url\u2019sinden {0} ", +"Failed to load plugin url: {0}": "Url eklentisi y\u00fcklenemedi: {0}", +"Failed to initialize plugin: {0}": "Eklenti ba\u015flat\u0131lamad\u0131: {0}", +"example": "\u00f6rnek", +"Search": "Ara", +"All": "T\u00fcm\u00fc", +"Currency": "Para birimi", +"Text": "Metin", +"Quotations": "Al\u0131nt\u0131", +"Mathematical": "Matematik", +"Extended Latin": "Uzat\u0131lm\u0131\u015f Latin", +"Symbols": "Semboller", +"Arrows": "Oklar", +"User Defined": "Kullan\u0131c\u0131 Tan\u0131ml\u0131", +"dollar sign": "dolar i\u015fareti", +"currency sign": "para birimi i\u015fareti", +"euro-currency sign": "euro para birimi i\u015fareti", +"colon sign": "colon i\u015fareti", +"cruzeiro sign": "cruzeiro i\u015fareti", +"french franc sign": "frans\u0131z frang\u0131 i\u015fareti", +"lira sign": "lira i\u015fareti", +"mill sign": "mill i\u015fareti", +"naira sign": "naira i\u015fareti", +"peseta sign": "peseta i\u015fareti", +"rupee sign": "rupi i\u015fareti", +"won sign": "won i\u015fareti", +"new sheqel sign": "yeni \u015fekel i\u015fareti", +"dong sign": "dong i\u015fareti", +"kip sign": "kip i\u015fareti", +"tugrik sign": "tugrik i\u015fareti", +"drachma sign": "drahma i\u015fareti", +"german penny symbol": "alman kuru\u015f sembol\u00fc", +"peso sign": "peso i\u015fareti", +"guarani sign": "guarani i\u015fareti", +"austral sign": "austral i\u015fareti", +"hryvnia sign": "hrivniya i\u015fareti", +"cedi sign": "cedi i\u015fareti", +"livre tournois sign": "livre tournois i\u015fareti", +"spesmilo sign": "spesmilo i\u015fareti", +"tenge sign": "tenge i\u015fareti", +"indian rupee sign": "hindistan rupisi i\u015fareti", +"turkish lira sign": "t\u00fcrk liras\u0131 i\u015fareti", +"nordic mark sign": "nordic i\u015fareti", +"manat sign": "manat i\u015fareti", +"ruble sign": "ruble i\u015fareti", +"yen character": "yen karakteri", +"yuan character": "yuan karakteri", +"yuan character, in hong kong and taiwan": "yuan karakteri, hong kong ve tayvan'da kullan\u0131lan", +"yen\/yuan character variant one": "yen\/yuan karakter de\u011fi\u015fkeni", +"Loading emoticons...": "\u0130fadeler y\u00fckleniyor...", +"Could not load emoticons": "\u0130fadeler y\u00fcklenemedi", +"People": "\u0130nsan", +"Animals and Nature": "Hayvanlar ve Do\u011fa", +"Food and Drink": "Yiyecek ve \u0130\u00e7ecek", +"Activity": "Etkinlik", +"Travel and Places": "Gezi ve Yerler", +"Objects": "Nesneler", +"Flags": "Bayraklar", +"Characters": "Karakter", +"Characters (no spaces)": "Karakter (bo\u015fluksuz)", +"Error: Form submit field collision.": "Hata: Form g\u00f6nderme alan\u0131 \u00e7at\u0131\u015fmas\u0131.", +"Error: No form element found.": "Hata: Form eleman\u0131 bulunamad\u0131.", +"Update": "G\u00fcncelle\u015ftir", +"Color swatch": "Renk \u00f6rne\u011fi", +"Turquoise": "Turkuaz", +"Green": "Ye\u015fil", +"Blue": "Mavi", +"Purple": "Mor", +"Navy Blue": "Lacivert", +"Dark Turquoise": "Koyu Turkuaz", +"Dark Green": "Koyu Ye\u015fil", +"Medium Blue": "Donuk Mavi", +"Medium Purple": "Orta Mor", +"Midnight Blue": "Gece Yar\u0131s\u0131 Mavisi", +"Yellow": "Sar\u0131", +"Orange": "Turuncu", +"Red": "K\u0131rm\u0131z\u0131", +"Light Gray": "A\u00e7\u0131k Gri", +"Gray": "Gri", +"Dark Yellow": "Koyu Sar\u0131", +"Dark Orange": "Koyu Turuncu", +"Dark Red": "Koyu K\u0131rm\u0131z\u0131", +"Medium Gray": "Orta Gri", +"Dark Gray": "Koyu Gri", +"Black": "Siyah", +"White": "Beyaz", +"Switch to or from fullscreen mode": "Tam ekran moduna ge\u00e7 veya \u00e7\u0131k", +"Open help dialog": "Yard\u0131m penceresini a\u00e7", +"history": "ge\u00e7mi\u015f", +"styles": "stiller", +"formatting": "bi\u00e7imlendirme", +"alignment": "hizalanma", +"indentation": "girinti", +"permanent pen": "kal\u0131c\u0131 kalem", +"comments": "yorumlar", +"Anchor": "\u00c7apa", +"Special character": "\u00d6zel karakter", +"Code sample": "Code sample", +"Color": "Renk", +"Emoticons": "\u0130fadeler", +"Document properties": "Dok\u00fcman \u00f6zellikleri", +"Image": "Resim", +"Insert link": "Ba\u011flant\u0131 ekle", +"Target": "Hedef", +"Link": "Ba\u011flant\u0131", +"Poster": "Poster", +"Media": "Medya", +"Print": "Yazd\u0131r", +"Prev": "\u00d6nceki", +"Find and replace": "Bul ve de\u011fi\u015ftir", +"Whole words": "Tam kelimeler", +"Spellcheck": "Yaz\u0131m denetimi", +"Caption": "Ba\u015fl\u0131k", +"Insert template": "\u015eablon ekle" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/tr_TR.js b/common/plugins/editors/tinymce/media/langs/tr_TR.js new file mode 100755 index 0000000000000000000000000000000000000000..4a4327df92bd6abd1f32016182bb7913e59dff4c --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/tr_TR.js @@ -0,0 +1,389 @@ +tinymce.addI18n('tr_TR',{ +"Redo": "Yinele", +"Undo": "Geri al", +"Cut": "Kes", +"Copy": "Kopyala", +"Paste": "Yap\u0131\u015ft\u0131r", +"Select all": "T\u00fcm\u00fcn\u00fc se\u00e7", +"New document": "Yeni dok\u00fcman", +"Ok": "Tamam", +"Cancel": "\u0130ptal", +"Visual aids": "G\u00f6rsel ara\u00e7lar", +"Bold": "Kal\u0131n", +"Italic": "\u0130talik", +"Underline": "Alt\u0131 \u00e7izili", +"Strikethrough": "\u00dcst\u00fc \u00e7izgili", +"Superscript": "\u00dcst simge", +"Subscript": "Alt simge", +"Clear formatting": "Bi\u00e7imi temizle", +"Align left": "Sola hizala", +"Align center": "Ortala", +"Align right": "Sa\u011fa hizala", +"Justify": "\u0130ki yana yasla", +"Bullet list": "S\u0131ras\u0131z liste", +"Numbered list": "S\u0131ral\u0131 liste", +"Decrease indent": "Girintiyi azalt", +"Increase indent": "Girintiyi art\u0131r", +"Close": "Kapat", +"Formats": "Bi\u00e7imler", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Taray\u0131c\u0131n\u0131z panoya direk eri\u015fimi desteklemiyor. L\u00fctfen Ctrl+X\/C\/V klavye k\u0131sayollar\u0131n\u0131 kullan\u0131n.", +"Headers": "Ba\u015fl\u0131klar", +"Header 1": "Ba\u015fl\u0131k 1", +"Header 2": "Ba\u015fl\u0131k 2", +"Header 3": "Ba\u015fl\u0131k 3", +"Header 4": "Ba\u015fl\u0131k 4", +"Header 5": "Ba\u015fl\u0131k 5", +"Header 6": "Ba\u015fl\u0131k 6", +"Headings": "Ba\u015fl\u0131klar", +"Heading 1": "Ba\u015fl\u0131k 1", +"Heading 2": "Ba\u015fl\u0131k 2", +"Heading 3": "Ba\u015fl\u0131k 3", +"Heading 4": "Ba\u015fl\u0131k 4", +"Heading 5": "Ba\u015fl\u0131k 5", +"Heading 6": "Ba\u015fl\u0131k 6", +"Preformatted": "\u00d6nceden bi\u00e7imlendirilmi\u015f", +"Div": "Div", +"Pre": "Pre", +"Code": "Kod", +"Paragraph": "Paragraf", +"Blockquote": "Blockquote", +"Inline": "Sat\u0131r i\u00e7i", +"Blocks": "Bloklar", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "D\u00fcz metin modunda yap\u0131\u015ft\u0131r. Bu se\u00e7ene\u011fi kapatana kadar i\u00e7erikler d\u00fcz metin olarak yap\u0131\u015ft\u0131r\u0131l\u0131r.", +"Fonts": "Yaz\u0131 Tipleri", +"Font Sizes": "Yaz\u0131tipi B\u00fcy\u00fckl\u00fc\u011f\u00fc", +"Class": "S\u0131n\u0131f", +"Browse for an image": "Bir resim aray\u0131n", +"OR": "ya da", +"Drop an image here": "Buraya bir resim koyun", +"Upload": "Y\u00fckle", +"Block": "Blok", +"Align": "Hizala", +"Default": "Varsay\u0131lan", +"Circle": "Daire", +"Disc": "Disk", +"Square": "Kare", +"Lower Alpha": "K\u00fc\u00e7\u00fck ABC", +"Lower Greek": "K\u00fc\u00e7\u00fck Yunan alfabesi", +"Lower Roman": "K\u00fc\u00e7\u00fck Roman alfabesi", +"Upper Alpha": "B\u00fcy\u00fck ABC", +"Upper Roman": "B\u00fcy\u00fck Roman alfabesi", +"Anchor...": "\u00c7apa...", +"Name": "\u0130sim", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id bir harf ile ba\u015flamal\u0131d\u0131r ve sadece harfleri, rakamlar\u0131, \u00e7izgileri, noktalar\u0131, virg\u00fclleri veya alt \u00e7izgileri i\u00e7ermelidir.", +"You have unsaved changes are you sure you want to navigate away?": "Kaydedilmemi\u015f de\u011fi\u015fiklikler var, sayfadan ayr\u0131lmak istedi\u011finize emin misiniz?", +"Restore last draft": "Son tasla\u011f\u0131 kurtar", +"Special characters...": "\u00d6zel karakterler...", +"Source code": "Kaynak kodu", +"Insert\/Edit code sample": "Kod \u00f6rne\u011fini Kaydet\/D\u00fczenle", +"Language": "Dil", +"Code sample...": "Kod \u00f6rne\u011fi...", +"Color Picker": "Renk Se\u00e7ici", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "Soldan sa\u011fa", +"Right to left": "Sa\u011fdan sola", +"Emoticons...": "\u0130fadeler...", +"Metadata and Document Properties": "\u00d6nbilgi ve Belge \u00d6zellikleri", +"Title": "Ba\u015fl\u0131k", +"Keywords": "Anahtar kelimeler", +"Description": "A\u00e7\u0131klama", +"Robots": "Robotlar", +"Author": "Yazar", +"Encoding": "Kodlama", +"Fullscreen": "Tam ekran", +"Action": "Eylem", +"Shortcut": "K\u0131sayol", +"Help": "Yard\u0131m", +"Address": "Adres", +"Focus to menubar": "Men\u00fc \u00e7ubu\u011funa odaklan.", +"Focus to toolbar": "Ara\u00e7 \u00e7ubu\u011funa odaklan.", +"Focus to element path": "Eleman yoluna odaklan", +"Focus to contextual toolbar": "Ba\u011flamsal ara\u00e7 \u00e7ubu\u011funa odaklan", +"Insert link (if link plugin activated)": "Link ekle (Link eklentisi aktif ise)", +"Save (if save plugin activated)": "Kaydet (Kay\u0131t eklentisi aktif ise)", +"Find (if searchreplace plugin activated)": "Bul (SearchReplace eklentisi aktif ise)", +"Plugins installed ({0}):": "Y\u00fckl\u00fc eklenti say\u0131s\u0131 : ({0}):", +"Premium plugins:": "Premium eklentileri", +"Learn more...": "Daha fazla bilgi edinin.", +"You are using {0}": "{0} kullan\u0131yorsun.", +"Plugins": "Eklentiler", +"Handy Shortcuts": "Kullan\u0131\u015fl\u0131 K\u0131sayollar", +"Horizontal line": "Yatay \u00e7izgi", +"Insert\/edit image": "Resim ekle\/d\u00fczenle", +"Image description": "Resim a\u00e7\u0131klamas\u0131", +"Source": "Kaynak", +"Dimensions": "Boyutlar", +"Constrain proportions": "En - Boy oran\u0131n\u0131 koru", +"General": "Genel", +"Advanced": "Geli\u015fmi\u015f", +"Style": "Stil", +"Vertical space": "Dikey bo\u015fluk", +"Horizontal space": "Yatay bo\u015fluk", +"Border": "\u00c7er\u00e7eve", +"Insert image": "Resim ekle", +"Image...": "Resim...", +"Image list": "Resim listesi", +"Rotate counterclockwise": "Saat y\u00f6n\u00fcn\u00fcn tersine d\u00f6nd\u00fcr", +"Rotate clockwise": "Saat y\u00f6n\u00fcnde d\u00f6nd\u00fcr", +"Flip vertically": "Dikey \u00e7evir", +"Flip horizontally": "Yatay \u00e7evir", +"Edit image": "G\u00f6r\u00fcnt\u00fcy\u00fc d\u00fczenle", +"Image options": "G\u00f6r\u00fcnt\u00fc se\u00e7enekleri", +"Zoom in": "Yak\u0131nla\u015ft\u0131r", +"Zoom out": "Uzakla\u015ft\u0131r", +"Crop": "Kes", +"Resize": "Yeniden Boyutland\u0131r", +"Orientation": "Y\u00f6n\u00fcn\u00fc Belirle", +"Brightness": "Parlakl\u0131k", +"Sharpen": "Keskinle\u015ftir", +"Contrast": "Kontrast", +"Color levels": "Renk seviyesi", +"Gamma": "Gama", +"Invert": "Tersine \u00e7evir", +"Apply": "Uygula", +"Back": "Geri", +"Insert date\/time": "Tarih \/ Zaman ekle", +"Date\/time": "Tarih\/zaman", +"Insert\/Edit Link": "Ba\u011flant\u0131 Ekle\/D\u00fczenle", +"Insert\/edit link": "Ba\u011flant\u0131 ekle\/d\u00fczenle", +"Text to display": "G\u00f6r\u00fcnen yaz\u0131", +"Url": "Url", +"Open link in...": "Ba\u011flant\u0131y\u0131 a\u00e7...", +"Current window": "Mevcut pencere", +"None": "Hi\u00e7biri", +"New window": "Yeni pencere", +"Remove link": "Ba\u011flant\u0131y\u0131 kald\u0131r", +"Anchors": "\u00c7apalar", +"Link...": "Ba\u011flant\u0131...", +"Paste or type a link": "Bir ba\u011flant\u0131 yap\u0131\u015ft\u0131r\u0131n yada yaz\u0131n.", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "Girdi\u011finiz URL bir eposta adresi gibi g\u00f6z\u00fck\u00fcyor. Gerekli olan mailto: \u00f6nekini eklemek ister misiniz?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "Girdi\u011finiz URL bir d\u0131\u015f ba\u011flant\u0131 gibi g\u00f6z\u00fck\u00fcyor. Gerekli olan http:\/\/ \u00f6nekini eklemek ister misiniz?", +"Link list": "Link listesi", +"Insert video": "Video ekle", +"Insert\/edit video": "Video ekle\/d\u00fczenle", +"Insert\/edit media": "Medya ekle\/d\u00fczenle", +"Alternative source": "Alternatif kaynak", +"Alternative source URL": "Alternatif kaynak URL", +"Media poster (Image URL)": "Medya posteri (Resim URL)", +"Paste your embed code below:": "Medya g\u00f6mme kodunu buraya yap\u0131\u015ft\u0131r:", +"Embed": "G\u00f6mme", +"Media...": "Medya...", +"Nonbreaking space": "B\u00f6l\u00fcnemez bo\u015fluk", +"Page break": "Sayfa sonu", +"Paste as text": "Metin olarak yap\u0131\u015ft\u0131r", +"Preview": "\u00d6nizleme", +"Print...": "Yazd\u0131r...", +"Save": "Kaydet", +"Find": "Bul", +"Replace with": "Bununla de\u011fi\u015ftir", +"Replace": "De\u011fi\u015ftir", +"Replace all": "T\u00fcm\u00fcn\u00fc de\u011fi\u015ftir", +"Previous": "Geri", +"Next": "Sonraki", +"Find and replace...": "Bul ve de\u011fi\u015ftir...", +"Could not find the specified string.": "Herhangi bir sonu\u00e7 bulunamad\u0131.", +"Match case": "B\u00fcy\u00fck \/ K\u00fc\u00e7\u00fck harfe duyarl\u0131", +"Find whole words only": "Sadece t\u00fcm kelimeyi ara", +"Spell check": "Yaz\u0131m denetimi", +"Ignore": "Yoksay", +"Ignore all": "T\u00fcm\u00fcn\u00fc yoksay", +"Finish": "Bitir", +"Add to Dictionary": "S\u00f6zl\u00fc\u011fe ekle", +"Insert table": "Tablo ekle", +"Table properties": "Tablo \u00f6zellikleri", +"Delete table": "Tabloyu sil", +"Cell": "H\u00fccre", +"Row": "Sat\u0131r", +"Column": "S\u00fctun", +"Cell properties": "H\u00fccre \u00f6zellikleri", +"Merge cells": "H\u00fccreleri birle\u015ftir", +"Split cell": "H\u00fccreleri ay\u0131r", +"Insert row before": "\u00d6ncesine yeni sat\u0131r ekle", +"Insert row after": "Sonras\u0131na yeni sat\u0131r ekle", +"Delete row": "Sat\u0131r\u0131 sil", +"Row properties": "Sat\u0131r \u00f6zellikleri", +"Cut row": "Sat\u0131r\u0131 kes", +"Copy row": "Sat\u0131r\u0131 kopyala", +"Paste row before": "\u00d6ncesine sat\u0131r yap\u0131\u015ft\u0131r", +"Paste row after": "Sonras\u0131na sat\u0131r yap\u0131\u015ft\u0131r", +"Insert column before": "\u00d6ncesine yeni s\u00fctun ekle", +"Insert column after": "Sonras\u0131na yeni s\u00fctun ekle", +"Delete column": "S\u00fctunu sil", +"Cols": "S\u00fctunlar", +"Rows": "Sat\u0131rlar", +"Width": "Geni\u015flik", +"Height": "Y\u00fckseklik", +"Cell spacing": "H\u00fccre aral\u0131\u011f\u0131", +"Cell padding": "H\u00fccre i\u00e7 bo\u015flu\u011fu", +"Show caption": "Ba\u015fl\u0131\u011f\u0131 g\u00f6ster", +"Left": "Sol", +"Center": "Orta", +"Right": "Sa\u011f", +"Cell type": "H\u00fccre tipi", +"Scope": "Kapsam", +"Alignment": "Hizalama", +"H Align": "Yatay Hizalama", +"V Align": "Dikey Hizalama", +"Top": "\u00dcst", +"Middle": "Orta", +"Bottom": "Alt", +"Header cell": "Ba\u015fl\u0131k h\u00fccresi", +"Row group": "Sat\u0131r grubu", +"Column group": "S\u00fctun grubu", +"Row type": "Sat\u0131r tipi", +"Header": "Ba\u015fl\u0131k", +"Body": "G\u00f6vde", +"Footer": "Alt", +"Border color": "Kenarl\u0131k Rengi", +"Insert template...": "\u015eablon ekle...", +"Templates": "\u015eablonlar", +"Template": "Tema", +"Text color": "Yaz\u0131 rengi", +"Background color": "Arkaplan rengi", +"Custom...": "\u00d6zel", +"Custom color": "\u00d6zel Renk", +"No color": "Renk Yok", +"Remove color": "Rengi kald\u0131r", +"Table of Contents": "\u0130\u00e7indekiler", +"Show blocks": "Bloklar\u0131 g\u00f6r\u00fcnt\u00fcle", +"Show invisible characters": "G\u00f6r\u00fcnmez karakterleri g\u00f6ster", +"Word count": "Kelime say\u0131s\u0131", +"Words: {0}": "Kelime: {0}", +"{0} words": "{0} kelime", +"File": "Dosya", +"Edit": "D\u00fczenle", +"Insert": "Ekle", +"View": "G\u00f6r\u00fcnt\u00fcle", +"Format": "Bi\u00e7im", +"Table": "Tablo", +"Tools": "Ara\u00e7lar", +"Powered by {0}": "{0} taraf\u0131ndan yap\u0131lm\u0131\u015ft\u0131r ", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Zengin Metin Alan\u0131. Men\u00fc i\u00e7in ALT-F9 k\u0131sayolunu kullan\u0131n. Ara\u00e7 \u00e7ubu\u011fu i\u00e7in ALT-F10 k\u0131sayolunu kullan\u0131n. Yard\u0131m i\u00e7in ALT-0 k\u0131sayolunu kullan\u0131n.", +"Image title": "Resim ba\u015fl\u0131\u011f\u0131", +"Border width": "Kenar geni\u015fli\u011fi", +"Border style": "Kenar sitili", +"Error": "Hata", +"Warn": "Uyar\u0131", +"Valid": "Ge\u00e7erli", +"To open the popup, press Shift+Enter": "Popup'\u0131 a\u00e7mak i\u00e7in Shift+Enter'a bas\u0131n", +"Rich Text Area. Press ALT-0 for help.": "Zengin Metin Alan\u0131. Yard\u0131m i\u00e7in Alt-0'a bas\u0131n.", +"System Font": "Sistem Yaz\u0131 Tipi", +"Failed to upload image: {0}": "Resim y\u00fcklenemedi: {0}", +"Failed to load plugin: {0} from url {1}": "Eklenti y\u00fcklenemedi: {1} url\u2019sinden {0} ", +"Failed to load plugin url: {0}": "Url eklentisi y\u00fcklenemedi: {0}", +"Failed to initialize plugin: {0}": "Eklenti ba\u015flat\u0131lamad\u0131: {0}", +"example": "\u00f6rnek", +"Search": "Ara", +"All": "T\u00fcm\u00fc", +"Currency": "Para birimi", +"Text": "Metin", +"Quotations": "Al\u0131nt\u0131", +"Mathematical": "Matematik", +"Extended Latin": "Uzat\u0131lm\u0131\u015f Latin", +"Symbols": "Semboller", +"Arrows": "Oklar", +"User Defined": "Kullan\u0131c\u0131 Tan\u0131ml\u0131", +"dollar sign": "dolar i\u015fareti", +"currency sign": "para birimi i\u015fareti", +"euro-currency sign": "euro para birimi i\u015fareti", +"colon sign": "colon i\u015fareti", +"cruzeiro sign": "cruzeiro i\u015fareti", +"french franc sign": "frans\u0131z frang\u0131 i\u015fareti", +"lira sign": "lira i\u015fareti", +"mill sign": "mill i\u015fareti", +"naira sign": "naira i\u015fareti", +"peseta sign": "peseta i\u015fareti", +"rupee sign": "rupi i\u015fareti", +"won sign": "won i\u015fareti", +"new sheqel sign": "yeni \u015fekel i\u015fareti", +"dong sign": "dong i\u015fareti", +"kip sign": "kip i\u015fareti", +"tugrik sign": "tugrik i\u015fareti", +"drachma sign": "drahma i\u015fareti", +"german penny symbol": "alman kuru\u015f sembol\u00fc", +"peso sign": "peso i\u015fareti", +"guarani sign": "guarani i\u015fareti", +"austral sign": "austral i\u015fareti", +"hryvnia sign": "hrivniya i\u015fareti", +"cedi sign": "cedi i\u015fareti", +"livre tournois sign": "livre tournois i\u015fareti", +"spesmilo sign": "spesmilo i\u015fareti", +"tenge sign": "tenge i\u015fareti", +"indian rupee sign": "hindistan rupisi i\u015fareti", +"turkish lira sign": "t\u00fcrk liras\u0131 i\u015fareti", +"nordic mark sign": "nordic i\u015fareti", +"manat sign": "manat i\u015fareti", +"ruble sign": "ruble i\u015fareti", +"yen character": "yen karakteri", +"yuan character": "yuan karakteri", +"yuan character, in hong kong and taiwan": "yuan karakteri, hong kong ve tayvan'da kullan\u0131lan", +"yen\/yuan character variant one": "yen\/yuan karakter de\u011fi\u015fkeni", +"Loading emoticons...": "\u0130fadeler y\u00fckleniyor...", +"Could not load emoticons": "\u0130fadeler y\u00fcklenemedi", +"People": "\u0130nsan", +"Animals and Nature": "Hayvanlar ve Do\u011fa", +"Food and Drink": "Yiyecek ve \u0130\u00e7ecek", +"Activity": "Etkinlik", +"Travel and Places": "Gezi ve Yerler", +"Objects": "Nesneler", +"Flags": "Bayraklar", +"Characters": "Karakter", +"Characters (no spaces)": "Karakter (bo\u015fluksuz)", +"Error: Form submit field collision.": "Hata: Form g\u00f6nderme alan\u0131 \u00e7at\u0131\u015fmas\u0131.", +"Error: No form element found.": "Hata: Form eleman\u0131 bulunamad\u0131.", +"Update": "G\u00fcncelle\u015ftir", +"Color swatch": "Renk \u00f6rne\u011fi", +"Turquoise": "Turkuaz", +"Green": "Ye\u015fil", +"Blue": "Mavi", +"Purple": "Mor", +"Navy Blue": "Lacivert", +"Dark Turquoise": "Koyu Turkuaz", +"Dark Green": "Koyu Ye\u015fil", +"Medium Blue": "Donuk Mavi", +"Medium Purple": "Orta Mor", +"Midnight Blue": "Gece Yar\u0131s\u0131 Mavisi", +"Yellow": "Sar\u0131", +"Orange": "Turuncu", +"Red": "K\u0131rm\u0131z\u0131", +"Light Gray": "A\u00e7\u0131k Gri", +"Gray": "Gri", +"Dark Yellow": "Koyu Sar\u0131", +"Dark Orange": "Koyu Turuncu", +"Dark Red": "Koyu K\u0131rm\u0131z\u0131", +"Medium Gray": "Orta Gri", +"Dark Gray": "Koyu Gri", +"Black": "Siyah", +"White": "Beyaz", +"Switch to or from fullscreen mode": "Tam ekran moduna ge\u00e7 veya \u00e7\u0131k", +"Open help dialog": "Yard\u0131m penceresini a\u00e7", +"history": "ge\u00e7mi\u015f", +"styles": "stiller", +"formatting": "bi\u00e7imlendirme", +"alignment": "hizalanma", +"indentation": "girinti", +"permanent pen": "kal\u0131c\u0131 kalem", +"comments": "yorumlar", +"Anchor": "\u00c7apa", +"Special character": "\u00d6zel karakter", +"Code sample": "Kod \u00f6rne\u011fi", +"Color": "Renk", +"Emoticons": "G\u00fcl\u00fcc\u00fckler", +"Document properties": "Dok\u00fcman \u00f6zellikleri", +"Image": "Resim", +"Insert link": "Ba\u011flant\u0131 ekle", +"Target": "Hedef", +"Link": "Ba\u011flant\u0131", +"Poster": "Poster", +"Media": "Medya", +"Print": "Yazd\u0131r", +"Prev": "\u00d6nceki", +"Find and replace": "Bul ve de\u011fi\u015ftir", +"Whole words": "Tam s\u00f6zc\u00fckler", +"Spellcheck": "Yaz\u0131m denetimi", +"Caption": "Ba\u015fl\u0131k", +"Insert template": "\u015eablon ekle" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/uk.js b/common/plugins/editors/tinymce/media/langs/uk.js new file mode 100755 index 0000000000000000000000000000000000000000..88acc82bec082579c595862b1f94133c3eb469a6 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/uk.js @@ -0,0 +1,389 @@ +tinymce.addI18n('uk',{ +"Redo": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0438", +"Undo": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438", +"Cut": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438", +"Copy": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438", +"Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438", +"Select all": "\u0412\u0438\u0434\u0456\u043b\u0438\u0442\u0438 \u0432\u0441\u0435", +"New document": "\u0421\u0442\u0432\u043e\u0440\u0438\u0442\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442", +"Ok": "\u0413\u0430\u0440\u0430\u0437\u0434", +"Cancel": "\u0421\u043a\u0430\u0441\u0443\u0432\u0430\u0442\u0438", +"Visual aids": "\u041d\u0430\u043e\u0447\u043d\u0456 \u043f\u0440\u0438\u043b\u0430\u0434\u0434\u044f", +"Bold": "\u0416\u0438\u0440\u043d\u0438\u0439", +"Italic": "\u041a\u0443\u0440\u0441\u0438\u0432", +"Underline": "\u041f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f", +"Strikethrough": "\u041f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f", +"Superscript": "\u041d\u0430\u0434\u0440\u044f\u0434\u043a\u043e\u0432\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b", +"Subscript": "\u041f\u0456\u0434\u0440\u044f\u0434\u043a\u043e\u0432\u0438\u0439 \u0441\u0438\u043c\u0432\u043e\u043b", +"Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f", +"Align left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Align center": "\u0412\u0438\u0440\u0456\u0432\u043d\u044f\u0442\u0438 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Align right": "\u0412\u0438\u0440\u0456\u0432\u043d\u044f\u0442\u0438 \u0437\u0430 \u043f\u0440\u0430\u0432\u0438\u043c \u043a\u0440\u0430\u0454\u043c", +"Justify": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"Bullet list": "\u041d\u0435\u043d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a", +"Decrease indent": "\u0417\u043c\u0435\u043d\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f", +"Increase indent": "\u0417\u0431\u0456\u043b\u044c\u0448\u0438\u0442\u0438 \u0432\u0456\u0434\u0441\u0442\u0443\u043f", +"Close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438", +"Formats": "\u0424\u043e\u0440\u043c\u0430\u0442\u0438", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454 \u043f\u0440\u044f\u043c\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u043e \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0456\u043d\u0443. \u0412\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0439\u0442\u0435 \u043d\u0430\u0442\u043e\u043c\u0456\u0441\u0442\u044c \u0441\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044f \u043a\u043b\u0430\u0432\u0456\u0448 Ctrl\u00a0+\u00a0C\/V\/X.", +"Headers": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b\u0438", +"Header 1": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 1", +"Header 2": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 2", +"Header 3": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 3", +"Header 4": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 4", +"Header 5": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 5", +"Header 6": "\u041a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b 6", +"Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438", +"Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1", +"Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2", +"Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3", +"Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4", +"Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5", +"Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6", +"Preformatted": "\u0424\u043e\u0440\u043c\u0430\u0442\u043e\u0432\u0430\u043d\u0438\u0439", +"Div": "\u0411\u043b\u043e\u043a", +"Pre": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0454 \u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f", +"Code": "\u041a\u043e\u0434", +"Paragraph": "\u0410\u0431\u0437\u0430\u0446", +"Blockquote": "\u0411\u043b\u043e\u043a \u0446\u0438\u0442\u0443\u0432\u0430\u043d\u043d\u044f", +"Inline": "\u0420\u044f\u0434\u043a\u043e\u0432\u0438\u0439", +"Blocks": "\u0411\u043b\u043e\u043a\u0438", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u0437\u0434\u0456\u0439\u0441\u043d\u044e\u0454\u0442\u044c\u0441\u044f \u0443 \u0432\u0438\u0433\u043b\u044f\u0434\u0456 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443, \u043f\u043e\u043a\u0438 \u043d\u0435 \u0432\u0456\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u0438 \u0434\u0430\u043d\u0443 \u043e\u043f\u0446\u0456\u044e.", +"Fonts": "\u0428\u0440\u0438\u0444\u0442\u0438", +"Font Sizes": "\u0420\u043e\u0437\u043c\u0456\u0440\u0438 \u0448\u0440\u0438\u0444\u0442\u0443", +"Class": "\u041a\u043b\u0430\u0441", +"Browse for an image": "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044c \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"OR": "\u0410\u0411\u041e", +"Drop an image here": "\u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0456\u0442\u044c \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u044e\u0434\u0438", +"Upload": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438", +"Block": "\u0411\u043b\u043e\u043a", +"Align": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u0439", +"Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0456", +"Disc": "\u041a\u0440\u0443\u0433\u0438", +"Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u0438", +"Lower Alpha": "\u041c\u0430\u043b\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438", +"Lower Greek": "\u041c\u0430\u043b\u0456 \u0433\u0440\u0435\u0446\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438", +"Lower Roman": "\u041c\u0430\u043b\u0456 \u0440\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438", +"Upper Alpha": "\u0412\u0435\u043b\u0438\u043a\u0456 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0456 \u0431\u0443\u043a\u0432\u0438", +"Upper Roman": "\u0420\u0438\u043c\u0441\u044c\u043a\u0456 \u0446\u0438\u0444\u0440\u0438", +"Anchor...": "\u042f\u043a\u0456\u0440\u2026", +"Name": "\u041d\u0430\u0437\u0432\u0430", +"Id": "\u041a\u043e\u0434", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u041a\u043e\u0434 \u043c\u0430\u0454 \u043f\u043e\u0447\u0438\u043d\u0430\u0442\u0438\u0441\u044f \u0437 \u043b\u0456\u0442\u0435\u0440\u0438 \u0456 \u043c\u043e\u0436\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u043b\u0438\u0448\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u0438 \u043b\u0456\u0442\u0435\u0440, \u0446\u0438\u0444\u0440, \u0434\u0435\u0444\u0456\u0441\u0443, \u043a\u0440\u0430\u043f\u043a\u0438, \u043a\u043e\u043c\u0438 \u0430\u0431\u043e \u043d\u0438\u0436\u043d\u044c\u043e\u0433\u043e \u043f\u0456\u0434\u043a\u0440\u0435\u0441\u043b\u0435\u043d\u043d\u044f.", +"You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0412\u0430\u0441 \u0454 \u043d\u0435\u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u0456 \u0437\u043c\u0456\u043d\u0438. \u0412\u0438 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0449\u043e \u0445\u043e\u0447\u0435\u0442\u0435 \u043f\u0456\u0442\u0438?", +"Restore last draft": "\u0412\u0456\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044f \u043e\u0441\u0442\u0430\u043d\u043d\u044c\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0443", +"Special characters...": "\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438\u2026", +"Source code": "\u0412\u0438\u0445\u0456\u0434\u043d\u0438\u0439 \u043a\u043e\u0434", +"Insert\/Edit code sample": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u043a\u043e\u0434\u0443", +"Language": "\u041c\u043e\u0432\u0430", +"Code sample...": "\u041f\u0440\u0438\u043a\u043b\u0430\u0434 \u043a\u043e\u0434\u0443\u2026", +"Color Picker": "\u041f\u0456\u043f\u0435\u0442\u043a\u0430 \u043a\u043e\u043b\u044c\u043e\u0440\u0443", +"R": "\u0427", +"G": "\u0417", +"B": "\u0411", +"Left to right": "\u0417\u043b\u0456\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e", +"Right to left": "\u0421\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0456\u0432\u043e", +"Emoticons...": "\u0421\u043c\u0430\u0439\u043b\u0438\u043a\u0438\u2026", +"Metadata and Document Properties": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u0456 \u0456 \u0432\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Keywords": "\u041a\u043b\u044e\u0447\u043e\u0432\u0456 \u0441\u043b\u043e\u0432\u0430", +"Description": "\u041e\u043f\u0438\u0441", +"Robots": "\u0420\u043e\u0431\u043e\u0442\u0438", +"Author": "\u0410\u0432\u0442\u043e\u0440", +"Encoding": "\u041a\u043e\u0434\u0443\u0432\u0430\u043d\u043d\u044f", +"Fullscreen": "\u041f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u0438\u0439 \u0440\u0435\u0436\u0438\u043c", +"Action": "\u0414\u0456\u044f", +"Shortcut": "\u042f\u0440\u043b\u0438\u043a", +"Help": "\u0414\u043e\u043f\u043e\u043c\u043e\u0433\u0430", +"Address": "\u0410\u0434\u0440\u0435\u0441\u0430", +"Focus to menubar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u043c\u0435\u043d\u044e", +"Focus to toolbar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445", +"Focus to element path": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u0448\u043b\u044f\u0445\u0443", +"Focus to contextual toolbar": "\u0424\u043e\u043a\u0443\u0441 \u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0456", +"Insert link (if link plugin activated)": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f (\u044f\u043a\u0449\u043e \u043f\u043b\u0430\u0433\u0456\u043d \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u044c \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u0438\u0439)", +"Save (if save plugin activated)": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 (\u044f\u043a\u0449\u043e \u043f\u043b\u0430\u0433\u0456\u043d \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043d\u043d\u044f \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e)", +"Find (if searchreplace plugin activated)": "\u0417\u043d\u0430\u0439\u0442\u0438 (\u044f\u043a\u0449\u043e \u043f\u043b\u0430\u0433\u0456\u043d \u043f\u043e\u0448\u0443\u043a\u0443 \u0430\u043a\u0442\u0438\u0432\u043e\u0432\u0430\u043d\u043e)", +"Plugins installed ({0}):": "\u0412\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0456 \u043f\u043b\u0430\u0433\u0456\u043d\u0438 ({0}):", +"Premium plugins:": "\u041f\u0440\u0435\u043c\u0456\u0443\u043c \u043f\u043b\u0430\u0433\u0456\u043d\u0438:", +"Learn more...": "\u0414\u043e\u0434\u0430\u0442\u043a\u043e\u0432\u043e...", +"You are using {0}": "\u0423 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u0430\u043d\u043d\u0456 {0}", +"Plugins": "\u041f\u043b\u0430\u0433\u0456\u043d\u0438", +"Handy Shortcuts": "\u041a\u043b\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u043d\u0456 \u0441\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u044f", +"Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430 \u043b\u0456\u043d\u0456\u044f", +"Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0437\u043c\u0456\u043d\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Image description": "\u041e\u043f\u0438\u0441 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Source": "\u0414\u0436\u0435\u0440\u0435\u043b\u043e", +"Dimensions": "\u0420\u043e\u0437\u043c\u0456\u0440", +"Constrain proportions": "\u0417\u0431\u0435\u0440\u0456\u0433\u0430\u0442\u0438 \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0456\u0457", +"General": "\u0417\u0430\u0433\u0430\u043b\u044c\u043d\u0456", +"Advanced": "\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u0456", +"Style": "\u0421\u0442\u0438\u043b\u044c", +"Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0440\u0432\u0430\u043b", +"Border": "\u041c\u0435\u0436\u0430", +"Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Image...": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f\u2026", +"Image list": "\u041f\u0435\u0440\u0435\u043b\u0456\u043a \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u044c", +"Rotate counterclockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u043f\u0440\u043e\u0442\u0438 \u0433\u043e\u0434\u0438\u043d\u043d\u0438\u043a\u043e\u0432\u043e\u0457 \u0441\u0442\u0440\u0456\u043b\u043a\u0438", +"Rotate clockwise": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438 \u0437\u0430 \u0433\u043e\u0434\u0438\u043d\u043d\u0438\u043a\u043e\u0432\u043e\u044e \u0441\u0442\u0440\u0456\u043b\u043a\u043e\u044e", +"Flip vertically": "\u0412\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0456", +"Flip horizontally": "\u0412\u0456\u0434\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u0438 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0456", +"Edit image": "\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Image options": "\u041d\u0430\u043b\u0430\u0448\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Zoom in": "\u041d\u0430\u0431\u043b\u0438\u0437\u0438\u0442\u0438", +"Zoom out": "\u0412\u0456\u0434\u0434\u0430\u043b\u0438\u0442\u0438", +"Crop": "\u041e\u0431\u0440\u0456\u0437\u0430\u0442\u0438", +"Resize": "\u0417\u043c\u0456\u043d\u0438\u0442\u0438 \u0440\u043e\u0437\u043c\u0456\u0440", +"Orientation": "\u041e\u0440\u0456\u0454\u043d\u0442\u0430\u0446\u0456\u044f", +"Brightness": "\u042f\u0441\u043a\u0440\u0430\u0432\u0456\u0441\u0442\u044c", +"Sharpen": "\u0427\u0456\u0442\u043a\u0456\u0441\u0442\u044c", +"Contrast": "\u041a\u043e\u043d\u0442\u0440\u0430\u0441\u0442", +"Color levels": "\u0420\u0456\u0432\u043d\u0456 \u043a\u043e\u043b\u044c\u043e\u0440\u0456\u0432", +"Gamma": "\u0413\u0430\u043c\u043c\u0430", +"Invert": "\u0406\u043d\u0432\u0435\u0440\u0441\u0456\u044f", +"Apply": "\u0417\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u0442\u0438", +"Back": "\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u0438\u0441\u044f", +"Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0434\u0430\u0442\u0443\/\u0447\u0430\u0441", +"Date\/time": "\u0414\u0430\u0442\u0430\/\u0447\u0430\u0441", +"Insert\/Edit Link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Text to display": "\u0422\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u0432\u0456\u0434\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Url": "\u0410\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Open link in...": "\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u0432\u2026", +"Current window": "\u0423 \u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456", +"None": "\u041d\u0456", +"New window": "\u0423 \u043d\u043e\u0432\u043e\u043c\u0443 \u0432\u0456\u043a\u043d\u0456", +"Remove link": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Anchors": "\u042f\u043a\u043e\u0440\u0456", +"Link...": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f\u2026", +"Paste or type a link": "\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u0438 \u0430\u0431\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0430\u0434\u0440\u0435\u0441\u0443 \u0435\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0457 \u043f\u043e\u0448\u0442\u0438. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 mailto: \u043f\u0440\u0435\u0444\u0456\u043a\u0441?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0421\u0445\u043e\u0436\u0435, \u0449\u043e \u0432\u0438 \u0432\u0432\u0435\u043b\u0438 \u0437\u043e\u0432\u043d\u0456\u0448\u043d\u0454 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f. \u0412\u0438 \u0431\u0430\u0436\u0430\u0454\u0442\u0435 \u0434\u043e\u0434\u0430\u0442\u0438 http:\/\/ \u043f\u0440\u0435\u0444\u0456\u043a\u0441?", +"Link list": "\u041f\u0435\u0440\u0435\u043b\u0456\u043a \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u044c", +"Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0432\u0456\u0434\u0435\u043e", +"Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0432\u0456\u0434\u0435\u043e", +"Insert\/edit media": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438\/\u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438 \u0430\u0443\u0434\u0456\u043e", +"Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0435 \u0434\u0436\u0435\u0440\u0435\u043b\u043e", +"Alternative source URL": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u0435 \u0434\u0436\u0435\u0440\u0435\u043b\u043e", +"Media poster (Image URL)": "\u0421\u0432\u0456\u0442\u043b\u0438\u043d\u0430 \u043c\u0435\u0434\u0456\u0430 (\u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f)", +"Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0447\u0435:", +"Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438", +"Media...": "\u041c\u0435\u0434\u0456\u0430\u2026", +"Nonbreaking space": "\u041d\u0435\u0440\u043e\u0437\u0440\u0438\u0432\u043d\u0438\u0439 \u043f\u0440\u043e\u0431\u0456\u043b", +"Page break": "\u0420\u043e\u0437\u0440\u0438\u0432 \u0441\u0442\u043e\u0440\u0456\u043d\u043a\u0438", +"Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u044f\u043a \u0442\u0435\u043a\u0441\u0442", +"Preview": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434", +"Print...": "\u0414\u0440\u0443\u043a\u0443\u0432\u0430\u0442\u0438\u2026", +"Save": "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438", +"Find": "\u0417\u043d\u0430\u0439\u0442\u0438", +"Replace with": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u043d\u0430", +"Replace": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438", +"Replace all": "\u0417\u0430\u043c\u0456\u043d\u0438\u0442\u0438 \u0432\u0441\u0435", +"Previous": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439", +"Next": "\u0412\u043d\u0438\u0437", +"Find and replace...": "\u041f\u043e\u0448\u0443\u043a \u0456 \u0437\u0430\u043c\u0456\u043d\u0430\u2026", +"Could not find the specified string.": "\u0412\u043a\u0430\u0437\u0430\u043d\u0438\u0439 \u0440\u044f\u0434\u043e\u043a \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e", +"Match case": "\u0412\u0440\u0430\u0445\u043e\u0432\u0443\u0432\u0430\u0442\u0438 \u0440\u0435\u0433\u0456\u0441\u0442\u0440", +"Find whole words only": "\u0428\u0443\u043a\u0430\u0442\u0438 \u0442\u0456\u043b\u044c\u043a\u0438 \u0446\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430", +"Spell check": "\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0443", +"Ignore": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438", +"Ignore all": "\u0406\u0433\u043d\u043e\u0440\u0443\u0432\u0430\u0442\u0438 \u0432\u0441\u0435", +"Finish": "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438", +"Add to Dictionary": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0434\u043e \u0421\u043b\u043e\u0432\u043d\u0438\u043a\u0430", +"Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e", +"Table properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0442\u0430\u0431\u043b\u0438\u0446\u0456", +"Delete table": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044e", +"Cell": "\u041a\u043e\u043c\u0456\u0440\u043a\u0430", +"Row": "\u0420\u044f\u0434\u043e\u043a", +"Column": "\u0421\u0442\u043e\u0432\u043f\u0435\u0446\u044c", +"Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438", +"Merge cells": "\u041e\u0431'\u0454\u0434\u043d\u0430\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0438", +"Split cell": "\u0420\u043e\u0437\u0431\u0438\u0442\u0438 \u043a\u043e\u043c\u0456\u0440\u043a\u0443", +"Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443", +"Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0440\u043e\u0436\u043d\u0456\u0439 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443", +"Delete row": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a", +"Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438 \u0440\u044f\u0434\u043a\u0430", +"Cut row": "\u0412\u0438\u0440\u0456\u0437\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a", +"Copy row": "\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 \u0440\u044f\u0434\u043e\u043a", +"Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u0432\u0435\u0440\u0445\u0443", +"Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0440\u044f\u0434\u043e\u043a \u0437\u043d\u0438\u0437\u0443", +"Insert column before": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043b\u0456\u0432\u043e\u0440\u0443\u0447", +"Insert column after": "\u0414\u043e\u0434\u0430\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c \u043f\u0440\u0430\u0432\u043e\u0440\u0443\u0447", +"Delete column": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u0441\u0442\u043e\u0432\u043f\u0435\u0446\u044c", +"Cols": "\u0421\u0442\u043e\u0432\u043f\u0446\u0456", +"Rows": "\u0420\u044f\u0434\u043a\u0438", +"Width": "\u0428\u0438\u0440\u0438\u043d\u0430", +"Height": "\u0412\u0438\u0441\u043e\u0442\u0430", +"Cell spacing": "\u0412\u0456\u0434\u0441\u0442\u0430\u043d\u044c \u043c\u0456\u0436 \u043a\u043e\u043c\u0456\u0440\u043a\u0430\u043c\u0438", +"Cell padding": "\u041f\u043e\u043b\u044f \u043a\u043e\u043c\u0456\u0440\u043e\u043a", +"Show caption": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Left": "\u041f\u043e \u043b\u0456\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Cell type": "\u0422\u0438\u043f \u043a\u043e\u043c\u0456\u0440\u043a\u0438", +"Scope": "\u0421\u0444\u0435\u0440\u0430", +"Alignment": "\u0412\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0435 \u0432\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0435 \u0432\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Middle": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443", +"Bottom": "\u041f\u043e \u043d\u0438\u0436\u043d\u044c\u043e\u043c\u0443 \u043a\u0440\u0430\u044e", +"Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Row group": "\u0413\u0440\u0443\u043f\u0430 \u0440\u044f\u0434\u043a\u0456\u0432", +"Column group": "\u0413\u0440\u0443\u043f\u0430 \u0441\u0442\u043e\u0432\u043f\u0446\u0456\u0432", +"Row type": "\u0422\u0438\u043f \u0440\u044f\u0434\u043a\u0430", +"Header": "\u0412\u0435\u0440\u0445\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b", +"Body": "\u0422\u0456\u043b\u043e", +"Footer": "\u041d\u0438\u0436\u043d\u0456\u0439 \u043a\u043e\u043b\u043e\u043d\u0442\u0438\u0442\u0443\u043b", +"Border color": "\u043a\u043e\u043b\u0456\u0440 \u0440\u0430\u043c\u043a\u0438", +"Insert template...": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d\u2026", +"Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u0438", +"Template": "\u0428\u0430\u0431\u043b\u043e\u043d", +"Text color": "\u041a\u043e\u043b\u0456\u0440 \u0442\u0435\u043a\u0441\u0442\u0443", +"Background color": "\u041a\u043e\u043b\u0456\u0440 \u0444\u043e\u043d\u0443", +"Custom...": "\u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044c\u043a\u0438\u0439", +"Custom color": "\u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0446\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u0456\u0440", +"No color": "\u0431\u0435\u0437 \u043a\u043e\u043b\u044c\u043e\u0440\u0443", +"Remove color": "\u0412\u0438\u0434\u0430\u043b\u0438\u0442\u0438 \u043a\u043e\u043b\u0456\u0440", +"Table of Contents": "\u0417\u043c\u0456\u0441\u0442", +"Show blocks": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0431\u043b\u043e\u043a\u0438", +"Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438", +"Word count": "\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u043b\u0456\u0432", +"Words: {0}": "\u041a\u0456\u043b\u044c\u043a\u0456\u0441\u0442\u044c \u0441\u043b\u0456\u0432: {0}", +"{0} words": "{0} \u0441\u043b\u0456\u0432", +"File": "\u0424\u0430\u0439\u043b", +"Edit": "\u0417\u043c\u0456\u043d\u0438\u0442\u0438", +"Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438", +"View": "\u0412\u0438\u0433\u043b\u044f\u0434", +"Format": "\u0424\u043e\u0440\u043c\u0430\u0442", +"Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u044f", +"Tools": "\u0406\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0438", +"Powered by {0}": "\u041f\u0440\u0430\u0446\u044e\u0454 \u043d\u0430 {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT-F9 \u0449\u043e\u0431 \u0432\u0438\u043a\u043b\u0438\u043a\u0430\u0442\u0438 \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0456\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0456\u0432, ALT-0 \u0434\u043b\u044f \u0432\u0438\u043a\u043b\u0438\u043a\u0443 \u0434\u043e\u043f\u043e\u043c\u043e\u0433\u0438.", +"Image title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Border width": "\u0428\u0438\u0440\u0438\u043d\u0430 \u043c\u0435\u0436\u0456", +"Border style": "\u0421\u0442\u0438\u043b\u044c \u043c\u0435\u0436\u0456", +"Error": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430", +"Warn": "\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f", +"Valid": "\u0412\u0456\u0440\u043d\u0438\u0439", +"To open the popup, press Shift+Enter": "\u0429\u043e\u0431 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0441\u043f\u043b\u0438\u0432\u043d\u0435 \u0432\u0456\u043a\u043d\u043e, \u043d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c Shift\u00a0+\u00a0Enter", +"Rich Text Area. Press ALT-0 for help.": "\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432\u0430\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0443. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c ALT\u00a0+\u00a00, \u0449\u043e\u0431 \u0432\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0434\u043e\u0432\u0456\u0434\u043a\u0443.", +"System Font": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u0438\u0439 \u0448\u0440\u0438\u0444\u0442", +"Failed to upload image: {0}": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0432\u0456\u0434\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f: {0}", +"Failed to load plugin: {0} from url {1}": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u043f\u043b\u0430\u0491\u0456\u043d: {0} \u0437\u0430 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f\u043c {1}", +"Failed to load plugin url: {0}": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f \u043d\u0430 \u043f\u043b\u0430\u0491\u0456\u043d: {0}", +"Failed to initialize plugin: {0}": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0456\u043d\u0456\u0446\u0456\u0430\u043b\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u043f\u043b\u0430\u0491\u0456\u043d: {0}", +"example": "\u043f\u0440\u0438\u043a\u043b\u0430\u0434", +"Search": "\u041f\u043e\u0448\u0443\u043a", +"All": "\u0412\u0441\u0435", +"Currency": "\u0412\u0430\u043b\u044e\u0442\u0430", +"Text": "\u0422\u0435\u043a\u0441\u0442", +"Quotations": "\u0426\u0438\u0442\u0443\u0432\u0430\u043d\u043d\u044f", +"Mathematical": "\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438", +"Extended Latin": "\u0420\u043e\u0437\u0448\u0438\u0440\u0435\u043d\u0430 \u043b\u0430\u0442\u0438\u043d\u0438\u0446\u044f", +"Symbols": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438", +"Arrows": "\u0421\u0442\u0440\u0456\u043b\u043a\u0438", +"User Defined": "\u0412\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0456 \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0435\u043c", +"dollar sign": "\u0437\u043d\u0430\u043a \u0434\u043e\u043b\u0430\u0440\u0430", +"currency sign": "\u0437\u043d\u0430\u043a \u0432\u0430\u043b\u044e\u0442\u0438", +"euro-currency sign": "\u0437\u043d\u0430\u043a \u0454\u0432\u0440\u043e", +"colon sign": "\u0437\u043d\u0430\u043a \u0434\u0432\u043e\u043a\u0440\u0430\u043f\u043a\u0438", +"cruzeiro sign": "\u0437\u043d\u0430\u043a \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e", +"french franc sign": "\u0437\u043d\u0430\u043a \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u043e\u0433\u043e \u0444\u0440\u0430\u043d\u043a\u0443", +"lira sign": "\u0437\u043d\u0430\u043a \u043b\u0456\u0440\u0438", +"mill sign": "\u0437\u043d\u0430\u043a \u043c\u0456\u043b\u044e", +"naira sign": "\u0437\u043d\u0430\u043a \u043d\u0430\u0439\u0440\u0438", +"peseta sign": "\u0437\u043d\u0430\u043a \u043f\u0435\u0441\u0435\u0442\u0438", +"rupee sign": "\u0437\u043d\u0430\u043a \u0440\u0443\u043f\u0456\u0457", +"won sign": "\u0437\u043d\u0430\u043a \u0432\u043e\u043d\u0438", +"new sheqel sign": "\u0437\u043d\u0430\u043a \u043d\u043e\u0432\u043e\u0433\u043e \u0448\u0435\u043a\u0435\u043b\u044f", +"dong sign": "\u0437\u043d\u0430\u043a \u0434\u043e\u043d\u0433\u0443", +"kip sign": "\u0437\u043d\u0430\u043a \u043a\u0456\u043f\u0443", +"tugrik sign": "\u0437\u043d\u0430\u043a \u0442\u0443\u0433\u0440\u0438\u043a\u0430", +"drachma sign": "\u0437\u043d\u0430\u043a \u0434\u0440\u0430\u0445\u043c\u0438", +"german penny symbol": "\u0437\u043d\u0430\u043a \u043f\u0444\u0435\u043d\u0456\u0433\u0430", +"peso sign": "\u0437\u043d\u0430\u043a \u043f\u0435\u0441\u043e", +"guarani sign": "\u0437\u043d\u0430\u043a \u0433\u0443\u0430\u0440\u0430\u043d\u0456", +"austral sign": "\u0437\u043d\u0430\u043a \u0430\u0443\u0441\u0442\u0440\u0430\u043b\u044e", +"hryvnia sign": "\u0437\u043d\u0430\u043a \u0433\u0440\u0438\u0432\u043d\u0456", +"cedi sign": "\u0437\u043d\u0430\u043a \u0441\u0435\u0434\u0456", +"livre tournois sign": "\u0437\u043d\u0430\u043a \u0442\u0443\u0440\u0441\u044c\u043a\u043e\u0433\u043e \u043b\u0456\u0432\u0440\u0443", +"spesmilo sign": "\u0437\u043d\u0430\u043a \u0441\u043f\u0435\u0441\u043c\u0456\u043b\u043e", +"tenge sign": "\u0437\u043d\u0430\u043a \u0442\u0435\u043d\u0433\u0435", +"indian rupee sign": "\u0437\u043d\u0430\u043a \u0456\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u0457 \u0440\u0443\u043f\u0456\u0457", +"turkish lira sign": "\u0437\u043d\u0430\u043a \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u043e\u0457 \u043b\u0456\u0440\u0438", +"nordic mark sign": "\u0437\u043d\u0430\u043a \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0457 \u043c\u0430\u0440\u043a\u0438", +"manat sign": "\u0437\u043d\u0430\u043a \u043c\u0430\u043d\u0430\u0442\u0443", +"ruble sign": "\u0437\u043d\u0430\u043a \u0440\u0443\u0431\u043b\u044f", +"yen character": "\u0441\u0438\u043c\u0432\u043e\u043b \u0454\u043d\u0438", +"yuan character": "\u0441\u0438\u043c\u0432\u043e\u043b \u044e\u0430\u043d\u044e", +"yuan character, in hong kong and taiwan": "\u0441\u0438\u043c\u0432\u043e\u043b \u044e\u0430\u043d\u044e \u0432 \u0413\u043e\u043d\u043a\u043e\u043d\u0437\u0456 \u0456 \u0422\u0430\u0439\u0432\u0430\u043d\u0456", +"yen\/yuan character variant one": "\u0441\u0438\u043c\u0432\u043e\u043b \u0454\u043d\u0438\/\u044e\u0430\u043d\u044e, \u043f\u0435\u0440\u0448\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043d\u0442", +"Loading emoticons...": "\u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0435\u043d\u043d\u044f \u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0456\u0432\u2026", +"Could not load emoticons": "\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0438\u0442\u0438 \u0441\u043c\u0430\u0439\u043b\u0438\u043a\u0438", +"People": "\u041b\u044e\u0434\u0438", +"Animals and Nature": "\u0422\u0432\u0430\u0440\u0438\u043d\u0438 \u0442\u0430 \u043f\u0440\u0438\u0440\u043e\u0434\u0430", +"Food and Drink": "\u0407\u0436\u0430 \u0442\u0430 \u043d\u0430\u043f\u043e\u0457", +"Activity": "\u0410\u043a\u0442\u0438\u0432\u043d\u0456\u0441\u0442\u044c", +"Travel and Places": "\u041f\u043e\u0434\u043e\u0440\u043e\u0436\u0456 \u0456 \u043c\u0456\u0441\u0446\u044f", +"Objects": "\u041e\u0431\u2019\u0454\u043a\u0442\u0438", +"Flags": "\u041f\u0440\u0430\u043f\u043e\u0440\u0438", +"Characters": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438", +"Characters (no spaces)": "\u0421\u0438\u043c\u0432\u043e\u043b\u0438 (\u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0456\u043b\u0456\u0432)", +"Error: Form submit field collision.": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430: \u043a\u043e\u043b\u0456\u0437\u0456\u044f \u043f\u043e\u043b\u044f \u0432\u0456\u0434\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044f \u0444\u043e\u0440\u043c\u0438.", +"Error: No form element found.": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430: \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0444\u043e\u0440\u043c\u0438.", +"Update": "\u041e\u043d\u043e\u0432\u0438\u0442\u0438", +"Color swatch": "\u0417\u0440\u0430\u0437\u043e\u043a \u043a\u043e\u043b\u044c\u043e\u0440\u0443", +"Turquoise": "\u0411\u0456\u0440\u044e\u0437\u043e\u0432\u0438\u0439", +"Green": "\u0417\u0435\u043b\u0435\u043d\u0438\u0439", +"Blue": "\u0421\u0438\u043d\u0456\u0439", +"Purple": "\u0424\u0456\u043e\u043b\u0435\u0442\u043e\u0432\u0438\u0439", +"Navy Blue": "\u0422\u0435\u043c\u043d\u043e-\u0441\u0438\u043d\u0456\u0439", +"Dark Turquoise": "\u0422\u0435\u043c\u043d\u043e-\u0431\u0456\u0440\u044e\u0437\u043e\u0432\u0438\u0439", +"Dark Green": "\u0422\u0435\u043c\u043d\u043e-\u0437\u0435\u043b\u0435\u043d\u0438\u0439", +"Medium Blue": "\u0421\u0435\u0440\u0435\u0434\u043d\u044c\u043e-\u0441\u0438\u043d\u0456\u0439", +"Medium Purple": "\u0421\u0435\u0440\u0435\u0434\u043d\u044c\u043e-\u0444\u0456\u043e\u043b\u0435\u0442\u043e\u0432\u0438\u0439", +"Midnight Blue": "\u041e\u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0431\u043b\u0430\u043a\u0438\u0442\u044c", +"Yellow": "\u0416\u043e\u0432\u0442\u0438\u0439", +"Orange": "\u041f\u043e\u043c\u0430\u0440\u0430\u043d\u0447\u0435\u0432\u0438\u0439", +"Red": "\u0427\u0435\u0440\u0432\u043e\u043d\u0438\u0439", +"Light Gray": "\u0421\u0432\u0456\u0442\u043b\u043e-\u0441\u0456\u0440\u0438\u0439", +"Gray": "\u0421\u0456\u0440\u0438\u0439", +"Dark Yellow": "\u0422\u0435\u043c\u043d\u043e-\u0436\u043e\u0432\u0442\u0438\u0439", +"Dark Orange": "\u0422\u0435\u043c\u043d\u043e-\u043f\u043e\u043c\u0430\u0440\u0430\u043d\u0447\u0435\u0432\u0438\u0439", +"Dark Red": "\u0422\u0435\u043c\u043d\u043e-\u0447\u0435\u0440\u0432\u043e\u043d\u0438\u0439", +"Medium Gray": "\u0421\u0435\u0440\u0435\u0434\u043d\u044c\u043e-\u0441\u0456\u0440\u0438\u0439", +"Dark Gray": "\u0422\u0435\u043c\u043d\u043e-\u0441\u0456\u0440\u0438\u0439", +"Black": "\u0427\u043e\u0440\u043d\u0438\u0439", +"White": "\u0411\u0456\u043b\u0438\u0439", +"Switch to or from fullscreen mode": "\u041f\u0435\u0440\u0435\u043c\u0438\u043a\u0430\u043d\u043d\u044f \u043f\u043e\u0432\u043d\u043e\u0435\u043a\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0443", +"Open help dialog": "\u0412\u0456\u0434\u043a\u0440\u0438\u0442\u0438 \u0432\u0456\u043a\u043d\u043e \u0434\u043e\u0432\u0456\u0434\u043a\u0438", +"history": "\u0456\u0441\u0442\u043e\u0440\u0456\u044f", +"styles": "\u0441\u0442\u0438\u043b\u0456", +"formatting": "\u0444\u043e\u0440\u043c\u0430\u0442\u0443\u0432\u0430\u043d\u043d\u044f", +"alignment": "\u0432\u0438\u0440\u0456\u0432\u043d\u044e\u0432\u0430\u043d\u043d\u044f", +"indentation": "\u0432\u0456\u0434\u0441\u0442\u0443\u043f", +"permanent pen": "\u043c\u0430\u0440\u043a\u0435\u0440", +"comments": "\u043a\u043e\u043c\u0435\u043d\u0442\u0430\u0440\u0456", +"Anchor": "\u042f\u043a\u0456\u0440", +"Special character": "\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u0441\u0438\u043c\u0432\u043e\u043b\u0438", +"Code sample": "\u041f\u0440\u0438\u043a\u043b\u0430\u0434 \u043a\u043e\u0434\u0443", +"Color": "\u043a\u043e\u043b\u0456\u0440", +"Emoticons": "\u0415\u043c\u043e\u0446\u0456\u0457", +"Document properties": "\u0412\u043b\u0430\u0441\u0442\u0438\u0432\u043e\u0441\u0442\u0456 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430", +"Image": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Target": "\u0412\u0456\u0434\u043a\u0440\u0438\u0432\u0430\u0442\u0438 \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Link": "\u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f", +"Poster": "\u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f", +"Media": "\u041c\u0435\u0434\u0456\u0430\u0434\u0430\u043d\u0456", +"Print": "\u0414\u0440\u0443\u043a\u0443\u0432\u0430\u0442\u0438", +"Prev": "\u0412\u0433\u043e\u0440\u0443", +"Find and replace": "\u041f\u043e\u0448\u0443\u043a \u0456 \u0437\u0430\u043c\u0456\u043d\u0430", +"Whole words": "\u0426\u0456\u043b\u0456 \u0441\u043b\u043e\u0432\u0430", +"Spellcheck": "\u041f\u0435\u0440\u0435\u0432\u0456\u0440\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u0457", +"Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a", +"Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0448\u0430\u0431\u043b\u043e\u043d" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/vi.js b/common/plugins/editors/tinymce/media/langs/vi.js new file mode 100755 index 0000000000000000000000000000000000000000..a716479401cee3d094e7acc8d92f889a9820129a --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/vi.js @@ -0,0 +1,261 @@ +tinymce.addI18n('vi',{ +"Redo": "L\u00e0m l\u1ea1i", +"Undo": "H\u1ee7y thao t\u00e1c", +"Cut": "C\u1eaft", +"Copy": "Sao ch\u00e9p", +"Paste": "D\u00e1n", +"Select all": "Ch\u1ecdn t\u1ea5t c\u1ea3", +"New document": "T\u1ea1o t\u00e0i li\u1ec7u m\u1edbi", +"Ok": "\u0110\u1ed3ng \u00dd", +"Cancel": "Hu\u1ef7 B\u1ecf", +"Visual aids": "M\u1edf khung so\u1ea1n th\u1ea3o", +"Bold": "In \u0111\u1eadm", +"Italic": "In nghi\u00eang", +"Underline": "G\u1ea1ch d\u01b0\u1edbi", +"Strikethrough": "G\u1ea1ch ngang", +"Superscript": "K\u00fd t\u1ef1 m\u0169", +"Subscript": "K\u00fd t\u1ef1 th\u1ea5p", +"Clear formatting": "L\u01b0\u1ee3c b\u1ecf ph\u1ea7n hi\u1ec7u \u1ee9ng", +"Align left": "Canh tr\u00e1i", +"Align center": "Canh gi\u1eefa", +"Align right": "Canh ph\u1ea3i", +"Justify": "Canh \u0111\u1ec1u hai b\u00ean", +"Bullet list": "Danh s\u00e1ch d\u1ea1ng bi\u1ec3u t\u01b0\u1ee3ng", +"Numbered list": "Danh s\u00e1ch d\u1ea1ng s\u1ed1", +"Decrease indent": "Th\u1ee5t l\u00f9i d\u00f2ng", +"Increase indent": "T\u0103ng kho\u1ea3ng c\u00e1ch d\u00f2ng", +"Close": "\u0110\u00f3ng L\u1ea1i", +"Formats": "\u0110\u1ecbnh d\u1ea1ng", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tr\u00ecnh duy\u1ec7t c\u1ee7a b\u1ea1n kh\u00f4ng h\u1ed7 tr\u1ee3 truy c\u1eadp truy c\u1eadp b\u1ed9 nh\u1edb \u1ea3o, vui l\u00f2ng s\u1eed d\u1ee5ng c\u00e1c t\u1ed5 h\u1ee3p ph\u00edm Ctrl + X, C, V.", +"Headers": "\u0110\u1ea7u trang", +"Header 1": "Ti\u00eau \u0111\u1ec1 1", +"Header 2": "Ti\u00eau \u0111\u1ec1 2", +"Header 3": "Ti\u00eau \u0111\u1ec1 3", +"Header 4": "Ti\u00eau \u0111\u1ec1 4", +"Header 5": "Ti\u00eau \u0111\u1ec1 5", +"Header 6": "Ti\u00eau \u0111\u1ec1 6", +"Headings": "Ph\u1ea7n \u0111\u1ea7u", +"Heading 1": "H1", +"Heading 2": "H2", +"Heading 3": "H3", +"Heading 4": "H4", +"Heading 5": "H5", +"Heading 6": "G6", +"Preformatted": "\u0110\u1ecbnh d\u1ea1ng s\u1eb5n", +"Div": "Khung", +"Pre": "\u0110\u1ecbnh d\u1ea1ng", +"Code": "M\u00e3", +"Paragraph": "\u0110o\u1ea1n v\u0103n", +"Blockquote": "\u0110o\u1ea1n Tr\u00edch D\u1eabn", +"Inline": "C\u00f9ng d\u00f2ng", +"Blocks": "Bao", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Ch\u1ee9c n\u0103ng D\u00e1n \u0111ang trong tr\u1ea1ng th\u00e1i v\u0103n b\u1ea3n \u0111\u01a1n gi\u1ea3n. N\u1ed9i dung s\u1ebd \u0111\u01b0\u1ee3c d\u00e1n d\u01b0\u1edbi d\u1ea1ng v\u0103n b\u1ea3n thu\u1ea7n, kh\u00f4ng c\u00f3 \u0111\u1ecbnh d\u1ea1ng.", +"Font Family": "Ki\u1ec3u ch\u1eef", +"Font Sizes": "C\u1ee1 ch\u1eef", +"Class": "L\u1edbp", +"Browse for an image": "Ch\u00e8n m\u1ed9t h\u00ecnh \u1ea3nh", +"OR": "HO\u1eb6C", +"Drop an image here": "Th\u1ea3 h\u00ecnh \u1ea3nh v\u00e0o \u0111\u00e2y", +"Upload": "T\u1ea3i l\u00ean", +"Block": "Kh\u1ed1i", +"Align": "Canh l\u1ec1", +"Default": "M\u1eb7c \u0111\u1ecbnh", +"Circle": "H\u00ecnh tr\u00f2n", +"Disc": "H\u00ecnh tr\u00f2n d\u1ea1ng m\u1ecfng", +"Square": "\u00d4 vu\u00f4ng", +"Lower Alpha": "K\u00fd t\u1ef1 th\u01b0\u1eddng", +"Lower Greek": "S\u1ed1 hy l\u1ea1p th\u01b0\u1eddng", +"Lower Roman": "S\u1ed1 la m\u00e3 th\u01b0\u1eddng", +"Upper Alpha": "K\u00fd t\u1ef1 hoa", +"Upper Roman": "S\u1ed1 la m\u00e3 hoa", +"Anchor": "Neo", +"Name": "T\u00ean", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.", +"You have unsaved changes are you sure you want to navigate away?": "B\u1ea1n ch\u01b0a l\u01b0u thay \u0111\u1ed5i b\u1ea1n c\u00f3 ch\u1eafc b\u1ea1n mu\u1ed1n di chuy\u1ec3n \u0111i?", +"Restore last draft": "Kh\u00f4i ph\u1ee5c b\u1ea3n g\u1ea7n nh\u1ea5t", +"Special character": "K\u00fd t\u1ef1 \u0111\u1eb7c bi\u1ec7t", +"Source code": "M\u00e3 ngu\u1ed3n", +"Insert\/Edit code sample": "Ch\u00e8n\/S\u1eeda m\u00e3 m\u1eabu", +"Language": "Ng\u00f4n ng\u1eef", +"Code sample": "M\u00e3 m\u1eabu", +"Color": "M\u00e0u s\u1eafc", +"R": "M\u00e0u \u0111\u1ecf", +"G": "M\u00e0u xanh l\u00e1 c\u00e2y", +"B": "M\u00e0u xanh da tr\u1eddi", +"Left to right": "Tr\u00e1i sang ph\u1ea3i", +"Right to left": "Ph\u1ea3i sang tr\u00e1i", +"Emoticons": "Bi\u1ec3u t\u01b0\u1ee3ng c\u1ea3m x\u00fac", +"Document properties": "Thu\u1ed9c t\u00ednh t\u00e0i li\u1ec7u", +"Title": "Ti\u00eau \u0111\u1ec1", +"Keywords": "T\u1eeb kh\u00f3a", +"Description": "M\u00f4 t\u1ea3", +"Robots": "Robots", +"Author": "T\u00e1c gi\u1ea3", +"Encoding": "M\u00e3 h\u00f3a", +"Fullscreen": "To\u00e0n m\u00e0n h\u00ecnh", +"Action": "H\u00e0nh \u0111\u1ed9ng", +"Shortcut": "L\u1ed1i t\u1eaft", +"Help": "Tr\u1ee3 gi\u00fap", +"Address": "\u0110\u1ecba ch\u1ec9", +"Focus to menubar": "Focus to menubar", +"Focus to toolbar": "Focus to toolbar", +"Focus to element path": "Focus to element path", +"Focus to contextual toolbar": "Focus to contextual toolbar", +"Insert link (if link plugin activated)": "Ch\u00e8n \u0111\u01b0\u1eddng d\u1eabn", +"Save (if save plugin activated)": "L\u01b0u", +"Find (if searchreplace plugin activated)": "T\u00ecm ki\u1ebfm", +"Plugins installed ({0}):": "Plugins installed ({0}):", +"Premium plugins:": "Premium plugins:", +"Learn more...": "Learn more...", +"You are using {0}": "You are using {0}", +"Plugins": "Plugins", +"Handy Shortcuts": "Handy Shortcuts", +"Horizontal line": "K\u1ebb ngang", +"Insert\/edit image": "Ch\u00e8n\/s\u1eeda \u1ea3nh", +"Image description": "M\u00f4 t\u1ea3 \u1ea3nh", +"Source": "Ngu\u1ed3n", +"Dimensions": "K\u00edch th\u01b0\u1edbc", +"Constrain proportions": "T\u1ef7 l\u1ec7 h\u1ea1n ch\u1ebf", +"General": "Chung", +"Advanced": "N\u00e2ng cao", +"Style": "Ki\u1ec3u", +"Vertical space": "N\u1eb1m d\u1ecdc", +"Horizontal space": "N\u1eb1m ngang", +"Border": "\u0110\u01b0\u1eddng vi\u1ec1n", +"Insert image": "Ch\u00e8n \u1ea3nh", +"Image": "Image", +"Image list": "Image list", +"Rotate counterclockwise": "Xoay tr\u00e1i", +"Rotate clockwise": "Xoay ph\u1ea3i", +"Flip vertically": "L\u1eadt d\u1ecdc", +"Flip horizontally": "L\u1eadt ngang", +"Edit image": "Ch\u1ec9nh s\u1eeda \u1ea3nh", +"Image options": "T\u00f9y ch\u1ecdn \u1ea3nh", +"Zoom in": "Thu nh\u1ecf", +"Zoom out": "Ph\u00f3ng to", +"Crop": "C\u1eaft \u1ea3nh", +"Resize": "Thay \u0111\u1ed5i k\u00edch th\u01b0\u1edbc", +"Orientation": "\u0110\u1ecbnh h\u01b0\u1edbng", +"Brightness": "\u0110\u1ed9 s\u00e1ng", +"Sharpen": "L\u00e0m s\u1eafc n\u00e9t", +"Contrast": "\u0110\u1ed9 t\u01b0\u01a1ng ph\u1ea3n", +"Color levels": "M\u1ee9c \u0111\u1ed9 m\u00e0u", +"Gamma": "M\u00e0u Gamma", +"Invert": "\u0110\u1ea3o ng\u01b0\u1ee3c", +"Apply": "\u00c1p d\u1ee5ng", +"Back": "Quay l\u1ea1i", +"Insert date\/time": "Ch\u00e8n ng\u00e0y\/th\u00e1ng", +"Date\/time": "Date\/time", +"Insert link": "Ch\u00e8n li\u00ean k\u1ebft", +"Insert\/edit link": "Ch\u00e8n\/s\u1eeda li\u00ean k\u1ebft", +"Text to display": "N\u1ed9i dung hi\u1ec3n th\u1ecb", +"Url": "Url", +"Target": "\u0110\u00edch", +"None": "Kh\u00f4ng", +"New window": "C\u1eeda s\u1ed5 m\u1edbi", +"Remove link": "B\u1ecf li\u00ean k\u1ebft", +"Anchors": "Neo", +"Link": "Link", +"Paste or type a link": "Paste or type a link", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0110\u1ecba ch\u1ec9 URL b\u1ea1n v\u1eeba nh\u1eadp gi\u1ed1ng nh\u01b0 m\u1ed9t \u0111\u1ecba ch\u1ec9 email. B\u1ea1n c\u00f3 mu\u1ed1n th\u00eam ti\u1ec1n t\u1ed1 mailto: kh\u00f4ng?", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0110\u1ecba ch\u1ec9 URL b\u1ea1n v\u1eeba nh\u1eadp gi\u1ed1ng nh\u01b0 m\u1ed9t li\u00ean k\u1ebft. B\u1ea1n c\u00f3 mu\u1ed1n th\u00eam ti\u1ec1n t\u1ed1 http:\/\/ kh\u00f4ng?", +"Link list": "Link list", +"Insert video": "Ch\u00e8n video", +"Insert\/edit video": "Ch\u00e8n\/s\u1eeda video", +"Insert\/edit media": "Insert\/edit media", +"Alternative source": "Ngu\u1ed3n thay th\u1ebf", +"Poster": "Ng\u01b0\u1eddi g\u1eedi", +"Paste your embed code below:": "D\u00e1n m\u00e3 nh\u00fang c\u1ee7a b\u1ea1n d\u01b0\u1edbi \u0111\u00e2y:", +"Embed": "Nh\u00fang", +"Media": "Media", +"Nonbreaking space": "Kh\u00f4ng xu\u1ed1ng h\u00e0ng", +"Page break": "Ng\u1eaft trang", +"Paste as text": "D\u00e1n \u0111o\u1ea1n v\u0103n b\u1ea3n", +"Preview": "Xem th\u1eed", +"Print": "In", +"Save": "L\u01b0u", +"Find": "T\u00ecm ki\u1ebfm", +"Replace with": "Thay th\u1ebf b\u1edfi", +"Replace": "Thay th\u1ebf", +"Replace all": "Thay t\u1ea5t c\u1ea3", +"Prev": "Tr\u01b0\u1edbc", +"Next": "K\u1ebf ti\u1ebfp", +"Find and replace": "T\u00ecm v\u00e0 thay th\u1ebf", +"Could not find the specified string.": "Kh\u00f4ng t\u00ecm th\u1ea5y chu\u1ed7i qui \u0111\u1ecbnh", +"Match case": "Tr\u01b0\u1eddng h\u1ee3p xem", +"Whole words": "To\u00e0n b\u1ed9 t\u1eeb", +"Spellcheck": "Ki\u1ec3m tra ch\u00ednh t\u1ea3", +"Ignore": "B\u1ecf qua", +"Ignore all": "B\u1ecf qua t\u1ea5t", +"Finish": "Ho\u00e0n t\u1ea5t", +"Add to Dictionary": "Th\u00eam v\u00e0o t\u1eeb \u0111i\u1ec3n", +"Insert table": "Th\u00eam b\u1ea3ng", +"Table properties": "Thu\u1ed9c t\u00ednh b\u1ea3ng", +"Delete table": "Xo\u00e1 b\u1ea3ng", +"Cell": "\u00d4", +"Row": "D\u00f2ng", +"Column": "C\u1ed9t", +"Cell properties": "Thu\u1ed9c t\u00ednh \u00f4", +"Merge cells": "Tr\u1ed9n \u00f4", +"Split cell": "Chia c\u1eaft \u00f4", +"Insert row before": "Th\u00eam d\u00f2ng ph\u00eda tr\u00ean", +"Insert row after": "Th\u00eam d\u00f2ng ph\u00eda d\u01b0\u1edbi", +"Delete row": "Xo\u00e1 d\u00f2ng", +"Row properties": "Thu\u1ed9c t\u00ednh d\u00f2ng", +"Cut row": "C\u1eaft d\u00f2ng", +"Copy row": "Sao ch\u00e9p d\u00f2ng", +"Paste row before": "D\u00e1n v\u00e0o ph\u00eda tr\u01b0\u1edbc, tr\u00ean", +"Paste row after": "D\u00e1n v\u00e0o ph\u00eda sau, d\u01b0\u1edbi", +"Insert column before": "Th\u00eam c\u1ed9t b\u00ean tr\u00e1i", +"Insert column after": "Th\u00eam c\u1ed9t b\u00ean ph\u1ea3i", +"Delete column": "Xo\u00e1 c\u1ed9t", +"Cols": "C\u1ed9t", +"Rows": "D\u00f2ng", +"Width": "\u0110\u1ed9 R\u1ed9ng", +"Height": "\u0110\u1ed9 Cao", +"Cell spacing": "Kho\u1ea3ng c\u00e1ch \u00f4", +"Cell padding": "Kho\u1ea3ng c\u00e1ch trong \u00f4", +"Caption": "Ti\u00eau \u0111\u1ec1", +"Left": "Tr\u00e1i", +"Center": "Gi\u1eefa", +"Right": "Ph\u1ea3i", +"Cell type": "Lo\u1ea1i \u00f4", +"Scope": "Quy\u1ec1n", +"Alignment": "Canh ch\u1ec9nh", +"H Align": "L\u1ec1 ngang", +"V Align": "L\u1ec1 d\u1ecdc", +"Top": "Tr\u00ean", +"Middle": "Kho\u1ea3ng gi\u1eefa", +"Bottom": "D\u01b0\u1edbi", +"Header cell": "Ti\u00eau \u0111\u1ec1 \u00f4", +"Row group": "Gom nh\u00f3m d\u00f2ng", +"Column group": "Gom nh\u00f3m c\u1ed9t", +"Row type": "Th\u1ec3 lo\u1ea1i d\u00f2ng", +"Header": "Ti\u00eau \u0111\u1ec1", +"Body": "N\u1ed9i dung", +"Footer": "Ch\u00e2n", +"Border color": "M\u00e0u vi\u1ec1n", +"Insert template": "Th\u00eam m\u1eabu", +"Templates": "M\u1eabu", +"Template": "Template", +"Text color": "M\u00e0u v\u0103n b\u1ea3n", +"Background color": "M\u00e0u n\u1ec1n", +"Custom...": "Tu\u1ef3 ch\u1ec9nh...", +"Custom color": "Tu\u1ef3 ch\u1ec9nh m\u00e0u", +"No color": "Kh\u00f4ng c\u00f3 m\u00e0u", +"Table of Contents": "Table of Contents", +"Show blocks": "Hi\u1ec3n th\u1ecb kh\u1ed1i", +"Show invisible characters": "Hi\u1ec3n th\u1ecb k\u00fd t\u1ef1 \u1ea9n", +"Words: {0}": "T\u1eeb: {0}", +"{0} words": "{0} words", +"File": "T\u1eadp tin", +"Edit": "S\u1eeda", +"Insert": "Ch\u00e8n", +"View": "Xem", +"Format": "\u0110\u1ecbnh d\u1ea1ng", +"Table": "B\u1ea3ng", +"Tools": "C\u00f4ng c\u1ee5", +"Powered by {0}": "Powered by {0}", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "Rich Text Area. B\u1ea5m ALT-F9 m\u1edf menu. B\u1ea5m ALT-F10 m\u1edf thanh c\u00f4ng c\u1ee5. B\u1ea5m ALT-0 m\u1edf tr\u1ee3 gi\u00fap" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/zh_CN.js b/common/plugins/editors/tinymce/media/langs/zh_CN.js new file mode 100755 index 0000000000000000000000000000000000000000..f9d8b5cfd23f1625038794d2f606337692fc81e8 --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/zh_CN.js @@ -0,0 +1,389 @@ +tinymce.addI18n('zh_CN',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u9500", +"Cut": "\u526a\u5207", +"Copy": "\u590d\u5236", +"Paste": "\u7c98\u8d34", +"Select all": "\u5168\u9009", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u786e\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u7f51\u683c\u7ebf", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Underline": "\u4e0b\u5212\u7ebf", +"Strikethrough": "\u5220\u9664\u7ebf", +"Superscript": "\u4e0a\u6807", +"Subscript": "\u4e0b\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u8fb9\u5bf9\u9f50", +"Align center": "\u4e2d\u95f4\u5bf9\u9f50", +"Align right": "\u53f3\u8fb9\u5bf9\u9f50", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", +"Increase indent": "\u589e\u52a0\u7f29\u8fdb", +"Close": "\u5173\u95ed", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"Headers": "\u6807\u9898", +"Header 1": "\u6807\u98981", +"Header 2": "\u6807\u98982", +"Header 3": "\u6807\u98983", +"Header 4": "\u6807\u98984", +"Header 5": "\u6807\u98985", +"Header 6": "\u6807\u98986", +"Headings": "\u6807\u9898", +"Heading 1": "\u6807\u98981", +"Heading 2": "\u6807\u98982", +"Heading 3": "\u6807\u98983", +"Heading 4": "\u6807\u98984", +"Heading 5": "\u6807\u98985", +"Heading 6": "\u6807\u98986", +"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u7801", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u6587\u533a\u5757", +"Inline": "\u6587\u672c", +"Blocks": "\u57fa\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", +"Fonts": "\u5b57\u4f53", +"Font Sizes": "\u5b57\u53f7", +"Class": "\u7c7b\u578b", +"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"OR": "\u6216", +"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", +"Upload": "\u4e0a\u4f20", +"Block": "\u5757", +"Align": "\u5bf9\u9f50", +"Default": "\u9ed8\u8ba4", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Square": "\u65b9\u5757", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Anchor...": "\u951a\u70b9...", +"Name": "\u540d\u79f0", +"Id": "\u6807\u8bc6\u7b26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special characters...": "\u7279\u6b8a\u5b57\u7b26...", +"Source code": "\u6e90\u4ee3\u7801", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", +"Language": "\u8bed\u8a00", +"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Color Picker": "\u9009\u8272\u5668", +"R": "R", +"G": "G", +"B": "B", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", +"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Description": "\u63cf\u8ff0", +"Robots": "\u673a\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7f16\u7801", +"Fullscreen": "\u5168\u5c4f", +"Action": "\u64cd\u4f5c", +"Shortcut": "\u5feb\u6377\u952e", +"Help": "\u5e2e\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", +"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", +"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", +"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", +"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", +"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", +"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u63d2\u4ef6", +"Handy Shortcuts": "\u5feb\u6377\u952e", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Source": "\u5730\u5740", +"Dimensions": "\u5927\u5c0f", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"General": "\u666e\u901a", +"Advanced": "\u9ad8\u7ea7", +"Style": "\u6837\u5f0f", +"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", +"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", +"Border": "\u8fb9\u6846", +"Insert image": "\u63d2\u5165\u56fe\u7247", +"Image...": "\u56fe\u7247...", +"Image list": "\u56fe\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", +"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", +"Edit image": "\u7f16\u8f91\u56fe\u7247", +"Image options": "\u56fe\u7247\u9009\u9879", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7f29\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8c03\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u9510\u5316", +"Contrast": "\u5bf9\u6bd4\u5ea6", +"Color levels": "\u989c\u8272\u5c42\u6b21", +"Gamma": "\u4f3d\u9a6c\u503c", +"Invert": "\u53cd\u8f6c", +"Apply": "\u5e94\u7528", +"Back": "\u540e\u9000", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", +"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Url": "\u5730\u5740", +"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", +"Current window": "\u5f53\u524d\u7a97\u53e3", +"None": "\u65e0", +"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", +"Remove link": "\u5220\u9664\u94fe\u63a5", +"Anchors": "\u951a\u70b9", +"Link...": "\u94fe\u63a5...", +"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", +"Link list": "\u94fe\u63a5\u5217\u8868", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", +"Alternative source": "\u955c\u50cf", +"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", +"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", +"Embed": "\u5185\u5d4c", +"Media...": "\u591a\u5a92\u4f53...", +"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", +"Preview": "\u9884\u89c8", +"Print...": "\u6253\u5370...", +"Save": "\u4fdd\u5b58", +"Find": "\u67e5\u627e", +"Replace with": "\u66ff\u6362\u4e3a", +"Replace": "\u66ff\u6362", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Previous": "\u4e0a\u4e00\u4e2a", +"Next": "\u4e0b\u4e00\u4e2a", +"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", +"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", +"Match case": "\u533a\u5206\u5927\u5c0f\u5199", +"Find whole words only": "\u5168\u5b57\u5339\u914d", +"Spell check": "\u62fc\u5199\u68c0\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Delete table": "\u5220\u9664\u8868\u683c", +"Cell": "\u5355\u5143\u683c", +"Row": "\u884c", +"Column": "\u5217", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", +"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", +"Delete row": "\u5220\u9664\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Cut row": "\u526a\u5207\u884c", +"Copy row": "\u590d\u5236\u884c", +"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", +"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", +"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", +"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Delete column": "\u5220\u9664\u5217", +"Cols": "\u5217", +"Rows": "\u884c", +"Width": "\u5bbd", +"Height": "\u9ad8", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Show caption": "\u663e\u793a\u6807\u9898", +"Left": "\u5de6\u5bf9\u9f50", +"Center": "\u5c45\u4e2d", +"Right": "\u53f3\u5bf9\u9f50", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Scope": "\u8303\u56f4", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"H Align": "\u6c34\u5e73\u5bf9\u9f50", +"V Align": "\u5782\u76f4\u5bf9\u9f50", +"Top": "\u9876\u90e8\u5bf9\u9f50", +"Middle": "\u5782\u76f4\u5c45\u4e2d", +"Bottom": "\u5e95\u90e8\u5bf9\u9f50", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Row group": "\u884c\u7ec4", +"Column group": "\u5217\u7ec4", +"Row type": "\u884c\u7c7b\u578b", +"Header": "\u8868\u5934", +"Body": "\u8868\u4f53", +"Footer": "\u8868\u5c3e", +"Border color": "\u8fb9\u6846\u989c\u8272", +"Insert template...": "\u63d2\u5165\u6a21\u677f...", +"Templates": "\u6a21\u677f", +"Template": "\u6a21\u677f", +"Text color": "\u6587\u5b57\u989c\u8272", +"Background color": "\u80cc\u666f\u8272", +"Custom...": "\u81ea\u5b9a\u4e49...", +"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", +"No color": "\u65e0", +"Remove color": "\u79fb\u9664\u989c\u8272", +"Table of Contents": "\u5185\u5bb9\u5217\u8868", +"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", +"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", +"Word count": "\u5b57\u6570", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"{0} words": "{0} \u5b57", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Insert": "\u63d2\u5165", +"View": "\u89c6\u56fe", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531{0}\u9a71\u52a8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Image title": "\u56fe\u7247\u6807\u9898", +"Border width": "\u8fb9\u6846\u5bbd\u5ea6", +"Border style": "\u8fb9\u6846\u6837\u5f0f", +"Error": "\u9519\u8bef", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", +"System Font": "\u7cfb\u7edf\u5b57\u4f53", +"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", +"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", +"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", +"example": "\u793a\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8d27\u5e01", +"Text": "\u6587\u5b57", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6570\u5b66", +"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", +"Symbols": "\u7b26\u53f7", +"Arrows": "\u7bad\u5934", +"User Defined": "\u81ea\u5b9a\u4e49", +"dollar sign": "\u7f8e\u5143\u7b26\u53f7", +"currency sign": "\u8d27\u5e01\u7b26\u53f7", +"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", +"colon sign": "\u5192\u53f7", +"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", +"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", +"lira sign": "\u91cc\u62c9\u7b26\u53f7", +"mill sign": "\u5bc6\u5c14\u7b26\u53f7", +"naira sign": "\u5948\u62c9\u7b26\u53f7", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", +"rupee sign": "\u5362\u6bd4\u7b26\u53f7", +"won sign": "\u97e9\u5143\u7b26\u53f7", +"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", +"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", +"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", +"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", +"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", +"peso sign": "\u6bd4\u7d22\u7b26\u53f7", +"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", +"austral sign": "\u6fb3\u5143\u7b26\u53f7", +"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", +"cedi sign": "\u585e\u5730\u7b26\u53f7", +"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", +"spesmilo sign": "spesmilo\u7b26\u53f7", +"tenge sign": "\u575a\u6208\u7b26\u53f7", +"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", +"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", +"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", +"ruble sign": "\u5362\u5e03\u7b26\u53f7", +"yen character": "\u65e5\u5143\u5b57\u6837", +"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", +"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", +"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", +"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", +"People": "\u4eba\u7c7b", +"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", +"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", +"Activity": "\u6d3b\u52a8", +"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u5e1c", +"Characters": "\u5b57\u7b26", +"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", +"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", +"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u989c\u8272\u6837\u672c", +"Turquoise": "\u9752\u7eff\u8272", +"Green": "\u7eff\u8272", +"Blue": "\u84dd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6d77\u519b\u84dd", +"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", +"Dark Green": "\u6df1\u7eff\u8272", +"Medium Blue": "\u4e2d\u84dd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u6df1\u84dd\u8272", +"Yellow": "\u9ec4\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7ea2\u8272", +"Light Gray": "\u6d45\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6697\u9ec4\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6df1\u7ea2\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", +"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", +"history": "\u5386\u53f2", +"styles": "\u6837\u5f0f", +"formatting": "\u683c\u5f0f\u5316", +"alignment": "\u5bf9\u9f50", +"indentation": "\u7f29\u8fdb", +"permanent pen": "\u8bb0\u53f7\u7b14", +"comments": "\u5907\u6ce8", +"Anchor": "\u951a\u70b9", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Code sample": "\u4ee3\u7801\u793a\u4f8b", +"Color": "\u989c\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Image": "\u56fe\u7247", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"Target": "\u6253\u5f00\u65b9\u5f0f", +"Link": "\u94fe\u63a5", +"Poster": "\u5c01\u9762", +"Media": "\u5a92\u4f53", +"Print": "\u6253\u5370", +"Prev": "\u4e0a\u4e00\u4e2a", +"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", +"Whole words": "\u5168\u5b57\u5339\u914d", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Caption": "\u6807\u9898", +"Insert template": "\u63d2\u5165\u6a21\u677f" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/langs/zh_TW.js b/common/plugins/editors/tinymce/media/langs/zh_TW.js new file mode 100755 index 0000000000000000000000000000000000000000..b724d56133c79103d75291628f497155a428c16d --- /dev/null +++ b/common/plugins/editors/tinymce/media/langs/zh_TW.js @@ -0,0 +1,389 @@ +tinymce.addI18n('zh_TW',{ +"Redo": "\u91cd\u505a", +"Undo": "\u64a4\u92b7", +"Cut": "\u526a\u4e0b", +"Copy": "\u8907\u88fd", +"Paste": "\u8cbc\u4e0a", +"Select all": "\u5168\u9078", +"New document": "\u65b0\u6587\u4ef6", +"Ok": "\u78ba\u5b9a", +"Cancel": "\u53d6\u6d88", +"Visual aids": "\u5c0f\u5e6b\u624b", +"Bold": "\u7c97\u9ad4", +"Italic": "\u659c\u9ad4", +"Underline": "\u4e0b\u5283\u7dda", +"Strikethrough": "\u522a\u9664\u7dda", +"Superscript": "\u4e0a\u6a19", +"Subscript": "\u4e0b\u6a19", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Align left": "\u5de6\u908a\u5c0d\u9f4a", +"Align center": "\u4e2d\u9593\u5c0d\u9f4a", +"Align right": "\u53f3\u908a\u5c0d\u9f4a", +"Justify": "\u5de6\u53f3\u5c0d\u9f4a", +"Bullet list": "\u9805\u76ee\u6e05\u55ae", +"Numbered list": "\u6578\u5b57\u6e05\u55ae", +"Decrease indent": "\u6e1b\u5c11\u7e2e\u6392", +"Increase indent": "\u589e\u52a0\u7e2e\u6392", +"Close": "\u95dc\u9589", +"Formats": "\u683c\u5f0f", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u60a8\u7684\u700f\u89bd\u5668\u4e0d\u652f\u63f4\u5b58\u53d6\u526a\u8cbc\u7c3f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5feb\u901f\u9375 Ctrl + X\/C\/V \u4ee3\u66ff\u526a\u4e0b\u3001\u8907\u88fd\u8207\u8cbc\u4e0a\u3002", +"Headers": "\u6a19\u984c", +"Header 1": "\u6a19\u984c 1", +"Header 2": "\u6a19\u984c 2", +"Header 3": "\u6a19\u984c 3", +"Header 4": "\u6a19\u984c 4", +"Header 5": "\u6a19\u984c 5", +"Header 6": "\u6a19\u984c 6", +"Headings": "\u6a19\u984c", +"Heading 1": "\u6a19\u984c1", +"Heading 2": "\u6a19\u984c2", +"Heading 3": "\u6a19\u984c3", +"Heading 4": "\u6a19\u984c4", +"Heading 5": "\u6a19\u984c5", +"Heading 6": "\u6a19\u984c6", +"Preformatted": "\u9810\u5148\u683c\u5f0f\u5316\u7684", +"Div": "Div", +"Pre": "Pre", +"Code": "\u4ee3\u78bc", +"Paragraph": "\u6bb5\u843d", +"Blockquote": "\u5f15\u7528", +"Inline": "\u5167\u806f", +"Blocks": "\u57fa\u584a", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u76ee\u524d\u5c07\u4ee5\u7d14\u6587\u5b57\u7684\u6a21\u5f0f\u8cbc\u4e0a\uff0c\u60a8\u53ef\u4ee5\u518d\u9ede\u9078\u4e00\u6b21\u53d6\u6d88\u3002", +"Fonts": "\u5b57\u578b", +"Font Sizes": "\u5b57\u578b\u5927\u5c0f", +"Class": "\u985e\u578b", +"Browse for an image": "\u5f9e\u5716\u7247\u4e2d\u700f\u89bd", +"OR": "\u6216", +"Drop an image here": "\u62d6\u66f3\u5716\u7247\u81f3\u6b64", +"Upload": "\u4e0a\u50b3", +"Block": "\u5340\u584a", +"Align": "\u5c0d\u9f4a", +"Default": "\u9810\u8a2d", +"Circle": "\u7a7a\u5fc3\u5713", +"Disc": "\u5be6\u5fc3\u5713", +"Square": "\u6b63\u65b9\u5f62", +"Lower Alpha": "\u5c0f\u5beb\u82f1\u6587\u5b57\u6bcd", +"Lower Greek": "\u5e0c\u81d8\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5beb\u7f85\u99ac\u6578\u5b57", +"Upper Alpha": "\u5927\u5beb\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5beb\u7f85\u99ac\u6578\u5b57", +"Anchor...": "\u9328\u9ede...", +"Name": "\u540d\u7a31", +"Id": "Id", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "Id\u61c9\u4ee5\u5b57\u6bcd\u958b\u982d\uff0c\u5f8c\u9762\u63a5\u8457\u5b57\u6bcd\uff0c\u6578\u5b57\uff0c\u7834\u6298\u865f\uff0c\u9ede\u6578\uff0c\u5192\u865f\u6216\u4e0b\u5283\u7dda\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u7de8\u8f2f\u5c1a\u672a\u88ab\u5132\u5b58\uff0c\u4f60\u78ba\u5b9a\u8981\u96e2\u958b\uff1f", +"Restore last draft": "\u8f09\u5165\u4e0a\u4e00\u6b21\u7de8\u8f2f\u7684\u8349\u7a3f", +"Special characters...": "\u7279\u6b8a\u5b57\u5143...", +"Source code": "\u539f\u59cb\u78bc", +"Insert\/Edit code sample": "\u63d2\u5165\/\u7de8\u8f2f \u7a0b\u5f0f\u78bc\u7bc4\u4f8b", +"Language": "\u8a9e\u8a00", +"Code sample...": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b...", +"Color Picker": "\u9078\u8272\u5668", +"R": "\u7d05", +"G": "\u7da0", +"B": "\u85cd", +"Left to right": "\u5f9e\u5de6\u5230\u53f3", +"Right to left": "\u5f9e\u53f3\u5230\u5de6", +"Emoticons...": "\u8868\u60c5\u7b26\u865f\u2026", +"Metadata and Document Properties": "\u5f8c\u8a2d\u8cc7\u6599\u8207\u6587\u4ef6\u5c6c\u6027", +"Title": "\u6a19\u984c", +"Keywords": "\u95dc\u9375\u5b57", +"Description": "\u63cf\u8ff0", +"Robots": "\u6a5f\u5668\u4eba", +"Author": "\u4f5c\u8005", +"Encoding": "\u7de8\u78bc", +"Fullscreen": "\u5168\u87a2\u5e55", +"Action": "\u52d5\u4f5c", +"Shortcut": "\u5feb\u901f\u9375", +"Help": "\u5e6b\u52a9", +"Address": "\u5730\u5740", +"Focus to menubar": "\u8df3\u81f3\u9078\u55ae\u5217", +"Focus to toolbar": "\u8df3\u81f3\u5de5\u5177\u5217", +"Focus to element path": "\u8df3\u81f3HTML\u5143\u7d20\u5217", +"Focus to contextual toolbar": "\u8df3\u81f3\u5feb\u6377\u9078\u55ae", +"Insert link (if link plugin activated)": "\u65b0\u589e\u6377\u5f91 (\u6377\u5f91\u5916\u639b\u555f\u7528\u6642)", +"Save (if save plugin activated)": "\u5132\u5b58 (\u5132\u5b58\u5916\u639b\u555f\u7528\u6642)", +"Find (if searchreplace plugin activated)": "\u5c0b\u627e (\u5c0b\u627e\u53d6\u4ee3\u5916\u639b\u555f\u7528\u6642)", +"Plugins installed ({0}):": "({0}) \u500b\u5916\u639b\u5df2\u5b89\u88dd\uff1a", +"Premium plugins:": "\u52a0\u503c\u5916\u639b\uff1a", +"Learn more...": "\u4e86\u89e3\u66f4\u591a...", +"You are using {0}": "\u60a8\u6b63\u5728\u4f7f\u7528 {0}", +"Plugins": "\u5916\u639b", +"Handy Shortcuts": "\u5feb\u901f\u9375", +"Horizontal line": "\u6c34\u5e73\u7dda", +"Insert\/edit image": "\u63d2\u5165\/\u7de8\u8f2f \u5716\u7247", +"Image description": "\u5716\u7247\u63cf\u8ff0", +"Source": "\u5716\u7247\u7db2\u5740", +"Dimensions": "\u5c3a\u5bf8", +"Constrain proportions": "\u7b49\u6bd4\u4f8b\u7e2e\u653e", +"General": "\u4e00\u822c", +"Advanced": "\u9032\u968e", +"Style": "\u6a23\u5f0f", +"Vertical space": "\u9ad8\u5ea6", +"Horizontal space": "\u5bec\u5ea6", +"Border": "\u908a\u6846", +"Insert image": "\u63d2\u5165\u5716\u7247", +"Image...": "\u5716\u7247...", +"Image list": "\u5716\u7247\u6e05\u55ae", +"Rotate counterclockwise": "\u9006\u6642\u91dd\u65cb\u8f49", +"Rotate clockwise": "\u9806\u6642\u91dd\u65cb\u8f49", +"Flip vertically": "\u5782\u76f4\u7ffb\u8f49", +"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f49", +"Edit image": "\u7de8\u8f2f\u5716\u7247", +"Image options": "\u5716\u7247\u9078\u9805", +"Zoom in": "\u653e\u5927", +"Zoom out": "\u7e2e\u5c0f", +"Crop": "\u88c1\u526a", +"Resize": "\u8abf\u6574\u5927\u5c0f", +"Orientation": "\u65b9\u5411", +"Brightness": "\u4eae\u5ea6", +"Sharpen": "\u92b3\u5316", +"Contrast": "\u5c0d\u6bd4", +"Color levels": "\u984f\u8272\u5c64\u6b21", +"Gamma": "\u4f3d\u99ac\u503c", +"Invert": "\u53cd\u8f49", +"Apply": "\u61c9\u7528", +"Back": "\u5f8c\u9000", +"Insert date\/time": "\u63d2\u5165 \u65e5\u671f\/\u6642\u9593", +"Date\/time": "\u65e5\u671f\/\u6642\u9593", +"Insert\/Edit Link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", +"Insert\/edit link": "\u63d2\u5165\/\u7de8\u8f2f\u9023\u7d50", +"Text to display": "\u986f\u793a\u6587\u5b57", +"Url": "\u7db2\u5740", +"Open link in...": "\u958b\u555f\u9023\u7d50\u65bc...", +"Current window": "\u76ee\u524d\u8996\u7a97", +"None": "\u7121", +"New window": "\u53e6\u958b\u8996\u7a97", +"Remove link": "\u79fb\u9664\u9023\u7d50", +"Anchors": "\u52a0\u5165\u9328\u9ede", +"Link...": "\u9023\u7d50...", +"Paste or type a link": "\u8cbc\u4e0a\u6216\u8f38\u5165\u9023\u7d50", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u70ba\u96fb\u5b50\u90f5\u4ef6\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7db4\u55ce\uff1f", +"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5beb\u7684URL\u5c6c\u65bc\u5916\u90e8\u93c8\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7db4\u55ce\uff1f", +"Link list": "\u9023\u7d50\u6e05\u55ae", +"Insert video": "\u63d2\u5165\u5f71\u97f3", +"Insert\/edit video": "\u63d2\u4ef6\/\u7de8\u8f2f \u5f71\u97f3", +"Insert\/edit media": "\u63d2\u5165\/\u7de8\u8f2f \u5a92\u9ad4", +"Alternative source": "\u66ff\u4ee3\u5f71\u97f3", +"Alternative source URL": "\u66ff\u4ee3\u4f86\u6e90URL", +"Media poster (Image URL)": "\u5a92\u9ad4\u6d77\u5831\uff08\u5f71\u50cfImage URL\uff09", +"Paste your embed code below:": "\u8acb\u5c07\u60a8\u7684\u5d4c\u5165\u5f0f\u7a0b\u5f0f\u78bc\u8cbc\u5728\u4e0b\u9762:", +"Embed": "\u5d4c\u5165\u78bc", +"Media...": "\u5a92\u9ad4...", +"Nonbreaking space": "\u4e0d\u5206\u884c\u7684\u7a7a\u683c", +"Page break": "\u5206\u9801", +"Paste as text": "\u4ee5\u7d14\u6587\u5b57\u8cbc\u4e0a", +"Preview": "\u9810\u89bd", +"Print...": "\u5217\u5370...", +"Save": "\u5132\u5b58", +"Find": "\u641c\u5c0b", +"Replace with": "\u66f4\u63db", +"Replace": "\u66ff\u63db", +"Replace all": "\u66ff\u63db\u5168\u90e8", +"Previous": "\u4e0a\u4e00\u500b", +"Next": "\u4e0b\u4e00\u500b", +"Find and replace...": "\u5c0b\u627e\u53ca\u53d6\u4ee3...", +"Could not find the specified string.": "\u7121\u6cd5\u67e5\u8a62\u5230\u6b64\u7279\u5b9a\u5b57\u4e32", +"Match case": "\u76f8\u5339\u914d\u6848\u4ef6", +"Find whole words only": "\u50c5\u627e\u51fa\u5b8c\u6574\u5b57\u532f", +"Spell check": "\u62fc\u5beb\u6aa2\u67e5", +"Ignore": "\u5ffd\u7565", +"Ignore all": "\u5ffd\u7565\u6240\u6709", +"Finish": "\u5b8c\u6210", +"Add to Dictionary": "\u52a0\u5165\u5b57\u5178\u4e2d", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Table properties": "\u8868\u683c\u5c6c\u6027", +"Delete table": "\u522a\u9664\u8868\u683c", +"Cell": "\u5132\u5b58\u683c", +"Row": "\u5217", +"Column": "\u884c", +"Cell properties": "\u5132\u5b58\u683c\u5c6c\u6027", +"Merge cells": "\u5408\u4f75\u5132\u5b58\u683c", +"Split cell": "\u5206\u5272\u5132\u5b58\u683c", +"Insert row before": "\u63d2\u5165\u5217\u5728...\u4e4b\u524d", +"Insert row after": "\u63d2\u5165\u5217\u5728...\u4e4b\u5f8c", +"Delete row": "\u522a\u9664\u5217", +"Row properties": "\u5217\u5c6c\u6027", +"Cut row": "\u526a\u4e0b\u5217", +"Copy row": "\u8907\u88fd\u5217", +"Paste row before": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u524d", +"Paste row after": "\u8cbc\u4e0a\u5217\u5728...\u4e4b\u5f8c", +"Insert column before": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u524d", +"Insert column after": "\u63d2\u5165\u6b04\u4f4d\u5728...\u4e4b\u5f8c", +"Delete column": "\u522a\u9664\u884c", +"Cols": "\u6b04\u4f4d\u6bb5", +"Rows": "\u5217", +"Width": "\u5bec\u5ea6", +"Height": "\u9ad8\u5ea6", +"Cell spacing": "\u5132\u5b58\u683c\u5f97\u9593\u8ddd", +"Cell padding": "\u5132\u5b58\u683c\u7684\u908a\u8ddd", +"Show caption": "\u986f\u793a\u6a19\u984c", +"Left": "\u5de6\u908a", +"Center": "\u4e2d\u9593", +"Right": "\u53f3\u908a", +"Cell type": "\u5132\u5b58\u683c\u7684\u985e\u578b", +"Scope": "\u7bc4\u570d", +"Alignment": "\u5c0d\u9f4a", +"H Align": "\u6c34\u5e73\u4f4d\u7f6e", +"V Align": "\u5782\u76f4\u4f4d\u7f6e", +"Top": "\u7f6e\u9802", +"Middle": "\u7f6e\u4e2d", +"Bottom": "\u7f6e\u5e95", +"Header cell": "\u6a19\u982d\u5132\u5b58\u683c", +"Row group": "\u5217\u7fa4\u7d44", +"Column group": "\u6b04\u4f4d\u7fa4\u7d44", +"Row type": "\u884c\u7684\u985e\u578b", +"Header": "\u6a19\u982d", +"Body": "\u4e3b\u9ad4", +"Footer": "\u9801\u5c3e", +"Border color": "\u908a\u6846\u984f\u8272", +"Insert template...": "\u63d2\u5165\u6a23\u7248...", +"Templates": "\u6a23\u7248", +"Template": "\u6a23\u677f", +"Text color": "\u6587\u5b57\u984f\u8272", +"Background color": "\u80cc\u666f\u984f\u8272", +"Custom...": "\u81ea\u8a02", +"Custom color": "\u81ea\u8a02\u984f\u8272", +"No color": "No color", +"Remove color": "\u79fb\u9664\u984f\u8272", +"Table of Contents": "\u76ee\u9304", +"Show blocks": "\u986f\u793a\u5340\u584a\u8cc7\u8a0a", +"Show invisible characters": "\u986f\u793a\u96b1\u85cf\u5b57\u5143", +"Word count": "\u8a08\u7b97\u5b57\u6578", +"Words: {0}": "\u5b57\u6578\uff1a{0}", +"{0} words": "{0} \u5b57\u5143", +"File": "\u6a94\u6848", +"Edit": "\u7de8\u8f2f", +"Insert": "\u63d2\u5165", +"View": "\u6aa2\u8996", +"Format": "\u683c\u5f0f", +"Table": "\u8868\u683c", +"Tools": "\u5de5\u5177", +"Powered by {0}": "\u7531 {0} \u63d0\u4f9b", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u8c50\u5bcc\u7684\u6587\u672c\u5340\u57df\u3002\u6309ALT-F9\u524d\u5f80\u4e3b\u9078\u55ae\u3002\u6309ALT-F10\u547c\u53eb\u5de5\u5177\u6b04\u3002\u6309ALT-0\u5c0b\u6c42\u5e6b\u52a9", +"Image title": "\u5716\u7247\u6a19\u984c", +"Border width": "\u6846\u7dda\u5bec\u5ea6", +"Border style": "\u6846\u7dda\u6a23\u5f0f", +"Error": "\u932f\u8aa4", +"Warn": "\u8b66\u544a", +"Valid": "\u6709\u6548", +"To open the popup, press Shift+Enter": "\u8981\u958b\u555f\u5f48\u51fa\u8996\u7a97\uff0c\u8acb\u6309Shift+Enter", +"Rich Text Area. Press ALT-0 for help.": "\u5bcc\u6587\u672c\u5340\u57df\u3002\u8acb\u6309ALT-0\u5c0b\u6c42\u5354\u52a9\u3002", +"System Font": "\u7cfb\u7d71\u5b57\u578b", +"Failed to upload image: {0}": "\u7121\u6cd5\u4e0a\u50b3\u5f71\u50cf\uff1a{0}", +"Failed to load plugin: {0} from url {1}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}\u81eaurl{1}", +"Failed to load plugin url: {0}": "\u7121\u6cd5\u4e0a\u50b3\u63d2\u4ef6\uff1a{0}", +"Failed to initialize plugin: {0}": "\u7121\u6cd5\u555f\u52d5\u63d2\u4ef6\uff1a{0}", +"example": "\u7bc4\u4f8b", +"Search": "\u641c\u7d22", +"All": "\u5168\u90e8", +"Currency": "\u8ca8\u5e63", +"Text": "\u6587\u672c", +"Quotations": "\u5f15\u7528", +"Mathematical": "\u6578\u5b78", +"Extended Latin": "\u62c9\u4e01\u5b57\u6bcd\u64f4\u5145", +"Symbols": "\u7b26\u865f", +"Arrows": "\u7bad\u982d", +"User Defined": "\u4f7f\u7528\u8005\u5df2\u5b9a\u7fa9", +"dollar sign": "\u7f8e\u5143\u7b26\u865f", +"currency sign": "\u8ca8\u5e63\u7b26\u865f", +"euro-currency sign": "\u6b50\u5143\u7b26\u865f", +"colon sign": "\u79d1\u6717\u7b26\u865f", +"cruzeiro sign": "\u514b\u9b6f\u8cfd\u7f85\u7b26\u865f", +"french franc sign": "\u6cd5\u6717\u7b26\u865f", +"lira sign": "\u91cc\u62c9\u7b26\u865f", +"mill sign": "\u6587\u7b26\u865f", +"naira sign": "\u5948\u62c9\u7b26\u865f", +"peseta sign": "\u6bd4\u585e\u5854\u7b26\u865f", +"rupee sign": "\u76e7\u6bd4\u7b26\u865f", +"won sign": "\u97d3\u571c\u7b26\u865f", +"new sheqel sign": "\u65b0\u8b1d\u514b\u723e\u7b26\u865f", +"dong sign": "\u8d8a\u5357\u76fe\u7b26\u865f", +"kip sign": "\u8001\u64be\u5e63\u7b26\u865f", +"tugrik sign": "\u8499\u53e4\u5e63\u7b26\u865f", +"drachma sign": "\u5fb7\u514b\u62c9\u99ac\u7b26\u865f", +"german penny symbol": "\u5fb7\u570b\u5206\u7b26\u865f", +"peso sign": "\u62ab\u7d22\u7b26\u865f", +"guarani sign": "\u5df4\u62c9\u572d\u5e63\u7b26\u865f", +"austral sign": "\u963f\u6839\u5ef7\u5e63\u7b26\u865f", +"hryvnia sign": "\u70cf\u514b\u862d\u5e63\u7b26\u865f", +"cedi sign": "\u8fe6\u7d0d\u5e63\u7b26\u865f", +"livre tournois sign": "\u91cc\u5f17\u723e\u7b26\u865f", +"spesmilo sign": "\u570b\u969b\u5e63\u7b26\u865f", +"tenge sign": "\u54c8\u85a9\u514b\u5e63\u7b26\u865f", +"indian rupee sign": "\u5370\u5ea6\u76e7\u6bd4\u7b26\u865f", +"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9\u7b26\u865f", +"nordic mark sign": "\u5317\u6b50\u99ac\u514b\u7b26\u865f", +"manat sign": "\u4e9e\u585e\u62dc\u7136\u5e63\u7b26\u865f", +"ruble sign": "\u76e7\u5e03\u7b26\u865f", +"yen character": "\u65e5\u5713\u7b26\u865f", +"yuan character": "\u4eba\u6c11\u5e63\u7b26\u865f", +"yuan character, in hong kong and taiwan": "\u6e2f\u5143\u8207\u53f0\u5e63\u7b26\u865f", +"yen\/yuan character variant one": "\u65e5\u5713\/\u4eba\u6c11\u5e63\u7b26\u865f\u8b8a\u5316\u578b", +"Loading emoticons...": "\u8f09\u5165\u8868\u60c5\u7b26\u865f\u2026", +"Could not load emoticons": "\u7121\u6cd5\u8f09\u5165\u8868\u60c5\u7b26\u865f", +"People": "\u4eba", +"Animals and Nature": "\u52d5\u7269\u8207\u81ea\u7136", +"Food and Drink": "\u98f2\u98df", +"Activity": "\u6d3b\u52d5", +"Travel and Places": "\u65c5\u884c\u8207\u5730\u9ede", +"Objects": "\u7269\u4ef6", +"Flags": "\u65d7\u6a19", +"Characters": "\u5b57\u5143", +"Characters (no spaces)": "\u5b57\u5143\uff08\u7121\u7a7a\u683c\uff09", +"Error: Form submit field collision.": "\u932f\u8aa4\uff1a\u8868\u683c\u905e\u4ea4\u6b04\u4f4d\u885d\u7a81\u3002", +"Error: No form element found.": "\u932f\u8aa4\uff1a\u627e\u4e0d\u5230\u8868\u683c\u5143\u7d20\u3002", +"Update": "\u66f4\u65b0", +"Color swatch": "\u8272\u5f69\u6a23\u672c", +"Turquoise": "\u571f\u8033\u5176\u85cd", +"Green": "\u7da0\u8272", +"Blue": "\u85cd\u8272", +"Purple": "\u7d2b\u8272", +"Navy Blue": "\u6df1\u85cd\u8272", +"Dark Turquoise": "\u6df1\u571f\u8033\u5176\u85cd", +"Dark Green": "\u6df1\u7da0\u8272", +"Medium Blue": "\u4e2d\u85cd\u8272", +"Medium Purple": "\u4e2d\u7d2b\u8272", +"Midnight Blue": "\u9ed1\u85cd\u8272", +"Yellow": "\u9ec3\u8272", +"Orange": "\u6a59\u8272", +"Red": "\u7d05\u8272", +"Light Gray": "\u6dfa\u7070\u8272", +"Gray": "\u7070\u8272", +"Dark Yellow": "\u6df1\u9ec3\u8272", +"Dark Orange": "\u6df1\u6a59\u8272", +"Dark Red": "\u6697\u7d05\u8272", +"Medium Gray": "\u4e2d\u7070\u8272", +"Dark Gray": "\u6df1\u7070\u8272", +"Black": "\u9ed1\u8272", +"White": "\u767d\u8272", +"Switch to or from fullscreen mode": "\u8f49\u63db\u81ea\/\u81f3\u5168\u87a2\u5e55\u6a21\u5f0f", +"Open help dialog": "\u958b\u555f\u5354\u52a9\u5c0d\u8a71", +"history": "\u6b77\u53f2", +"styles": "\u6a23\u5f0f", +"formatting": "\u683c\u5f0f", +"alignment": "\u5c0d\u9f4a", +"indentation": "\u7e2e\u6392", +"permanent pen": "\u6c38\u4e45\u6027\u7b46", +"comments": "\u8a3b\u89e3", +"Anchor": "\u52a0\u5165\u9328\u9ede", +"Special character": "\u7279\u6b8a\u5b57\u5143", +"Code sample": "\u7a0b\u5f0f\u78bc\u7bc4\u4f8b", +"Color": "\u984f\u8272", +"Emoticons": "\u8868\u60c5", +"Document properties": "\u6587\u4ef6\u7684\u5c6c\u6027", +"Image": "\u5716\u7247", +"Insert link": "\u63d2\u5165\u9023\u7d50", +"Target": "\u958b\u555f\u65b9\u5f0f", +"Link": "\u9023\u7d50", +"Poster": "\u9810\u89bd\u5716\u7247", +"Media": "\u5a92\u9ad4", +"Print": "\u5217\u5370", +"Prev": "\u4e0a\u4e00\u500b", +"Find and replace": "\u5c0b\u627e\u53ca\u53d6\u4ee3", +"Whole words": "\u6574\u500b\u55ae\u5b57", +"Spellcheck": "\u62fc\u5b57\u6aa2\u67e5", +"Caption": "\u8868\u683c\u6a19\u984c", +"Insert template": "\u63d2\u5165\u6a23\u7248" +}); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/license.txt b/common/plugins/editors/tinymce/media/license.txt new file mode 100755 index 0000000000000000000000000000000000000000..b17fc90494cf7573951fdbcccc9d2df35ad95797 --- /dev/null +++ b/common/plugins/editors/tinymce/media/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 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. + +[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 + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/common/plugins/editors/tinymce/media/plugins/advlist/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/advlist/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..d45a47f66930a783d94c075a4c8b5661d2975dea --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/advlist/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(){"use strict";function n(){}function o(n){return function(){return n}}function t(){return d}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(n,t,e){var r="UL"===t?"InsertUnorderedList":"InsertOrderedList";n.execCommand(r,!1,!1===e?null:{"list-style-type":e})},i=function(e){e.addCommand("ApplyUnorderedListStyle",function(n,t){l(e,"UL",t["list-style-type"])}),e.addCommand("ApplyOrderedListStyle",function(n,t){l(e,"OL",t["list-style-type"])})},c=function(n){var t=n.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman");return t?t.split(/[ ,]/):[]},s=function(n){var t=n.getParam("advlist_bullet_styles","default,circle,square");return t?t.split(/[ ,]/):[]},f=o(!1),a=o(!0),d=(e={fold:function(n,t){return n()},is:f,isSome:f,isNone:a,getOr:m,getOrThunk:p,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:m,orThunk:p,map:t,each:n,bind:t,exists:f,forall:a,filter:t,equals:g,equals_:g,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(e),e);function g(n){return n.isNone()}function p(n){return n()}function m(n){return n}function y(n,t,e){var r=function(n,t){for(var e=0;ey(e)&&(i=o+g);var l=z(e);if(l&&l]*>((\xa0| |[ \t]|]*>)+?|)|
$","i").test(e)}function i(t){var e=parseInt(v.getItem(o(t)+"time"),10)||0;return!((new Date).getTime()-e>function(t){return r(t.settings.autosave_retention,"20m")}(t))||(g(t,!1),!1)}function u(t){var e=o(t);!a(t)&&t.isDirty()&&(v.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),v.setItem(e+"time",(new Date).getTime().toString()),function(t){t.fire("StoreDraft")}(t))}function s(t){var e=o(t);i(t)&&(t.setContent(v.getItem(e+"draft"),{format:"raw"}),function(t){t.fire("RestoreDraft")}(t))}function c(t,e){var n=function(t){return r(t.settings.autosave_interval,"30s")}(t);e.get()||(m.setInterval(function(){t.removed||u(t)},n),e.set(!0))}function f(t){t.undoManager.transact(function(){s(t),g(t)}),t.focus()}var l=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return l(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),m=tinymce.util.Tools.resolve("tinymce.util.Delay"),v=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),d=tinymce.util.Tools.resolve("tinymce.util.Tools"),g=function(t,e){var n=o(t);v.removeItem(n+"draft"),v.removeItem(n+"time"),!1!==e&&function(t){t.fire("RemoveDraft")}(t)};function y(r){for(var o=[],t=1;t(.*?)<\/a>/gi,"[url=$1]$2[/url]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),o(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),o(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),o(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),o(/(.*?)<\/font>/gi,"$1"),o(//gi,"[img]$1[/img]"),o(/(.*?)<\/span>/gi,"[code]$1[/code]"),o(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),o(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),o(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),o(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),o(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),o(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),o(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),o(/<\/(strong|b)>/gi,"[/b]"),o(/<(strong|b)>/gi,"[b]"),o(/<\/(em|i)>/gi,"[/i]"),o(/<(em|i)>/gi,"[i]"),o(/<\/u>/gi,"[/u]"),o(/(.*?)<\/span>/gi,"[u]$1[/u]"),o(//gi,"[u]"),o(/]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/
/gi,"\n"),o(//gi,"\n"),o(/
/gi,"\n"),o(/

/gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),t},i=function(t){t=e.trim(t);function o(o,e){t=t.replace(o,e)}return o(/\n/gi,"
"),o(/\[b\]/gi,""),o(/\[\/b\]/gi,""),o(/\[i\]/gi,""),o(/\[\/i\]/gi,""),o(/\[u\]/gi,""),o(/\[\/u\]/gi,""),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2'),o(/\[url\](.*?)\[\/url\]/gi,'$1'),o(/\[img\](.*?)\[\/img\]/gi,''),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),o(/\[code\](.*?)\[\/code\]/gi,'$1 '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),t};!function n(){o.add("bbcode",function(o){o.on("BeforeSetContent",function(o){o.content=i(o.content)}),o.on("PostProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=t(o.content))})})}()}(); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/charmap/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/charmap/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..edce6e6115a0a90b22c9ac17b79c5cc785464c6d --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/charmap/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(c){"use strict";function n(){}function i(n){return function(){return n}}function e(){return m}var r,t=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=function(n,e){return n.fire("insertCustomChar",{chr:e})},u=function(n,e){var r=a(n,e).chr;n.execCommand("mceInsertContent",!1,r)},o=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(n){return n.settings.charmap},l=function(n){return n.settings.charmap_append},f=i(!1),g=i(!0),m=(r={fold:function(n,e){return n()},is:f,isSome:f,isNone:g,getOr:p,getOrThunk:d,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:i(null),getOrUndefined:i(undefined),or:p,orThunk:d,map:e,each:n,bind:e,exists:f,forall:g,filter:e,equals:h,equals_:h,toArray:function(){return[]},toString:i("none()")},Object.freeze&&Object.freeze(r),r);function h(n){return n.isNone()}function d(n){return n()}function p(n){return n}function y(e){return function(n){return function(n){if(null===n)return"null";var e=typeof n;return"object"==e&&(Array.prototype.isPrototypeOf(n)||n.constructor&&"Array"===n.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(n)||n.constructor&&"String"===n.constructor.name)?"string":e}(n)===e}}function w(n,e){for(var r=n.length,t=new Array(r),a=0;ae.length)break e;if(!(h instanceof a)){u.lastIndex=0;var m=u.exec(h);if(m){g&&(d=m[1].length);var b=m.index-1+d,y=b+(m=m[0].slice(d)).length,v=h.slice(0,b+1),k=h.slice(y+1),w=[f,1];v&&w.push(v);var x=new a(o,c?S.tokenize(m,c):m,p);w.push(x),k&&w.push(k),Array.prototype.splice.apply(r,w)}}}}}return r},hooks:{all:{},add:function(e,t){var n=S.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=S.hooks.all[e];if(n&&n.length)for(var a=0,r=void 0;r=n[a++];)r(t)}}},s=S.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(s.stringify=function(t,n,e){if("string"==typeof t)return t;if("Array"===S.util.type(t))return t.map(function(e){return s.stringify(e,n,t)}).join("");var a={type:t.type,content:s.stringify(t.content,n,e),tag:"span",classes:["token",t.type],attributes:{},language:n,parent:e};if("comment"===a.type&&(a.attributes.spellcheck="true"),t.alias){var r="Array"===S.util.type(t.alias)?t.alias:[t.alias];Array.prototype.push.apply(a.classes,r)}S.hooks.run("wrap",a);var i="";for(var o in a.attributes)i+=(i?" ":"")+o+'="'+(a.attributes[o]||"")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'" '+i+">"+a.content+""},!g.document)return g.addEventListener&&g.addEventListener("message",function(e){var t=JSON.parse(e.data),n=t.language,a=t.code,r=t.immediateClose;g.postMessage(S.highlight(a,S.languages[n],n)),r&&g.close()},!1),g.Prism}();void 0!==n&&(n.Prism=i),i.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[^\s>\/=.]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},i.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),i.languages.xml=i.languages.markup,i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,i.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},i.languages.css.atrule.inside.rest=i.util.clone(i.languages.css),i.languages.markup&&(i.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/i,inside:{tag:{pattern:/|<\/style>/i,inside:i.languages.markup.tag.inside},rest:i.languages.css},alias:"language-css"}}),i.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:i.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:i.languages.css}},alias:"language-css"}},i.languages.markup.tag)),i.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},i.languages.javascript=i.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),i.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),i.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}}}),i.languages.markup&&i.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/i,inside:{tag:{pattern:/|<\/script>/i,inside:i.languages.markup.tag.inside},rest:i.languages.javascript},alias:"language-javascript"}}),i.languages.js=i.languages.javascript,i.languages.c=i.languages.extend("clike",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/\-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*\/]/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i}),i.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,lookbehind:!0}}}}),delete i.languages.c["class-name"],delete i.languages.c["boolean"],i.languages.csharp=i.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,/("|')(\\?.)*?\1/],number:/\b-?(0x[\da-f]+|\d*\.?\d+)\b/i}),i.languages.insertBefore("csharp","keyword",{preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0}}),i.languages.cpp=i.languages.extend("c",{keyword:/\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,"boolean":/\b(true|false)\b/,operator:/[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),i.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}),i.languages.java=i.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),i.languages.php=i.languages.extend("clike",{keyword:/\b(and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0}}),i.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),i.languages.insertBefore("php","keyword",{delimiter:/\?>|<\?(?:php)?/i,variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),i.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),i.languages.markup&&(i.hooks.add("before-highlight",function(t){"php"===t.language&&(t.tokenStack=[],t.backupCode=t.code,t.code=t.code.replace(/(?:<\?php|<\?)[\w\W]*?(?:\?>)/gi,function(e){return t.tokenStack.push(e),"{{{PHP"+t.tokenStack.length+"}}}"}))}),i.hooks.add("before-insert",function(e){"php"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),i.hooks.add("after-highlight",function(e){if("php"===e.language){for(var t=0,n=void 0;n=e.tokenStack[t];t++)e.highlightedCode=e.highlightedCode.replace("{{{PHP"+(t+1)+"}}}",i.highlight(n,e.grammar,"php").replace(/\$/g,"$$$$"));e.element.innerHTML=e.highlightedCode}}),i.hooks.add("wrap",function(e){"php"===e.language&&"markup"===e.type&&(e.content=e.content.replace(/(\{\{\{PHP[0-9]+\}\}\})/g,'$1'))}),i.languages.insertBefore("php","comment",{markup:{pattern:/<[^?]\/?(.*?)>/,inside:i.languages.markup},php:/\{\{\{PHP[0-9]+\}\}\}/})),i.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(?:\\?.)*?\1/,"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/},function(e){e.languages.ruby=e.languages.extend("clike",{comment:/#(?!\{[^\r\n]*?\}).*/,keyword:/\b(alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.util.clone(e.languages.ruby)}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}],variable:/[@$]+[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/,symbol:/:[a-zA-Z_][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.insertBefore("ruby","number",{builtin:/\b(Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|File|Fixnum|Fload|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z][a-zA-Z_0-9]*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s\{\(\[<])(?:[^\\]|\\[\s\S])*?\1/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,inside:{interpolation:t}},{pattern:/("|')(#\{[^}]+\}|\\(?:\r?\n|\r)|\\?.)*?\1/,inside:{interpolation:t}}]}(i);function a(){}function o(e){return function(){return e}}function s(){return f}var l,u={isCodeSample:function B(e){return e&&"PRE"===e.nodeName&&-1!==e.className.indexOf("language-")},trimArg:function M(n){return function(e,t){return n(t)}}},d=o(!1),p=o(!0),f=(l={fold:function(e,t){return e()},is:d,isSome:d,isNone:p,getOr:b,getOrThunk:m,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:o(null),getOrUndefined:o(undefined),or:b,orThunk:m,map:s,each:a,bind:s,exists:d,forall:p,filter:s,equals:h,equals_:h,toArray:function(){return[]},toString:o("none()")},Object.freeze&&Object.freeze(l),l);function h(e){return e.isNone()}function m(e){return e()}function b(e){return e}function y(e){var t=e.selection?e.selection.getNode():null;return u.isCodeSample(t)?w.some(t):w.none()}var v,k=function(n){function e(){return r}function t(e){return e(n)}var a=o(n),r={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:p,isNone:d,getOr:a,getOrThunk:a,getOrDie:a,getOrNull:a,getOrUndefined:a,or:e,orThunk:e,map:function(e){return k(e(n))},each:function(e){e(n)},bind:t,exists:t,forall:t,filter:function(e){return e(n)?r:f},toArray:function(){return[n]},toString:function(){return"some("+n+")"},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(d,function(e){return t(n,e)})}};return r},w={some:k,none:s,from:function(e){return null===e||e===undefined?f:k(e)}},x=y,S=function(t,n,a){t.undoManager.transact(function(){var e=y(t);return a=r.DOM.encode(a),e.fold(function(){t.insertContent('

'+a+"
"),t.selection.select(t.$("#__new").removeAttr("id")[0])},function(e){t.dom.setAttrib(e,"class","language-"+n),e.innerHTML=a,i.highlightElement(e),t.selection.select(e)})})},A=function(e){return y(e).fold(function(){return""},function(e){return e.textContent})},C=function(e){return e.settings.codesample_languages},_=function(e){var t=C(e);return t||[{text:"HTML/XML",value:"markup"},{text:"JavaScript",value:"javascript"},{text:"CSS",value:"css"},{text:"PHP",value:"php"},{text:"Ruby",value:"ruby"},{text:"Python",value:"python"},{text:"Java",value:"java"},{text:"C",value:"c"},{text:"C#",value:"csharp"},{text:"C++",value:"cpp"}]},N=function(e,n){return x(e).fold(function(){return n},function(e){var t=e.className.match(/language-(\w+)/);return t?t[1]:n})},O=(v="function",function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"==t&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==t&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":t}(e)===v}),z=Array.prototype.slice,P=(O(Array.from)&&Array.from,function(n){var e=_(n),t=function(e){return 0===e.length?w.none():w.some(e[0])}(e).fold(function(){return""},function(e){return e.value}),a=N(n,t),r=A(n);n.windowManager.open({title:"Insert/Edit Code Sample",size:"large",body:{type:"panel",items:[{type:"selectbox",name:"language",label:"Language",items:e},{type:"textarea",name:"code",label:"Code view"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{language:a,code:r},onSubmit:function(e){var t=e.getData();S(n,t.language,t.code),e.close()}})}),W=function(t){t.addCommand("codesample",function(){var e=t.selection.getNode();t.selection.isCollapsed()||u.isCodeSample(e)?P(t):t.formatter.toggle("code")})},j=function(n){var r=n.$;n.on("PreProcess",function(e){r("pre[contenteditable=false]",e.node).filter(u.trimArg(u.isCodeSample)).each(function(e,t){var n=r(t),a=t.textContent;n.attr("class",r.trim(n.attr("class"))),n.removeAttr("contentEditable"),n.empty().append(r("").each(function(){this.textContent=a}))})}),n.on("SetContent",function(){var e=r("pre").filter(u.trimArg(u.isCodeSample)).filter(function(e,t){return"false"!==t.contentEditable});e.length&&n.undoManager.transact(function(){e.each(function(e,t){r(t).find("br").each(function(e,t){t.parentNode.replaceChild(n.getDoc().createTextNode("\n"),t)}),t.contentEditable="false",t.innerHTML=n.dom.encode(t.textContent),i.highlightElement(t),t.className=r.trim(t.className)})})})},T=function(n){n.ui.registry.addToggleButton("codesample",{icon:"code-sample",tooltip:"Insert/edit code sample",onAction:function(){return P(n)},onSetup:function(e){function t(){e.setActive(function(e){var t=e.selection.getStart();return e.dom.is(t,"pre.language-markup")}(n))}return n.on("NodeChange",t),function(){return n.off("NodeChange",t)}}}),n.ui.registry.addMenuItem("codesample",{text:"Code sample...",icon:"code-sample",onAction:function(){return P(n)}})};!function F(){e.add("codesample",function(t){j(t),T(t),W(t),t.on("dblclick",function(e){u.isCodeSample(e.target)&&P(t)})})}()}(window); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/colorpicker/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/colorpicker/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..9469eeb6c68e3c3e06663851681e94b9f539d996 --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/colorpicker/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(o){"use strict";var i=tinymce.util.Tools.resolve("tinymce.PluginManager");!function n(){i.add("colorpicker",function(){o.console.warn("Color picker plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/contextmenu/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/contextmenu/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..5d05c8d57f788cf95e08336619a31dcb3908657e --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/contextmenu/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(n){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager");!function e(){o.add("contextmenu",function(){n.console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/directionality/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/directionality/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..d12821464e1c20e0ff2ef607fe40e719c37ea827 --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/directionality/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(i){"use strict";function n(){}function u(n){return function(){return n}}function t(){return a}var e,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),o=function(n,t){var e,r=n.dom,o=n.selection.getSelectedBlocks();o.length&&(e=r.getAttrib(o[0],"dir"),c.each(o,function(n){r.getParent(n.parentNode,'*[dir="'+t+'"]',r.getRoot())||r.setAttrib(n,"dir",e!==t?t:null)}),n.nodeChanged())},d=function(n){n.addCommand("mceDirectionLTR",function(){o(n,"ltr")}),n.addCommand("mceDirectionRTL",function(){o(n,"rtl")})},f=u(!1),l=u(!0),a=(e={fold:function(n,t){return n()},is:f,isSome:f,isNone:l,getOr:s,getOrThunk:N,getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:u(null),getOrUndefined:u(undefined),or:s,orThunk:N,map:t,each:n,bind:t,exists:f,forall:l,filter:t,equals:m,equals_:m,toArray:function(){return[]},toString:u("none()")},Object.freeze&&Object.freeze(e),e);function m(n){return n.isNone()}function N(n){return n()}function s(n){return n}function g(n,t){var e=n.dom(),r=i.window.getComputedStyle(e).getPropertyValue(t),o=""!==r||function(n){var t=A(n)?n.dom().parentNode:n.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}(n)?r:w(e,t);return null===o?undefined:o}function T(t,r){return function(e){function n(n){var t=p.fromDom(n.element);e.setActive(function(n){return"rtl"===g(n,"direction")?"rtl":"ltr"}(t)===r)}return t.on("NodeChange",n),function(){return t.off("NodeChange",n)}}}var E,O,y=function(e){function n(){return o}function t(n){return n(e)}var r=u(e),o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:l,isNone:f,getOr:r,getOrThunk:r,getOrDie:r,getOrNull:r,getOrUndefined:r,or:n,orThunk:n,map:function(n){return y(n(e))},each:function(n){n(e)},bind:t,exists:t,forall:t,filter:function(n){return n(e)?o:a},toArray:function(){return[e]},toString:function(){return"some("+e+")"},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(f,function(n){return t(e,n)})}};return o},D=function(n){return null===n||n===undefined?a:y(n)},h=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:u(n)}},p={fromHtml:function(n,t){var e=(t||i.document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||1Could not load emoticons

"}]},buttons:[{type:"cancel",text:"Close",primary:!0}],initialData:{pattern:"",results:[]}}),a.focus(M),a.unblock()}))},R=function(n,t){function e(){return U(n,t)}n.ui.registry.addButton("emoticons",{tooltip:"Emoticons",icon:"emoji",onAction:e}),n.ui.registry.addMenuItem("emoticons",{text:"Emoticons...",icon:"emoji",onAction:e})};!function B(){r.add("emoticons",function(n,t){var e=E(n,t),r=F(n),o=h(n,e,r);R(n,o),function(r,o){r.ui.registry.addAutocompleter("emoticons",{ch:":",columns:"auto",minChars:2,fetch:function(t,e){return o.waitForLoad().then(function(){var n=o.listAll();return d(n,t,A.some(e))})},onAction:function(n,t,e){r.selection.setRng(t),r.insertContent(e),n.hide()}})}(n,o)})}()}(window); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/fullpage/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/fullpage/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..7cb09c880d42f67b3492d38e1da8d456213d084c --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/fullpage/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(m){"use strict";function f(t){return e({validate:!1,root_name:"#document"}).parse(t)}function g(t){return t.replace(/<\/?[A-Z]+/g,function(t){return t.toLowerCase()})}var o,i=function(t){function e(){return n}var n=t;return{get:e,set:function(t){n=t},clone:function(){return i(e())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),p=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=tinymce.util.Tools.resolve("tinymce.html.DomParser"),h=tinymce.util.Tools.resolve("tinymce.html.Node"),y=tinymce.util.Tools.resolve("tinymce.html.Serializer"),v=function(t){return t.getParam("fullpage_hide_in_source_view")},r=function(t){return t.getParam("fullpage_default_xml_pi")},a=function(t){return t.getParam("fullpage_default_encoding")},c=function(t){return t.getParam("fullpage_default_font_family")},u=function(t){return t.getParam("fullpage_default_font_size")},s=function(t){return t.getParam("fullpage_default_text_color")},d=function(t){return t.getParam("fullpage_default_title")},_=function(t){return t.getParam("fullpage_default_doctype","")},b=f,n=function(t,e){var n,i,l=f(e),r={};function o(t,e){return t.attr(e)||""}return r.fontface=c(t),r.fontsize=u(t),7===(n=l.firstChild).type&&(r.xml_pi=!0,(i=/encoding="([^"]+)"/.exec(n.value))&&(r.docencoding=i[1])),(n=l.getAll("#doctype")[0])&&(r.doctype=""),(n=l.getAll("title")[0])&&n.firstChild&&(r.title=n.firstChild.value),p.each(l.getAll("meta"),function(t){var e,n=t.attr("name"),i=t.attr("http-equiv");n?r[n.toLowerCase()]=t.attr("content"):"Content-Type"===i&&(e=/charset\s*=\s*(.*)\s*/gi.exec(t.attr("content")))&&(r.docencoding=e[1])}),(n=l.getAll("html")[0])&&(r.langcode=o(n,"lang")||o(n,"xml:lang")),r.stylesheets=[],p.each(l.getAll("link"),function(t){"stylesheet"===t.attr("rel")&&r.stylesheets.push(t.attr("href"))}),(n=l.getAll("body")[0])&&(r.langdir=o(n,"dir"),r.style=o(n,"style"),r.visited_color=o(n,"vlink"),r.link_color=o(n,"link"),r.active_color=o(n,"alink")),r},x=function(t,r,e){var o,n,i,a,l,c=t.dom;function u(t,e,n){t.attr(e,n||undefined)}function s(t){n.firstChild?n.insert(t,n.firstChild):n.append(t)}o=f(e),(n=o.getAll("head")[0])||(a=o.getAll("html")[0],n=new h("head",1),a.firstChild?a.insert(n,a.firstChild,!0):a.append(n)),a=o.firstChild,r.xml_pi?(l='version="1.0"',r.docencoding&&(l+=' encoding="'+r.docencoding+'"'),7!==a.type&&(a=new h("xml",7),o.insert(a,o.firstChild,!0)),a.value=l):a&&7===a.type&&a.remove(),a=o.getAll("#doctype")[0],r.doctype?(a||(a=new h("#doctype",10),r.xml_pi?o.insert(a,o.firstChild):s(a)),a.value=r.doctype.substring(9,r.doctype.length-1)):a&&a.remove(),a=null,p.each(o.getAll("meta"),function(t){"Content-Type"===t.attr("http-equiv")&&(a=t)}),r.docencoding?(a||((a=new h("meta",1)).attr("http-equiv","Content-Type"),a.shortEnded=!0,s(a)),a.attr("content","text/html; charset="+r.docencoding)):a&&a.remove(),a=o.getAll("title")[0],r.title?(a?a.empty():s(a=new h("title",1)),a.append(new h("#text",3)).value=r.title):a&&a.remove(),p.each("keywords,description,author,copyright,robots".split(","),function(t){var e,n,i=o.getAll("meta"),l=r[t];for(e=0;e"))},C=Object.prototype.hasOwnProperty,k=(o=function(t,e){return e},function(){for(var t=new Array(arguments.length),e=0;e/g,function(t,e){return unescape(e)})},T=p.each,O=function(t){var e,n="",i="";if(r(t)){var l=a(t);n+='\n'}return n+=_(t),n+="\n\n\n",(e=d(t))&&(n+=""+e+"\n"),(e=a(t))&&(n+='\n'),(e=c(t))&&(i+="font-family: "+e+";"),(e=u(t))&&(i+="font-size: "+e+";"),(e=s(t))&&(i+="color: "+e+";"),n+="\n\n"},D=function(e,n,i){e.on("BeforeSetContent",function(t){!function(t,e,n,i){var l,r,o,a,c="",u=t.dom;if(!(i.selection||(o=A(t.settings.protect,i.content),"raw"===i.format&&e.get()||i.source_view&&v(t)))){0!==o.length||i.source_view||(o=p.trim(e.get())+"\n"+p.trim(o)+"\n"+p.trim(n.get())),-1!==(l=(o=o.replace(/<(\/?)BODY/gi,"<$1body")).indexOf("",l),e.set(g(o.substring(0,l+1))),-1===(r=o.indexOf("\n")),a=b(e.get()),T(a.getAll("style"),function(t){t.firstChild&&(c+=t.firstChild.value)});var s=a.getAll("body")[0];s&&u.setAttribs(t.getBody(),{style:s.attr("style")||"",dir:s.attr("dir")||"",vLink:s.attr("vlink")||"",link:s.attr("link")||"",aLink:s.attr("alink")||""}),u.remove("fullpage_styles");var d=t.getDoc().getElementsByTagName("head")[0];if(c)u.add(d,"style",{id:"fullpage_styles"}).appendChild(m.document.createTextNode(c));var f={};p.each(d.getElementsByTagName("link"),function(t){"stylesheet"===t.rel&&t.getAttribute("data-mce-fullpage")&&(f[t.href]=t)}),p.each(a.getAll("link"),function(t){var e=t.attr("href");if(!e)return!0;f[e]||"stylesheet"!==t.attr("rel")||u.add(d,"link",{rel:"stylesheet",text:"text/css",href:e,"data-mce-fullpage":"1"}),delete f[e]}),p.each(f,function(t){t.parentNode.removeChild(t)})}}(e,n,i,t)}),e.on("GetContent",function(t){!function(t,e,n,i){i.selection||i.source_view&&v(t)||(i.content=P(p.trim(e)+"\n"+p.trim(i.content)+"\n"+p.trim(n)))}(e,n.get(),i.get(),t)})},E=function(t){t.ui.registry.addButton("fullpage",{tooltip:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}}),t.ui.registry.addMenuItem("fullpage",{text:"Metadata and document properties",icon:"document-properties",onAction:function(){t.execCommand("mceFullPageProperties")}})};!function z(){t.add("fullpage",function(t){var e=i(""),n=i("");w(t,e),E(t),D(t,e,n)})}()}(window); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/fullscreen/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/fullscreen/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..1a6535cac0f1b40ae71a955820b58d7093cc30cc --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/fullscreen/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(l){"use strict";function e(){}function m(e){return function(){return e}}function n(){return s}var r,t=function(e){function n(){return r}var r=e;return{get:n,set:function(e){r=e},clone:function(){return t(n())}}},o=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e){return{isFullscreen:function(){return null!==e.get()}}},c=m(!1),u=m(!0),s=(r={fold:function(e,n){return e()},is:c,isSome:c,isNone:u,getOr:d,getOrThunk:a,getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},getOrNull:m(null),getOrUndefined:m(undefined),or:d,orThunk:a,map:n,each:e,bind:n,exists:c,forall:u,filter:n,equals:f,equals_:f,toArray:function(){return[]},toString:m("none()")},Object.freeze&&Object.freeze(r),r);function f(e){return e.isNone()}function a(e){return e()}function d(e){return e}function h(n){return function(e){return function(e){if(null===e)return"null";var n=typeof e;return"object"==n&&(Array.prototype.isPrototypeOf(e)||e.constructor&&"Array"===e.constructor.name)?"array":"object"==n&&(String.prototype.isPrototypeOf(e)||e.constructor&&"String"===e.constructor.name)?"string":n}(e)===n}}function v(e,n){for(var r=e.length,t=new Array(r),o=0;o${name}');return{name:"plugins",title:"Plugins",items:[{type:"htmlpanel",presets:"document",html:[(n=e,null==n?"":'
'+function(t){var e=function(e){var t=F(e.plugins);return e.settings.forced_plugins===undefined?t:function(e,t){for(var n=[],o=0,a=e.length;o"+r(t,e)+""}),o=n.length,a=n.join("");return"

"+U.translate(["Plugins installed ({0}):",o])+"

    "+a+"
"}(n)+"
"),(t=y(["Accessibility Checker","Advanced Code Editor","Advanced Tables","Case Change","Checklist","Tiny Comments","Tiny Drive","Enhanced Media Embed","Format Painter","Link Checker","Mentions","MoxieManager","Page Embed","Permanent Pen","PowerPaste","Spell Checker Pro"],function(e){return"
  • "+U.translate(e)+"
  • "}).join(""),'

    '+U.translate("Premium plugins:")+"

    ")].join("")}]}},N=tinymce.util.Tools.resolve("tinymce.EditorManager"),L=function(){var e,t,n='TinyMCE '+(e=N.majorVersion,t=N.minorVersion,0===e.indexOf("@")?"X.X.X":e+"."+t)+"";return{name:"versions",title:"Version",items:[{type:"htmlpanel",html:"

    "+U.translate(["You are using {0}",n])+"

    ",presets:"document"}]}},B=function(){return{name:"keyboardnav",title:"Keyboard Navigation",items:[{type:"htmlpanel",html:"

    Editor UI keyboard navigation

    \n\n

    Activating keyboard navigation

    \n\n

    The sections of the outer UI of the editor - the menubar, toolbar, sidebar and footer - are all keyboard navigable. As such, there are multiple ways to activate keyboard navigation:

    \n
      \n
    • Focus the menubar: Alt + F9 (Windows) or ⌥F9 (MacOS)
    • \n
    • Focus the toolbar: Alt + F10 (Windows) or ⌥F10 (MacOS)
    • \n
    • Focus the footer: Alt + F11 (Windows) or ⌥F11 (MacOS)
    • \n
    \n\n

    Focusing the menubar or toolbar will start keyboard navigation at the first item in the menubar or toolbar, which will be highlighted with a gray background. Focusing the footer will start keyboard navigation at the first item in the element path, which will be highlighted with an underline.

    \n\n

    Moving between UI sections

    \n\n

    When keyboard navigation is active, pressing tab will move the focus to the next major section of the UI, where applicable. These sections are:

    \n
      \n
    • the menubar
    • \n
    • each group of the toolbar
    • \n
    • the sidebar
    • \n
    • the element path in the footer
    • \n
    • the wordcount toggle button in the footer
    • \n
    • the branding link in the footer
    • \n
    \n\n

    Pressing shift + tab will move backwards through the same sections, except when moving from the footer to the toolbar. Focusing the element path then pressing shift + tab will move focus to the first toolbar group, not the last.

    \n\n

    Moving within UI sections

    \n\n

    Keyboard navigation within UI sections can usually be achieved using the left and right arrow keys. This includes:

    \n
      \n
    • moving between menus in the menubar
    • \n
    • moving between buttons in a toolbar group
    • \n
    • moving between items in the element path
    • \n
    \n\n

    In all these UI sections, keyboard navigation will cycle within the section. For example, focusing the last button in a toolbar group then pressing right arrow will move focus to the first item in the same toolbar group.

    \n\n

    Executing buttons

    \n\n

    To execute a button, navigate the selection to the desired button and hit space or enter.

    \n\n

    Opening, navigating and closing menus

    \n\n

    When focusing a menubar button or a toolbar button with a menu, pressing space, enter or down arrow will open the menu. When the menu opens the first item will be selected. To move up or down the menu, press the up or down arrow key respectively. This is the same for submenus, which can also be opened and closed using the left and right arrow keys.

    \n\n

    To close any active menu, hit the escape key. When a menu is closed the selection will be restored to its previous selection. This also works for closing submenus.

    \n\n

    Context toolbars and menus

    \n\n

    To focus an open context toolbar such as the table context toolbar, press Ctrl + F9 (Windows) or ⌃F9 (MacOS).

    \n\n

    Context toolbar navigation is the same as toolbar navigation, and context menu navigation is the same as standard menu navigation.

    \n\n

    Dialog navigation

    \n\n

    There are two types of dialog UIs in TinyMCE: tabbed dialogs and non-tabbed dialogs.

    \n\n

    When a non-tabbed dialog is opened, the first interactive component in the dialog will be focused. Users can navigate between interactive components by pressing tab. This includes any footer buttons. Navigation will cycle back to the first dialog component if tab is pressed while focusing the last component in the dialog. Pressing shift + tab will navigate backwards.

    \n\n

    When a tabbed dialog is opened, the first button in the tab menu is focused. Pressing tab will navigate to the first interactive component in that tab, and will cycle through the tab\u2019s components, the footer buttons, then back to the tab button. To switch to another tab, focus the tab button for the current tab, then use the arrow keys to cycle through the tab buttons.

    "}]}};!function z(){t.add("help",function(e){var t=a({}),n=function(n){return{addTab:function(e){var t=n.get();t[e.name]=e,n.set(t)}}}(t),o=A(e,t);return s(e,o),i(e,o),e.shortcuts.add("Alt+0","Open help dialog","mceHelp"),n})}()}(); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/hr/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/hr/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..99f6c70fc84add5c06b92270e438d83985d651c0 --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/hr/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"
    ")})},t=function(n){n.ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}}),n.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}})};!function e(){n.add("hr",function(n){o(n),t(n)})}()}(); \ No newline at end of file diff --git a/common/plugins/editors/tinymce/media/plugins/image/plugin.min.js b/common/plugins/editors/tinymce/media/plugins/image/plugin.min.js new file mode 100755 index 0000000000000000000000000000000000000000..4a1ac0d25d07110497385497f6df519e3ad63456 --- /dev/null +++ b/common/plugins/editors/tinymce/media/plugins/image/plugin.min.js @@ -0,0 +1,9 @@ +/** + * Copyright (c) Tiny Technologies, Inc. All rights reserved. + * Licensed under the LGPL or a commercial license. + * For LGPL see License.txt in the project root for license information. + * For commercial licenses see https://www.tiny.cloud/ + * + * Version: 5.1.1 (2019-10-28) + */ +!function(s){"use strict";function o(){}function a(t){return function(){return t}}function t(t){return t}function e(){return l}var n,r=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=a(!1),c=a(!0),l=(n={fold:function(t,e){return t()},is:u,isSome:u,isNone:c,getOr:d,getOrThunk:f,getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},getOrNull:a(null),getOrUndefined:a(undefined),or:d,orThunk:f,map:e,each:o,bind:e,exists:u,forall:c,filter:e,equals:i,equals_:i,toArray:function(){return[]},toString:a("none()")},Object.freeze&&Object.freeze(n),n);function i(t){return t.isNone()}function f(t){return t()}function d(t){return t}function m(e){return function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"==e&&(Array.prototype.isPrototypeOf(t)||t.constructor&&"Array"===t.constructor.name)?"array":"object"==e&&(String.prototype.isPrototypeOf(t)||t.constructor&&"String"===t.constructor.name)?"string":e}(t)===e}}function v(t){for(var e=[],n=0,r=t.length;n'+n+"")}else e.insertContent(i(e,t))},g=i,y=function(e){e.addCommand("mceInsertDate",function(){p(e,t(e))}),e.addCommand("mceInsertTime",function(){p(e,o(e))})},M=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(e){function t(){return n}var n=e;return{get:t,set:function(e){n=e},clone:function(){return S(t())}}},v=function(n){var t=u(n),r=S(c(n));n.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:function(e){return e===r.get()},fetch:function(e){e(M.map(t,function(e){return{type:"choiceitem",text:g(n,e),value:e}}))},onAction:function(){for(var e=[],t=0;t]+>[^<]+<\/a>$/.test(n)||-1===n.indexOf("href=")))},cn=L,an=function(n,t){return function(n){return n.replace(/\uFEFF/g,"")}(t?t.innerText||t.textContent:n.getContent({format:"text"}))},fn=F,ln=j,sn={sanitize:function(n){return z(M)(n)},sanitizeWith:z,createUi:function(t,e){return function(n){return{name:t,type:"selectbox",label:e,items:n}}},getValue:M},dn=function(n){function t(){return e}var e=n;return{get:t,set:function(n){e=n},clone:function(){return dn(t())}}},mn=function(n,r){function e(n,t){var e=function(n,t){return"link"===t?n.catalogs.link:"anchor"===t?n.catalogs.anchor:$.none()}(r,t.name).getOr([]);return q(o.get(),t.name,e,n)}var o=dn(n.text);return{onChange:function(n,t){return"url"===t.name?function(n){if(o.get().length<=0){var t=n.url.meta.text!==undefined?n.url.meta.text:n.url.value;return $.some({text:t})}return $.none()}(n()):N(["anchor","link"],t.name)?e(n(),t):("text"===t.name&&o.set(n().text),$.none())}}},hn=function(){return(hn=Object.assign||function(n){for(var t,e=1,r=arguments.length;ee.length?ne(t,e,n):ee(t,e,n)},[]);return S(n).map(function(e){return e.list})}(e.contentDocument,n).toArray()}function de(e){var n=g(Jn.getSelectedListItems(e),bn.fromDom);return A(N(n,t(re)),N(function(e){var n=Xe.call(e,0);return n.reverse(),n}(n),t(re)),function(e,n){return{start:e,end:n}})}function le(t,e,r){var n=function(e,n){var t=Ge(!1);return g(e,function(e){return{sourceList:e,entries:tt(0,n,t,e)}})}(e,de(t));p(n,function(e){!function(e,n){p(v(e,ie),function(e){return function(e,n){switch(e){case"Indent":n.depth++;break;case"Outdent":n.depth--;break;case"Flatten":n.depth=0}}(n,e)})}(e.entries,r);var n=function(n,e){return y(function(e,n){if(0===e.length)return[];for(var t=n(e[0]),r=[],o=[],i=0,u=e.length;i=e.childNodes.length?t.data.length:0}:t.previousSibling&&Mn(t.previousSibling)?{container:t.previousSibling,offset:t.previousSibling.data.length}:t.nextSibling&&Mn(t.nextSibling)?{container:t.nextSibling,offset:0}:{container:e,offset:n}}function ve(e,n){var t=g(Jn.getSelectedListRoots(e),bn.fromDom),r=g(Jn.getSelectedDlItems(e),bn.fromDom),o=!1;if(t.length||r.length){var i=e.selection.getBookmark();le(e,t,n),ge(e,n,r),e.selection.moveToBookmark(i),e.selection.setRng(ut(e.selection.getRng())),e.nodeChanged(),o=!0}return o}function he(e){return ve(e,"Indent")}function Ne(e){return ve(e,"Outdent")}function ye(e){return ve(e,"Flatten")}function Se(e){return/\btox\-/.test(e.className)}function Oe(e){switch(e){case"UL":return"ToggleUlList";case"OL":return"ToggleOlList";case"DL":return"ToggleDLList"}}function Ce(t,e){Pn.each(e,function(e,n){t.setAttribute(n,e)})}function be(e,n,t){!function(e,n,t){var r=t["list-style-type"]?t["list-style-type"]:null;e.setStyle(n,"list-style-type",r)}(e,n,t),function(e,n,t){Ce(n,t["list-attributes"]),Pn.each(e.select("li",n),function(e){Ce(e,t["list-item-attributes"])})}(e,n,t)}function Le(e,n,t,r){var o,i;for(o=n[t?"startContainer":"endContainer"],i=n[t?"startOffset":"endOffset"],1===o.nodeType&&(o=o.childNodes[Math.min(i,o.childNodes.length-1)]||o),!t&&qn(o.nextSibling)&&(o=o.nextSibling);o.parentNode!==r;){if(Vn(e,o))return o;if(/^(TD|TH)$/.test(o.parentNode.nodeName))return o;o=o.parentNode}return o}function Te(r,o,i){void 0===i&&(i={});var e,n=r.selection.getRng(!0),u="LI",t=Jn.getClosestListRootElm(r,r.selection.getStart(!0)),s=r.dom;"false"!==s.getContentEditable(r.selection.getNode())&&("DL"===(o=o.toUpperCase())&&(u="DT"),e=ct(n),Pn.each(function(t,e,r){for(var o,i=[],u=t.dom,n=Le(t,e,!0,r),s=Le(t,e,!1,r),a=[],c=n;c&&(a.push(c),c!==s);c=c.nextSibling);return Pn.each(a,function(e){if(Vn(t,e))return i.push(e),void(o=null);if(u.isBlock(e)||qn(e))return qn(e)&&u.remove(e),void(o=null);var n=e.nextSibling;st.isBookmarkNode(e)&&(Vn(t,n)||!n&&e.parentNode===r)?o=null:(o||(o=u.create("p"),e.parentNode.insertBefore(o,e),i.push(o)),o.appendChild(e))}),i}(r,n,t),function(e){var n,t;(t=e.previousSibling)&&Un(t)&&t.nodeName===o&&function(e,n,t){var r=e.getStyle(n,"list-style-type"),o=t?t["list-style-type"]:"";return r===(o=null===o?"":o)}(s,t,i)?(n=t,e=s.rename(e,u),t.appendChild(e)):(n=s.create(o),e.parentNode.insertBefore(n,e),n.appendChild(e),e=s.rename(e,u)),function(t,r,e){Pn.each(e,function(e){var n;return t.setStyle(r,((n={})[e]="",n))})}(s,e,["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"]),be(s,n,i),dt(r.dom,n)}),r.selection.setRng(ft(e)))}function De(e,n,t){return function(e,n){return e&&n&&Un(e)&&e.nodeName===n.nodeName}(n,t)&&function(e,n,t){return e.getStyle(n,"list-style-type",!0)===e.getStyle(t,"list-style-type",!0)}(e,n,t)&&function(e,n){return e.className===n.className}(n,t)}function Ee(n,e,t,r,o){if(e.nodeName!==r||lt(o)){var i=ct(n.selection.getRng(!0));Pn.each([e].concat(t),function(e){!function(e,n,t,r){if(n.nodeName!==t){var o=e.dom.rename(n,t);be(e.dom,o,r),j(e,Oe(t),o)}else be(e.dom,n,r),j(e,Oe(t),n)}(n,e,r,o)}),n.selection.setRng(ft(i))}else ye(n)}function we(e,n){var t,r=n.parentNode;"LI"===r.nodeName&&r.firstChild===n&&((t=r.previousSibling)&&"LI"===t.nodeName?(t.appendChild(n),Xn(e,r)&>.remove(r)):gt.setStyle(r,"listStyleType","none")),Un(r)&&(t=r.previousSibling)&&"LI"===t.nodeName&&t.appendChild(n)}function ke(e,n,t,r){var o=n.startContainer,i=n.startOffset;if(Mn(o)&&(t?i"}(n):"application/x-shockwave-flash"===n.source1mime?function(e){var t='';return e.poster&&(t+=''),t+=""}(n):-1!==n.source1mime.indexOf("audio")?function(e,t){return t?t(e):'"}(n,o):"script"===n.type?function(e){return' + + + + + +endPage() ?> \ No newline at end of file diff --git a/frontend/views/site/debugb.php b/frontend/views/site/debugb.php new file mode 100755 index 0000000000000000000000000000000000000000..43d151368b5848c675d162094c0b4386f5507a85 --- /dev/null +++ b/frontend/views/site/debugb.php @@ -0,0 +1,54 @@ +beginPage(); +?> + + + + + + + + Debug + head() ?> + + + + + + + + beginBody() ?> +
    + endBody() ?> + + + +endPage() ?> \ No newline at end of file diff --git a/frontend/views/site/error.php b/frontend/views/site/error.php new file mode 100755 index 0000000000000000000000000000000000000000..0ba25746558ef7626af7a4decbc809cb5059e63d --- /dev/null +++ b/frontend/views/site/error.php @@ -0,0 +1,27 @@ +title = $name; +?> +
    + +

    title) ?>

    + +
    + +
    + +

    + The above error occurred while the Web server was processing your request. +

    +

    + Please contact us if you think this is a server error. Thank you. +

    + +
    diff --git a/frontend/views/site/index.php b/frontend/views/site/index.php new file mode 100755 index 0000000000000000000000000000000000000000..736904f171ba8d05813800dc546050f1072920a5 --- /dev/null +++ b/frontend/views/site/index.php @@ -0,0 +1,46 @@ +title = Yii::t('site', 'My Yii Application'); +?> +
    + +
    +

    + +

    + +

    +
    + +
    + +
    +
    +

    + +

    + +

    »

    +
    +
    +

    + +

    + +

    »

    +
    +
    +

    + +

    + +

    »

    +
    +
    +
    +
    
    +        
    +
    +
    diff --git a/frontend/views/site/login.php b/frontend/views/site/login.php new file mode 100755 index 0000000000000000000000000000000000000000..4614d8ac90ab8f21beb601862164ea0999aa99fb --- /dev/null +++ b/frontend/views/site/login.php @@ -0,0 +1,41 @@ +title = Yii::t('menus', 'Login'); +$this->params['breadcrumbs'][] = $this->title; +?> + diff --git a/frontend/views/site/requestPasswordResetToken.php b/frontend/views/site/requestPasswordResetToken.php new file mode 100755 index 0000000000000000000000000000000000000000..9f6822e7eb41401aac8d3bc2ae2a74e2656577ee --- /dev/null +++ b/frontend/views/site/requestPasswordResetToken.php @@ -0,0 +1,31 @@ +title = 'Request password reset'; +$this->params['breadcrumbs'][] = $this->title; +?> +
    +

    title) ?>

    + +

    Please fill out your email. A link to reset password will be sent there.

    + +
    +
    + 'request-password-reset-form']); ?> + + field($model, 'email')->textInput(['autofocus' => true]) ?> + +
    + 'btn btn-primary']) ?> +
    + + +
    +
    +
    diff --git a/frontend/views/site/resendVerificationEmail.php b/frontend/views/site/resendVerificationEmail.php new file mode 100755 index 0000000000000000000000000000000000000000..84fc64a74a544423bdeabceb40f423cdae82e0a1 --- /dev/null +++ b/frontend/views/site/resendVerificationEmail.php @@ -0,0 +1,30 @@ +title = 'Resend verification email'; +$this->params['breadcrumbs'][] = $this->title; +?> +
    +

    title) ?>

    + +

    Please fill out your email. A verification email will be sent there.

    + +
    +
    + 'resend-verification-email-form']); ?> + + field($model, 'email')->textInput(['autofocus' => true]) ?> + +
    + 'btn btn-primary']) ?> +
    + + +
    +
    +
    diff --git a/frontend/views/site/resetPassword.php b/frontend/views/site/resetPassword.php new file mode 100755 index 0000000000000000000000000000000000000000..36ef452fcd6c3d0eec117e26c7ec034fe3641e34 --- /dev/null +++ b/frontend/views/site/resetPassword.php @@ -0,0 +1,31 @@ +title = 'Reset password'; +$this->params['breadcrumbs'][] = $this->title; +?> +
    +

    title) ?>

    + +

    Please choose your new password:

    + +
    +
    + 'reset-password-form']); ?> + + field($model, 'password')->passwordInput(['autofocus' => true]) ?> + +
    + 'btn btn-primary']) ?> +
    + + +
    +
    +
    diff --git a/frontend/views/site/signup.php b/frontend/views/site/signup.php new file mode 100755 index 0000000000000000000000000000000000000000..de9dad69a3598cc080e1dc256277da323834f864 --- /dev/null +++ b/frontend/views/site/signup.php @@ -0,0 +1,35 @@ +title = 'Signup'; +$this->params['breadcrumbs'][] = $this->title; +?> + diff --git a/frontend/views/site/test.php b/frontend/views/site/test.php new file mode 100755 index 0000000000000000000000000000000000000000..78c1508f85d2d5fbf5007e4584154a36f254a785 --- /dev/null +++ b/frontend/views/site/test.php @@ -0,0 +1,40 @@ +title = 'Unicode 中文转化'; +$this->params['breadcrumbs'][] = $this->title; + +$js = <<'); +}); +$('#mp3').click(function(){ + $(this).closest('form').append(''); +}); +JS; +$this->registerJs($js); +?> +
    + + 'form-control', 'placeholder' => '酷狗 URL']) ?> +
    + 'lrc', 'class' => 'btn btn-primary']) ?> +    + 'mp3', 'class' => 'btn btn-success']) ?> + +
    + + 'form-control', 'rows' => '3']) ?> +
    + 'form-control', 'rows' => '3']) ?> +
    + 'btn btn-primary btn-lg btn-block']) ?> +
    + 'form-control', 'rows' => '3']) ?> +
    + 'form-control', 'rows' => '3']) ?> + +
    diff --git a/frontend/views/test/index.php b/frontend/views/test/index.php new file mode 100755 index 0000000000000000000000000000000000000000..c9eb5d46ba6abbfae660995e2c3cad258a9601f1 --- /dev/null +++ b/frontend/views/test/index.php @@ -0,0 +1,38 @@ +title = Yii::t('site', 'My Yii Application'); + +?> + +ekjfefh +kssssssss +
    // config/routes.php
    +use App\Controller\BlogApiController;
    +use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
    +
    +return function (RoutingConfigurator $routes) {
    +    $routes->add('api_post_show', '/api/posts/{id}')
    +        ->controller([BlogApiController::class, 'show'])
    +        ->methods(['GET', 'HEAD'])
    +    ;
    +    $routes->add('api_post_edit', '/api/posts/{id}')
    +        ->controller([BlogApiController::class, 'edit'])
    +        ->methods(['PUT'])
    +    ;
    +};
    +
    +
    <?php
    +// dfekfj
    +echo 'hehe';
    +
    + + + + + \ No newline at end of file diff --git a/frontend/web/css/markdown.css b/frontend/web/css/markdown.css new file mode 100755 index 0000000000000000000000000000000000000000..122e63ee0b6eb92a7583b1058c904e72e7b3880e --- /dev/null +++ b/frontend/web/css/markdown.css @@ -0,0 +1,23 @@ +.blockquote-info{border-left-color: #5bc0de;} +.blockquote-warning{border-left-color: #aa6708;} +.blockquote-danger{border-left-color: #f0ad4e;} +.blockquote-success{border-left-color: #50af51;} +.blockquote-info.blockquote-reverse{border-right-color: #5bc0de;} +.blockquote-warning.blockquote-reverse{border-right-color: #f0ad4e;} +.blockquote-danger.blockquote-reverse{border-right-color: #d9534f;} +.blockquote-success.blockquote-reverse{border-right-color: #50af51;} +.cp_embed_wrapper{margin-bottom: 10px;} +h1,h2,h3,h4,h5,h6{padding-top: 70px;margin-top: -70px;} + + +.hljs-ln{font-size: 14px;} +.hljs-ln-n:before{ + min-width: 25px; + white-space: nowrap; + display: block; + text-align: right; + color: #63606b; +} +.hljs-ln .hljs-ln-code { + padding-left: 15px; +} \ No newline at end of file diff --git a/frontend/web/css/site.css b/frontend/web/css/site.css new file mode 100755 index 0000000000000000000000000000000000000000..5f1e6b98c04610640c852420ee367eaf0ffb22f0 --- /dev/null +++ b/frontend/web/css/site.css @@ -0,0 +1,120 @@ +html, +body { + height: 100%; +} + +.wrap { + min-height: 100%; + height: auto; + margin: 0 auto -60px; + padding: 0 0 60px; +} + +.wrap > .container { + padding: 70px 15px 20px; +} + +.footer { + height: 60px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + padding-top: 20px; +} + +.jumbotron { + text-align: center; + background-color: transparent; +} + +.jumbotron .btn { + font-size: 21px; + padding: 14px 24px; +} + +.not-set { + color: #c55; + font-style: italic; +} + +/* add sorting icons to gridview sort links */ +a.asc:after, a.desc:after { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + padding-left: 5px; +} + +a.asc:after { + content: "\e151"; +} + +a.desc:after { + content: "\e152"; +} + +.sort-numerical a.asc:after { + content: "\e153"; +} + +.sort-numerical a.desc:after { + content: "\e154"; +} + +.sort-ordinal a.asc:after { + content: "\e155"; +} + +.sort-ordinal a.desc:after { + content: "\e156"; +} + +.grid-view td { + white-space: nowrap; +} + +.grid-view .filters input, +.grid-view .filters select { + min-width: 50px; +} + +.hint-block { + display: block; + margin-top: 5px; + color: #999; +} + +.error-summary { + color: #a94442; + background: #fdf7f7; + border-left: 3px solid #eed3d7; + padding: 10px 20px; + margin: 0 0 15px 0; +} + +/* align the logout "link" (button in form) of the navbar */ +.nav li > form > button.logout { + padding: 15px; + border: none; +} + +@media(max-width:767px) { + .nav li > form > button.logout { + display:block; + text-align: left; + width: 100%; + padding: 10px 15px; + } +} + +.nav > li > form > button.logout:focus, +.nav > li > form > button.logout:hover { + text-decoration: none; +} + +.nav > li > form > button.logout:focus { + outline: none; +} diff --git a/frontend/web/favicon.ico b/frontend/web/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..580ed732e86556ec57f3f3395a210246d679c076 Binary files /dev/null and b/frontend/web/favicon.ico differ diff --git a/frontend/web/index-test.php b/frontend/web/index-test.php new file mode 100755 index 0000000000000000000000000000000000000000..935cbcb2b67fce4395c603f2a003a53473702569 --- /dev/null +++ b/frontend/web/index-test.php @@ -0,0 +1,30 @@ +run(); diff --git a/frontend/web/index.php b/frontend/web/index.php new file mode 100755 index 0000000000000000000000000000000000000000..fc5a1612db2fda3eb6d1d800f0f368630ddc426a --- /dev/null +++ b/frontend/web/index.php @@ -0,0 +1,42 @@ +run(); diff --git a/frontend/web/robots.txt b/frontend/web/robots.txt new file mode 100755 index 0000000000000000000000000000000000000000..77470cb39f05f70a5b709b68304d0756bab75a0d --- /dev/null +++ b/frontend/web/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file diff --git a/init b/init new file mode 100755 index 0000000000000000000000000000000000000000..139d0898a294ea1f4aad39f19e9e981c2cc926ce --- /dev/null +++ b/init @@ -0,0 +1,300 @@ +#!/usr/bin/env php + $name) { + echo " [$i] $name\n"; + } + echo "\n Your choice [0-" . (count($envs) - 1) . ', or "q" to quit] '; + $answer = trim(fgets(STDIN)); + + if (!ctype_digit($answer) || !in_array($answer, range(0, count($envs) - 1))) { + echo "\n Quit initialization.\n"; + exit(0); + } + + if (isset($envNames[$answer])) { + $envName = $envNames[$answer]; + } +} else { + $envName = $params['env']; +} + +if (!in_array($envName, $envNames, true)) { + $envsList = implode(', ', $envNames); + echo "\n $envName is not a valid environment. Try one of the following: $envsList. \n"; + exit(2); +} + +$env = $envs[$envName]; + +if (empty($params['env'])) { + echo "\n Initialize the application under '{$envNames[$answer]}' environment? [yes|no] "; + $answer = trim(fgets(STDIN)); + if (strncasecmp($answer, 'y', 1)) { + echo "\n Quit initialization.\n"; + exit(0); + } +} + +$rootPath = "$root/environments/{$env['path']}"; +if (!is_dir($rootPath)) { + printError("$rootPath directory does not exist. Check path in $envName environment."); + exit(3); +} + +echo "\n Start initialization ...\n\n"; + +$files = getFileList($rootPath); +if (isset($env['skipFiles'])) { + $skipFiles = $env['skipFiles']; + array_walk($skipFiles, function(&$value) use($env, $root) { $value = "$root/$value"; }); + $files = array_diff($files, array_intersect_key($env['skipFiles'], array_filter($skipFiles, 'file_exists'))); +} +$all = false; +foreach ($files as $file) { + if (!copyFile($root, "environments/{$env['path']}/$file", $file, $all, $params)) { + break; + } +} + +$callbacks = ['setCookieValidationKey', 'setWritable', 'setExecutable', 'createSymlink']; +foreach ($callbacks as $callback) { + if (!empty($env[$callback])) { + $callback($root, $env[$callback]); + } +} + +echo "\n ... initialization completed.\n\n"; + +function getFileList($root, $basePath = '') +{ + $files = []; + $handle = opendir($root); + while (($path = readdir($handle)) !== false) { + if ($path === '.git' || $path === '.svn' || $path === '.' || $path === '..') { + continue; + } + $fullPath = "$root/$path"; + $relativePath = $basePath === '' ? $path : "$basePath/$path"; + if (is_dir($fullPath)) { + $files = array_merge($files, getFileList($fullPath, $relativePath)); + } else { + $files[] = $relativePath; + } + } + closedir($handle); + return $files; +} + +function copyFile($root, $source, $target, &$all, $params) +{ + if (!is_file($root . '/' . $source)) { + echo " skip $target ($source not exist)\n"; + return true; + } + if (is_file($root . '/' . $target)) { + if (file_get_contents($root . '/' . $source) === file_get_contents($root . '/' . $target)) { + echo " unchanged $target\n"; + return true; + } + if ($all) { + echo " overwrite $target\n"; + } else { + echo " exist $target\n"; + echo " ...overwrite? [Yes|No|All|Quit] "; + + + $answer = !empty($params['overwrite']) ? $params['overwrite'] : trim(fgets(STDIN)); + if (!strncasecmp($answer, 'q', 1)) { + return false; + } else { + if (!strncasecmp($answer, 'y', 1)) { + echo " overwrite $target\n"; + } else { + if (!strncasecmp($answer, 'a', 1)) { + echo " overwrite $target\n"; + $all = true; + } else { + echo " skip $target\n"; + return true; + } + } + } + } + file_put_contents($root . '/' . $target, file_get_contents($root . '/' . $source)); + return true; + } + echo " generate $target\n"; + @mkdir(dirname($root . '/' . $target), 0777, true); + file_put_contents($root . '/' . $target, file_get_contents($root . '/' . $source)); + return true; +} + +function getParams() +{ + $rawParams = []; + if (isset($_SERVER['argv'])) { + $rawParams = $_SERVER['argv']; + array_shift($rawParams); + } + + $params = []; + foreach ($rawParams as $param) { + if (preg_match('/^--([\w-]*\w)(=(.*))?$/', $param, $matches)) { + $name = $matches[1]; + $params[$name] = isset($matches[3]) ? $matches[3] : true; + } else { + $params[] = $param; + } + } + return $params; +} + +function setWritable($root, $paths) +{ + foreach ($paths as $writable) { + if (is_dir("$root/$writable")) { + if (@chmod("$root/$writable", 0777)) { + echo " chmod 0777 $writable\n"; + } else { + printError("Operation chmod not permitted for directory $writable."); + } + } else { + printError("Directory $writable does not exist."); + } + } +} + +function setExecutable($root, $paths) +{ + foreach ($paths as $executable) { + if (file_exists("$root/$executable")) { + if (@chmod("$root/$executable", 0755)) { + echo " chmod 0755 $executable\n"; + } else { + printError("Operation chmod not permitted for $executable."); + } + } else { + printError("$executable does not exist."); + } + } +} + +function setCookieValidationKey($root, $paths) +{ + foreach ($paths as $file) { + echo " generate cookie validation key in $file\n"; + $file = $root . '/' . $file; + $length = 32; + $bytes = openssl_random_pseudo_bytes($length); + $key = strtr(substr(base64_encode($bytes), 0, $length), '+/=', '_-.'); + $content = preg_replace('/(("|\')cookieValidationKey("|\')\s*=>\s*)(""|\'\')/', "\\1'$key'", file_get_contents($file)); + file_put_contents($file, $content); + } +} + +function createSymlink($root, $links) +{ + foreach ($links as $link => $target) { + //first removing folders to avoid errors if the folder already exists + @rmdir($root . "/" . $link); + //next removing existing symlink in order to update the target + if (is_link($root . "/" . $link)) { + @unlink($root . "/" . $link); + } + if (@symlink($root . "/" . $target, $root . "/" . $link)) { + echo " symlink $root/$target $root/$link\n"; + } else { + printError("Cannot create symlink $root/$target $root/$link."); + } + } +} + +/** + * Prints error message. + * @param string $message message + */ +function printError($message) +{ + echo "\n " . formatMessage("Error. $message", ['fg-red']) . " \n"; +} + +/** + * Returns true if the stream supports colorization. ANSI colors are disabled if not supported by the stream. + * + * - windows without ansicon + * - not tty consoles + * + * @return boolean true if the stream supports ANSI colors, otherwise false. + */ +function ansiColorsSupported() +{ + return DIRECTORY_SEPARATOR === '\\' + ? getenv('ANSICON') !== false || getenv('ConEmuANSI') === 'ON' + : function_exists('posix_isatty') && @posix_isatty(STDOUT); +} + +/** + * Get ANSI code of style. + * @param string $name style name + * @return integer ANSI code of style. + */ +function getStyleCode($name) +{ + $styles = [ + 'bold' => 1, + 'fg-black' => 30, + 'fg-red' => 31, + 'fg-green' => 32, + 'fg-yellow' => 33, + 'fg-blue' => 34, + 'fg-magenta' => 35, + 'fg-cyan' => 36, + 'fg-white' => 37, + 'bg-black' => 40, + 'bg-red' => 41, + 'bg-green' => 42, + 'bg-yellow' => 43, + 'bg-blue' => 44, + 'bg-magenta' => 45, + 'bg-cyan' => 46, + 'bg-white' => 47, + ]; + return $styles[$name]; +} + +/** + * Formats message using styles if STDOUT supports it. + * @param string $message message + * @param string[] $styles styles + * @return string formatted message. + */ +function formatMessage($message, $styles) +{ + if (empty($styles) || !ansiColorsSupported()) { + return $message; + } + + return sprintf("\x1b[%sm", implode(';', array_map('getStyleCode', $styles))) . $message . "\x1b[0m"; +} diff --git a/init.bat b/init.bat new file mode 100755 index 0000000000000000000000000000000000000000..1b92c1975414f3d7638797888cbd24c1127c3754 --- /dev/null +++ b/init.bat @@ -0,0 +1,15 @@ +@echo off + +rem ------------------------------------------------------------- +rem Yii command line init script for Windows. +rem ------------------------------------------------------------- + +@setlocal + +set YII_PATH=%~dp0 + +if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe + +"%PHP_COMMAND%" "%YII_PATH%init" %* + +@endlocal diff --git a/requirements.php b/requirements.php new file mode 100755 index 0000000000000000000000000000000000000000..67b344bbf36c99a1015cd6d2f08dae5f1ae28000 --- /dev/null +++ b/requirements.php @@ -0,0 +1,155 @@ +Error\n\n" + . "

    The path to yii framework seems to be incorrect.

    \n" + . '

    You need to install Yii framework via composer or adjust the framework path in file ' . basename(__FILE__) . ".

    \n" + . '

    Please refer to the README on how to install Yii.

    \n"; + if (!empty($_SERVER['argv'])) { + // do not print HTML when used in console mode + echo strip_tags($message); + } else { + echo $message; + } + exit(1); +} + +require_once $frameworkPath . '/requirements/YiiRequirementChecker.php'; +$requirementsChecker = new YiiRequirementChecker(); + +$gdMemo = $imagickMemo = 'Either GD PHP extension with FreeType support or ImageMagick PHP extension with PNG support is required for image CAPTCHA.'; +$gdOK = $imagickOK = false; + +if (extension_loaded('imagick')) { + $imagick = new Imagick(); + $imagickFormats = $imagick->queryFormats('PNG'); + if (in_array('PNG', $imagickFormats)) { + $imagickOK = true; + } else { + $imagickMemo = 'Imagick extension should be installed with PNG support in order to be used for image CAPTCHA.'; + } +} + +if (extension_loaded('gd')) { + $gdInfo = gd_info(); + if (!empty($gdInfo['FreeType Support'])) { + $gdOK = true; + } else { + $gdMemo = 'GD extension should be installed with FreeType support in order to be used for image CAPTCHA.'; + } +} + +/** + * Adjust requirements according to your application specifics. + */ +$requirements = array( + // Database : + array( + 'name' => 'PDO extension', + 'mandatory' => true, + 'condition' => extension_loaded('pdo'), + 'by' => 'All DB-related classes', + ), + array( + 'name' => 'PDO SQLite extension', + 'mandatory' => false, + 'condition' => extension_loaded('pdo_sqlite'), + 'by' => 'All DB-related classes', + 'memo' => 'Required for SQLite database.', + ), + array( + 'name' => 'PDO MySQL extension', + 'mandatory' => false, + 'condition' => extension_loaded('pdo_mysql'), + 'by' => 'All DB-related classes', + 'memo' => 'Required for MySQL database.', + ), + array( + 'name' => 'PDO PostgreSQL extension', + 'mandatory' => false, + 'condition' => extension_loaded('pdo_pgsql'), + 'by' => 'All DB-related classes', + 'memo' => 'Required for PostgreSQL database.', + ), + // Cache : + array( + 'name' => 'Memcache extension', + 'mandatory' => false, + 'condition' => extension_loaded('memcache') || extension_loaded('memcached'), + 'by' => 'MemCache', + 'memo' => extension_loaded('memcached') ? 'To use memcached set MemCache::useMemcached to true.' : '' + ), + array( + 'name' => 'APC extension', + 'mandatory' => false, + 'condition' => extension_loaded('apc'), + 'by' => 'ApcCache', + ), + // CAPTCHA: + array( + 'name' => 'GD PHP extension with FreeType support', + 'mandatory' => false, + 'condition' => $gdOK, + 'by' => 'Captcha', + 'memo' => $gdMemo, + ), + array( + 'name' => 'ImageMagick PHP extension with PNG support', + 'mandatory' => false, + 'condition' => $imagickOK, + 'by' => 'Captcha', + 'memo' => $imagickMemo, + ), + // PHP ini : + 'phpExposePhp' => array( + 'name' => 'Expose PHP', + 'mandatory' => false, + 'condition' => $requirementsChecker->checkPhpIniOff("expose_php"), + 'by' => 'Security reasons', + 'memo' => '"expose_php" should be disabled at php.ini', + ), + 'phpAllowUrlInclude' => array( + 'name' => 'PHP allow url include', + 'mandatory' => false, + 'condition' => $requirementsChecker->checkPhpIniOff("allow_url_include"), + 'by' => 'Security reasons', + 'memo' => '"allow_url_include" should be disabled at php.ini', + ), + 'phpSmtp' => array( + 'name' => 'PHP mail SMTP', + 'mandatory' => false, + 'condition' => strlen(ini_get('SMTP')) > 0, + 'by' => 'Email sending', + 'memo' => 'PHP mail SMTP server required', + ), +); + +$result = $requirementsChecker->checkYii()->check($requirements)->getResult(); +$requirementsChecker->render(); + +exit($result['summary']['errors'] === 0 ? 0 : 1); diff --git a/vagrant/config/.gitignore b/vagrant/config/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..0685a56caf035f0daeebcefe0ab4ea5869177b66 --- /dev/null +++ b/vagrant/config/.gitignore @@ -0,0 +1,2 @@ +# local configuration +vagrant-local.yml \ No newline at end of file diff --git a/vagrant/config/vagrant-local.example.yml b/vagrant/config/vagrant-local.example.yml new file mode 100755 index 0000000000000000000000000000000000000000..7b364009e8e0bafd233b6e0340c80113aee7026e --- /dev/null +++ b/vagrant/config/vagrant-local.example.yml @@ -0,0 +1,22 @@ +# Your personal GitHub token +github_token: +# Read more: https://github.com/blog/1509-personal-api-tokens +# You can generate it here: https://github.com/settings/tokens + +# Guest OS timezone +timezone: Europe/London + +# Are we need check box updates for every 'vagrant up'? +box_check_update: false + +# Virtual machine name +machine_name: y2aa + +# Virtual machine IP +ip: 192.168.83.137 + +# Virtual machine CPU cores number +cpus: 1 + +# Virtual machine RAM +memory: 1024 diff --git a/vagrant/nginx/app.conf b/vagrant/nginx/app.conf new file mode 100755 index 0000000000000000000000000000000000000000..711ca7cdbd0db1a754e0c64c3b640fac4be31302 --- /dev/null +++ b/vagrant/nginx/app.conf @@ -0,0 +1,77 @@ +server { + charset utf-8; + client_max_body_size 128M; + sendfile off; + + listen 80; ## listen for ipv4 + #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 + + server_name y2aa-frontend.test; + root /app/frontend/web/; + index index.php; + + access_log /app/vagrant/nginx/log/frontend-access.log; + error_log /app/vagrant/nginx/log/frontend-error.log; + + location / { + # Redirect everything that isn't a real file to index.php + try_files $uri $uri/ /index.php$is_args$args; + } + + # uncomment to avoid processing of calls to non-existing static files by Yii + #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { + # try_files $uri =404; + #} + #error_page 404 /404.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + #fastcgi_pass 127.0.0.1:9000; + fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; + try_files $uri =404; + } + + location ~ /\.(ht|svn|git) { + deny all; + } +} + +server { + charset utf-8; + client_max_body_size 128M; + sendfile off; + + listen 80; ## listen for ipv4 + #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 + + server_name y2aa-backend.test; + root /app/backend/web/; + index index.php; + + access_log /app/vagrant/nginx/log/backend-access.log; + error_log /app/vagrant/nginx/log/backend-error.log; + + location / { + # Redirect everything that isn't a real file to index.php + try_files $uri $uri/ /index.php$is_args$args; + } + + # uncomment to avoid processing of calls to non-existing static files by Yii + #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { + # try_files $uri =404; + #} + #error_page 404 /404.html; + + location ~ \.php$ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + #fastcgi_pass 127.0.0.1:9000; + fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; + try_files $uri =404; + } + + location ~ /\.(ht|svn|git) { + deny all; + } +} diff --git a/vagrant/nginx/log/.gitignore b/vagrant/nginx/log/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..c15cedd37cfa64f0393bc0e41807420137237ec0 --- /dev/null +++ b/vagrant/nginx/log/.gitignore @@ -0,0 +1,5 @@ +# nginx logs +backend-access.log +backend-error.log +frontend-access.log +frontend-error.log \ No newline at end of file diff --git a/vagrant/provision/always-as-root.sh b/vagrant/provision/always-as-root.sh new file mode 100755 index 0000000000000000000000000000000000000000..6dcbf4ffb8e4a9de2d520e6b9fcb4ae5db8f119c --- /dev/null +++ b/vagrant/provision/always-as-root.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +source /app/vagrant/provision/common.sh + +#== Provision script == + +info "Provision-script user: `whoami`" + +info "Restart web-stack" +service php7.0-fpm restart +service nginx restart +service mysql restart \ No newline at end of file diff --git a/vagrant/provision/common.sh b/vagrant/provision/common.sh new file mode 100755 index 0000000000000000000000000000000000000000..ab5e1e0c1f3240ce0d867b474eb3d5dc2332ce98 --- /dev/null +++ b/vagrant/provision/common.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +#== Bash helpers == + +function info { + echo " " + echo "--> $1" + echo " " +} diff --git a/vagrant/provision/once-as-root.sh b/vagrant/provision/once-as-root.sh new file mode 100755 index 0000000000000000000000000000000000000000..a9ae46a44f2d87131b4d7feb02617bfe562d9ad6 --- /dev/null +++ b/vagrant/provision/once-as-root.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash + +source /app/vagrant/provision/common.sh + +#== Import script args == + +timezone=$(echo "$1") + +#== Provision script == + +info "Provision-script user: `whoami`" + +export DEBIAN_FRONTEND=noninteractive + +info "Configure timezone" +timedatectl set-timezone ${timezone} --no-ask-password + +info "Prepare root password for MySQL" +debconf-set-selections <<< "mysql-community-server mysql-community-server/root-pass password \"''\"" +debconf-set-selections <<< "mysql-community-server mysql-community-server/re-root-pass password \"''\"" +echo "Done!" + +info "Update OS software" +apt-get update +apt-get upgrade -y + +info "Install additional software" +apt-get install -y php7.0-curl php7.0-cli php7.0-intl php7.0-mysqlnd php7.0-gd php7.0-fpm php7.0-mbstring php7.0-xml unzip nginx mysql-server-5.7 php.xdebug + +info "Configure MySQL" +sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mysql.conf.d/mysqld.cnf +mysql -uroot <<< "CREATE USER 'root'@'%' IDENTIFIED BY ''" +mysql -uroot <<< "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'" +mysql -uroot <<< "DROP USER 'root'@'localhost'" +mysql -uroot <<< "FLUSH PRIVILEGES" +echo "Done!" + +info "Configure PHP-FPM" +sed -i 's/user = www-data/user = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf +sed -i 's/group = www-data/group = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf +sed -i 's/owner = www-data/owner = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf +cat << EOF > /etc/php/7.0/mods-available/xdebug.ini +zend_extension=xdebug.so +xdebug.remote_enable=1 +xdebug.remote_connect_back=1 +xdebug.remote_port=9000 +xdebug.remote_autostart=1 +EOF +echo "Done!" + +info "Configure NGINX" +sed -i 's/user www-data/user vagrant/g' /etc/nginx/nginx.conf +echo "Done!" + +info "Enabling site configuration" +ln -s /app/vagrant/nginx/app.conf /etc/nginx/sites-enabled/app.conf +echo "Done!" + +info "Initailize databases for MySQL" +mysql -uroot <<< "CREATE DATABASE yii2advanced" +mysql -uroot <<< "CREATE DATABASE yii2advanced_test" +echo "Done!" + +info "Install composer" +curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \ No newline at end of file diff --git a/vagrant/provision/once-as-vagrant.sh b/vagrant/provision/once-as-vagrant.sh new file mode 100755 index 0000000000000000000000000000000000000000..ffaa898da73004da8ee724378ceaca33d8e3c1e3 --- /dev/null +++ b/vagrant/provision/once-as-vagrant.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +source /app/vagrant/provision/common.sh + +#== Import script args == + +github_token=$(echo "$1") + +#== Provision script == + +info "Provision-script user: `whoami`" + +info "Configure composer" +composer config --global github-oauth.github.com ${github_token} +echo "Done!" + +info "Install project dependencies" +cd /app +composer --no-progress --prefer-dist install + +info "Init project" +./init --env=Development --overwrite=y + +info "Apply migrations" +./yii migrate --interactive=0 +./yii_test migrate --interactive=0 + +info "Create bash-alias 'app' for vagrant user" +echo 'alias app="cd /app"' | tee /home/vagrant/.bash_aliases + +info "Enabling colorized prompt for guest console" +sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/" /home/vagrant/.bashrc diff --git a/yii b/yii new file mode 100755 index 0000000000000000000000000000000000000000..b93b5cf50cd0eb50579d232a9396c93069078f76 --- /dev/null +++ b/yii @@ -0,0 +1,24 @@ +#!/usr/bin/env php +run(); +exit($exitCode); diff --git a/yii.bat b/yii.bat new file mode 100755 index 0000000000000000000000000000000000000000..3a6894246cdeb4992ef6b5c343d3320241cfc389 --- /dev/null +++ b/yii.bat @@ -0,0 +1,15 @@ +@echo off + +rem ------------------------------------------------------------- +rem Yii command line bootstrap script for Windows. +rem ------------------------------------------------------------- + +@setlocal + +set YII_PATH=%~dp0 + +if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe + +"%PHP_COMMAND%" "%YII_PATH%yii" %* + +@endlocal diff --git a/yii.sql b/yii.sql new file mode 100644 index 0000000000000000000000000000000000000000..bffcb8ee70c31b0234e8538f7304762402690e88 --- /dev/null +++ b/yii.sql @@ -0,0 +1,1291 @@ +-- phpMyAdmin SQL Dump +-- version 4.9.4 +-- https://www.phpmyadmin.net/ +-- +-- 主机: mysql +-- 生成日期: 2020-03-18 10:34:45 +-- 服务器版本: 5.7.29 +-- PHP 版本: 7.2.27 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- 数据库: `yii` +-- + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_action_logs` +-- + +CREATE TABLE `y_action_logs` ( + `id` int(10) UNSIGNED NOT NULL, + `info` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `message` text COLLATE utf8_unicode_ci NOT NULL, + `log_date` int(11) NOT NULL, + `uid` int(11) NOT NULL DEFAULT '0', + `item_id` int(11) NOT NULL DEFAULT '0', + `ip_address` varchar(40) COLLATE utf8_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_action_logs` +-- + +INSERT INTO `y_action_logs` (`id`, `info`, `message`, `log_date`, `uid`, `item_id`, `ip_address`) VALUES +(1, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571737951, 1, 0, '127.0.0.1'), +(2, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571737957, 1, 0, '127.0.0.1'), +(3, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571737962, 1, 0, '127.0.0.1'), +(4, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571752360, 1, 0, '127.0.0.1'), +(5, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571752370, 1, 0, '127.0.0.1'), +(6, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571799233, 1, 0, '127.0.0.1'), +(7, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1571969229, 1, 0, '127.0.0.1'), +(8, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574668950, 1, 0, '172.17.0.1'), +(9, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574686523, 1, 0, '172.17.0.1'), +(10, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574730996, 1, 0, '172.17.0.1'), +(11, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574770178, 1, 0, '172.17.0.1'), +(12, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1574777174, 1, 0, '172.17.0.1'), +(13, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1574777221, 1, 0, '172.17.0.1'), +(14, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574906783, 1, 0, '172.17.0.1'), +(15, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1574995386, 1, 0, '172.17.0.1'), +(16, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575006849, 1, 0, '192.168.1.3'), +(17, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575030984, 1, 0, '172.17.0.1'), +(18, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575030996, 1, 0, '172.17.0.1'), +(19, 'USER_LOGGED_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575031226, 1, 0, '172.17.0.1'), +(20, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575031233, 1, 0, '172.17.0.1'), +(21, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575033968, 1, 0, '172.17.0.1'), +(22, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575034004, 1, 0, '192.168.1.3'), +(23, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575117958, 1, 0, '172.17.0.1'), +(24, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575117975, 1, 0, '172.17.0.1'), +(25, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575117981, 1, 0, '172.17.0.1'), +(26, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575119233, 1, 0, '172.17.0.1'), +(27, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575119370, 1, 0, '172.17.0.1'), +(28, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575119406, 1, 0, '172.17.0.1'), +(29, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575119412, 1, 0, '172.17.0.1'), +(30, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575119482, 1, 0, '172.17.0.1'), +(31, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575120703, 1, 0, '172.17.0.1'), +(32, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121119, 1, 0, '172.17.0.1'), +(33, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121155, 1, 0, '172.17.0.1'), +(34, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121168, 1, 0, '172.17.0.1'), +(35, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121508, 1, 0, '172.17.0.1'), +(36, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121650, 1, 0, '172.17.0.1'), +(37, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121926, 1, 0, '192.168.1.3'), +(38, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121939, 1, 0, '192.168.1.3'), +(39, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575121987, 1, 0, '192.168.1.3'), +(40, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575166009, 1, 0, '172.17.0.1'), +(41, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575166146, 1, 0, '172.17.0.1'), +(42, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575167896, 1, 0, '172.17.0.1'), +(43, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575168692, 1, 0, '172.17.0.1'), +(44, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575169360, 1, 0, '172.17.0.1'), +(45, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575169406, 1, 0, '192.168.1.3'), +(46, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575181428, 1, 0, '172.17.0.1'), +(47, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575181437, 1, 0, '172.17.0.1'), +(48, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197392, 1, 0, '192.168.1.3'), +(49, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197548, 1, 0, '192.168.1.3'), +(50, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197569, 1, 0, '192.168.1.3'), +(51, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197581, 1, 0, '192.168.1.3'), +(52, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197592, 1, 0, '192.168.1.3'), +(53, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575197751, 1, 0, '172.17.0.1'), +(54, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575253834, 1, 0, '192.168.1.3'), +(55, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575254039, 1, 0, '172.17.0.1'), +(56, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575254846, 1, 0, '172.17.0.1'), +(57, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575276529, 1, 0, '192.168.1.5'), +(58, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575281347, 1, 0, '192.168.1.3'), +(59, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575283424, 1, 0, '192.168.1.5'), +(60, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575283560, 1, 0, '172.17.0.1'), +(61, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575289567, 1, 0, '172.17.0.1'), +(62, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575338533, 1, 0, '172.17.0.1'), +(63, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575339786, 1, 0, '172.17.0.1'), +(64, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575339798, 1, 0, '172.17.0.1'), +(65, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575340464, 1, 0, '192.168.1.5'), +(66, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575340532, 1, 0, '192.168.1.3'), +(67, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575354304, 1, 0, '172.17.0.1'), +(68, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575375506, 1, 0, '172.17.0.1'), +(69, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575511264, 1, 0, '172.17.0.1'), +(70, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575525993, 1, 0, '192.168.1.3'), +(71, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575542649, 1, 0, '172.17.0.1'), +(72, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575542726, 1, 0, '172.17.0.1'), +(73, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575543674, 1, 0, '172.17.0.1'), +(74, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575545654, 1, 0, '192.168.1.3'), +(75, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575596156, 1, 0, '172.17.0.1'), +(76, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575597504, 1, 0, '192.168.1.3'), +(79, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575619778, 1, 0, '172.17.0.1'), +(80, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575620067, 1, 0, '172.17.0.1'), +(81, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575621740, 1, 0, '172.17.0.1'), +(82, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575621746, 1, 0, '172.17.0.1'), +(83, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575622351, 1, 0, '172.17.0.1'), +(84, 'USER_PURGED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1575622823, 1, 0, '172.17.0.1'), +(85, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575632191, 1, 0, '172.17.0.1'), +(86, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575684383, 1, 0, '172.17.0.1'), +(87, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575719702, 1, 0, '192.168.1.3'), +(88, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575721864, 1, 0, '172.17.0.1'), +(89, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575772539, 1, 0, '192.168.1.2'), +(90, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575774134, 1, 0, '172.17.0.1'), +(91, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575857251, 1, 0, '192.168.1.4'), +(92, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575857412, 1, 0, '172.17.0.1'), +(93, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575890094, 1, 0, '172.17.0.1'), +(94, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1575946103, 1, 0, '172.17.0.1'), +(95, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576029647, 1, 0, '192.168.1.4'), +(96, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576030460, 1, 0, '172.17.0.1'), +(97, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576116774, 1, 0, '172.17.0.1'), +(98, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576130316, 1, 0, '192.168.1.4'), +(99, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1576131743, 1, 0, '192.168.1.4'), +(100, 'USER_EXPORTED_ONE_OR_MORE_ROWS', '{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}', 1576131763, 1, 0, '192.168.1.4'), +(101, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576221161, 1, 0, '172.17.0.1'), +(102, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576226423, 1, 0, '192.168.1.4'), +(103, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576227951, 1, 0, '192.168.1.4'), +(104, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576227991, 1, 0, '192.168.1.4'), +(105, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576320796, 1, 0, '172.17.0.1'), +(106, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576374728, 1, 0, '192.168.1.4'), +(107, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576375107, 1, 0, '172.17.0.1'), +(108, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576407532, 1, 0, '172.17.0.1'), +(109, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576408790, 1, 0, '172.17.0.1'), +(110, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409198, 3, 0, '172.17.0.1'), +(111, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409362, 3, 0, '172.17.0.1'), +(112, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409370, 1, 0, '172.17.0.1'), +(113, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409463, 1, 0, '172.17.0.1'), +(114, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409471, 3, 0, '172.17.0.1'), +(115, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409476, 3, 0, '172.17.0.1'), +(116, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576409483, 1, 0, '172.17.0.1'), +(117, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576411922, 1, 0, '192.168.1.4'), +(118, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576417751, 1, 0, '172.17.0.1'), +(119, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576417758, 1, 0, '172.17.0.1'), +(120, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576417800, 1, 0, '172.17.0.1'), +(121, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}', 1576417869, 1, 0, '172.17.0.1'), +(122, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576417875, 1, 0, '172.17.0.1'), +(123, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576419250, 1, 0, '172.17.0.1'), +(124, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576463590, 1, 0, '172.17.0.1'), +(125, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576464150, 1, 0, '192.168.1.4'), +(126, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576500473, 1, 0, '172.17.0.1'), +(127, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576500489, 1, 0, '172.17.0.1'), +(128, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576503596, 1, 0, '172.17.0.1'), +(129, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576503603, 1, 0, '172.17.0.1'), +(130, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576503609, 1, 0, '172.17.0.1'), +(131, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576549548, 1, 0, '172.17.0.1'), +(132, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576549787, 3, 0, '172.17.0.1'), +(133, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576563805, 1, 0, '192.168.1.4'), +(134, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576563822, 1, 0, '192.168.1.4'), +(135, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576563835, 3, 0, '192.168.1.4'), +(136, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576567127, 3, 0, '192.168.1.4'), +(137, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576567200, 1, 0, '172.17.0.1'), +(138, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576567205, 1, 0, '172.17.0.1'), +(139, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576567213, 3, 0, '172.17.0.1'), +(140, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576572206, 3, 0, '172.17.0.1'), +(141, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576572213, 1, 0, '172.17.0.1'), +(142, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576575736, 3, 0, '192.168.1.4'), +(143, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576575900, 3, 0, '192.168.1.4'), +(144, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576575999, 1, 0, '192.168.1.4'), +(145, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576635014, 1, 0, '172.17.0.1'), +(146, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576665796, 1, 0, '172.17.0.1'), +(147, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576676566, 1, 0, '192.168.1.4'), +(148, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576719577, 1, 0, '192.168.1.4'), +(149, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576720229, 1, 0, '172.17.0.1'), +(150, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576753937, 1, 0, '172.17.0.1'), +(151, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576804884, 1, 0, '172.17.0.1'), +(152, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576809052, 1, 0, '192.168.1.4'), +(153, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576809114, 1, 0, '192.168.1.2'), +(154, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"frontend\"}', 1576813249, 1, 0, '172.17.0.1'), +(155, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576813254, 1, 0, '172.17.0.1'), +(156, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576840356, 1, 0, '172.17.0.1'), +(157, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576893383, 1, 0, '172.17.0.1'), +(158, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576925290, 1, 0, '172.17.0.1'), +(159, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576926702, 1, 0, '192.168.1.2'), +(160, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576926712, 1, 0, '192.168.1.2'), +(161, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1576926720, 3, 0, '192.168.1.2'), +(162, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1576985120, 1, 0, '172.17.0.1'), +(163, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577067436, 1, 0, '172.17.0.1'), +(164, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577170608, 1, 0, '172.17.0.1'), +(165, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577238545, 1, 0, '172.17.0.1'), +(166, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577324765, 1, 0, '172.17.0.1'), +(167, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577340434, 1, 0, '172.17.0.1'), +(168, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577340494, 1, 0, '172.17.0.1'), +(169, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577340686, 1, 0, '172.17.0.1'), +(170, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577428230, 1, 0, '172.17.0.1'), +(171, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577449097, 1, 0, '172.17.0.1'), +(172, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577497838, 1, 0, '172.17.0.1'), +(173, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577585432, 1, 0, '172.17.0.1'), +(174, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577670202, 1, 0, '172.17.0.1'), +(175, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577697998, 1, 0, '192.168.1.4'), +(176, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577760669, 1, 0, '172.17.0.1'), +(177, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}', 1577799348, 3, 0, '172.17.0.1'), +(178, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577843552, 1, 0, '172.17.0.1'), +(179, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577869022, 1, 0, '172.17.0.1'), +(180, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577870162, 1, 0, '172.17.0.1'), +(181, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577870203, 1, 0, '172.17.0.1'), +(182, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1577931023, 1, 0, '172.17.0.1'), +(183, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578015109, 1, 0, '172.17.0.1'), +(184, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578049518, 1, 0, '172.17.0.1'), +(185, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578103648, 1, 0, '172.17.0.1'), +(186, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578118609, 1, 0, '172.17.0.1'), +(187, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578188499, 1, 0, '172.17.0.1'), +(188, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578308037, 1, 0, '172.17.0.1'), +(189, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578363435, 1, 0, '172.17.0.1'), +(190, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578395269, 1, 0, '172.17.0.1'), +(191, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578482210, 1, 0, '172.17.0.1'), +(192, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578535178, 1, 0, '172.17.0.1'), +(193, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578621998, 1, 0, '172.17.0.1'), +(194, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578709068, 1, 0, '172.17.0.1'), +(195, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578715179, 1, 0, '172.17.0.1'), +(196, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578715179, 1, 0, '172.17.0.1'), +(197, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578715187, 1, 0, '172.17.0.1'), +(198, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715323, 2, 0, '172.17.0.1'), +(199, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715695, 2, 0, '172.17.0.1'), +(200, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715734, 2, 0, '172.17.0.1'), +(201, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715856, 2, 0, '172.17.0.1'), +(202, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715950, 2, 0, '172.17.0.1'), +(203, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578715960, 2, 0, '172.17.0.1'), +(204, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578716366, 2, 0, '172.17.0.1'), +(205, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578716377, 2, 0, '172.17.0.1'), +(206, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}', 1578716380, 2, 0, '172.17.0.1'), +(207, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578743044, 1, 0, '172.17.0.1'), +(208, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578748903, 1, 0, '172.17.0.1'), +(209, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578797224, 1, 0, '172.17.0.1'), +(210, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"frontend\"}', 1578835826, 1, 0, '172.17.0.1'), +(211, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578835954, 1, 0, '172.17.0.1'), +(212, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578879690, 1, 0, '172.17.0.1'), +(213, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578914733, 1, 0, '172.17.0.1'), +(214, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578969291, 1, 0, '172.17.0.1'), +(215, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1578992355, 1, 0, '172.17.0.1'), +(216, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579055540, 1, 0, '172.17.0.1'), +(217, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579140553, 1, 0, '172.17.0.1'), +(218, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579141262, 1, 0, '172.17.0.1'), +(219, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579179955, 1, 0, '172.17.0.1'), +(220, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579228850, 1, 0, '172.17.0.1'), +(221, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579258421, 1, 0, '172.17.0.1'), +(222, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579310884, 1, 0, '172.17.0.1'), +(223, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579351178, 1, 0, '172.17.0.1'), +(224, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579400325, 1, 0, '172.17.0.1'), +(225, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579434491, 1, 0, '172.17.0.1'), +(226, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579519212, 1, 0, '172.17.0.1'), +(227, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579571311, 1, 0, '172.17.0.1'), +(228, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579572337, 1, 0, '172.17.0.1'), +(229, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1579660542, 1, 0, '172.17.0.1'), +(230, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582006681, 1, 0, '172.17.0.1'), +(231, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582077932, 1, 0, '172.17.0.1'), +(232, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582099485, 1, 0, '172.17.0.1'), +(233, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582163560, 1, 0, '172.17.0.1'), +(234, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582167282, 1, 0, '172.17.0.1'), +(235, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582173249, 1, 0, '172.17.0.1'), +(236, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582254166, 1, 0, '172.17.0.1'), +(237, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582254171, 1, 0, '172.17.0.1'), +(238, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582278070, 1, 0, '172.17.0.1'), +(239, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582462612, 1, 0, '172.17.0.1'), +(240, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582462882, 1, 0, '172.17.0.1'), +(241, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582943471, 1, 0, '172.17.0.1'), +(242, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1582943471, 1, 0, '172.17.0.1'), +(243, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583115092, 1, 0, '172.17.0.1'), +(244, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583129265, 1, 0, '172.17.0.1'), +(245, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583204497, 1, 0, '172.17.0.1'), +(246, 'USER_LOGGED_OUT_APP', '{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583224038, 1, 0, '172.17.0.1'), +(247, 'USER_TRIED_LOGIN_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583228450, 1, 0, '172.17.0.1'), +(248, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583228459, 1, 0, '172.17.0.1'), +(249, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583288611, 1, 0, '172.17.0.1'), +(250, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583325760, 1, 0, '172.17.0.1'), +(251, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583330991, 1, 0, '172.17.0.1'), +(252, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583374306, 1, 0, '172.17.0.1'), +(253, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583475198, 1, 0, '172.17.0.1'), +(254, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583585834, 1, 0, '172.17.0.1'), +(255, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583632798, 1, 0, '172.17.0.1'), +(256, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583754076, 1, 0, '172.17.0.1'), +(257, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583809737, 1, 0, '172.17.0.1'), +(258, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1583976672, 1, 0, '172.17.0.1'), +(259, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1584099097, 1, 0, '172.17.0.1'), +(260, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1584099180, 1, 0, '172.17.0.1'), +(261, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1584186175, 1, 0, '172.17.0.1'), +(262, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1584250774, 1, 0, '172.17.0.1'), +(263, 'USER_LOGGED_APP', '{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}', 1584494813, 1, 0, '172.17.0.1'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_admin` +-- + +CREATE TABLE `y_admin` ( + `uid` int(11) NOT NULL, + `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lastvisitDate` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_admin` +-- + +INSERT INTO `y_admin` (`uid`, `name`, `lastvisitDate`) VALUES +(1, 'Super User', 1584494813), +(3, '', 1577799348); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_auth_assignment` +-- + +CREATE TABLE `y_auth_assignment` ( + `item_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `user_id` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `created_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_auth_assignment` +-- + +INSERT INTO `y_auth_assignment` (`item_name`, `user_id`, `created_at`) VALUES +('ROLE_REGISTERED', '2', 1576329270), +('ROLE_SUPER_ADMINISTRATOR', '1', 1565848960), +('ROLE_SUPER_ADMINISTRATOR', '3', 1577799376); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_auth_item` +-- + +CREATE TABLE `y_auth_item` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `type` smallint(6) NOT NULL, + `description` text COLLATE utf8_unicode_ci, + `rule_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_auth_item` +-- + +INSERT INTO `y_auth_item` (`name`, `type`, `description`, `rule_name`, `data`, `created_at`, `updated_at`) VALUES +('@app-backend/*', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/actionlogs/*', 2, NULL, NULL, NULL, 1571735776, 1571735776), +('@app-backend/actionlogs/default/*', 2, NULL, NULL, NULL, 1571735776, 1571735776), +('@app-backend/actionlogs/default/index', 2, NULL, NULL, NULL, 1571735776, 1571735776), +('@app-backend/admin/*', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/assignment/*', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/assignment/assign', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/assignment/index', 2, NULL, NULL, NULL, 1565848732, 1565848732), +('@app-backend/admin/assignment/revoke', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/assignment/view', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/default/*', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/default/index', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/*', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/create', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/delete', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/index', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/update', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu-types/view', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/*', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/create', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/delete', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/index', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/update', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/menu/view', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/*', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/permission/assign', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/create', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/delete', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/index', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/remove', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/permission/update', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/permission/view', 2, NULL, NULL, NULL, 1565848733, 1565848733), +('@app-backend/admin/role/*', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/assign', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/create', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/delete', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/index', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/remove', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/update', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/role/view', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/*', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/assign', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/create', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/index', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/refresh', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/route/remove', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/*', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/create', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/delete', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/index', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/update', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/rule/view', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/user/*', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/activate', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/change-password', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/delete', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/user/index', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/user/login', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/user/logout', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/admin/user/request-password-reset', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/reset-password', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/signup', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/admin/user/view', 2, NULL, NULL, NULL, 1565848734, 1565848734), +('@app-backend/cache/*', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/cache/index', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/*', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/create', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/delete', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/index', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/update', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/clients/view', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/content/*', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/content/articles/*', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/content/articles/create', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/content/articles/delete', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/content/articles/index', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/content/articles/update', 2, NULL, NULL, NULL, 1578832026, 1578832026), +('@app-backend/extensions/*', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/extensions/create', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/extensions/delete', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/extensions/installer', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/extensions/manage', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/extensions/update', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/extensions/view', 2, NULL, NULL, NULL, 1565848735, 1565848735), +('@app-backend/languages/*', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/installed/*', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/installed/index', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/installed/switch', 2, NULL, NULL, NULL, 1569852538, 1569852538), +('@app-backend/languages/languages/*', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/languages/create', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/languages/delete', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/languages/index', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/languages/update', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/languages/view', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/overrides/*', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/overrides/create', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/overrides/delete', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/overrides/index', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/languages/overrides/update', 2, NULL, NULL, NULL, 1569760303, 1569760303), +('@app-backend/media/*', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/default/*', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/default/create', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/default/delete', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/default/index', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/default/upload', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/images/*', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/images/index', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/media/images/upload', 2, NULL, NULL, NULL, 1574857671, 1574857671), +('@app-backend/plugins/*', 2, NULL, NULL, NULL, 1574684794, 1574684794), +('@app-backend/plugins/default/*', 2, NULL, NULL, NULL, 1574684794, 1574684794), +('@app-backend/plugins/default/edit', 2, NULL, NULL, NULL, 1574684794, 1574684794), +('@app-backend/plugins/default/index', 2, NULL, NULL, NULL, 1574684794, 1574684794), +('@app-backend/site/*', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/site/error', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/site/icon', 2, NULL, NULL, NULL, 1578713143, 1578713143), +('@app-backend/site/index', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/site/login', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/site/logout', 2, NULL, NULL, NULL, 1565848736, 1565848736), +('@app-backend/site/sysinfo', 2, NULL, NULL, NULL, 1575858346, 1575858346), +('@app-backend/themes/*', 2, NULL, NULL, NULL, 1575343826, 1575343826), +('@app-backend/themes/styles/*', 2, NULL, NULL, NULL, 1575343825, 1575343825), +('@app-backend/themes/styles/index', 2, NULL, NULL, NULL, 1575343825, 1575343825), +('@app-backend/widgets/*', 2, NULL, NULL, NULL, 1575862824, 1575862824), +('@app-backend/widgets/default/*', 2, NULL, NULL, NULL, 1575862824, 1575862824), +('@app-backend/widgets/default/index', 2, NULL, NULL, NULL, 1575862824, 1575862824), +('@app-frontend/*', 2, NULL, NULL, NULL, 1576323440, 1576323440), +('@app-frontend/content/*', 2, NULL, NULL, NULL, 1578835780, 1578835780), +('@app-frontend/content/default/*', 2, NULL, NULL, NULL, 1578835780, 1578835780), +('@app-frontend/content/default/index', 2, NULL, NULL, NULL, 1578835780, 1578835780), +('@app-frontend/content/default/view', 2, NULL, NULL, NULL, 1578835780, 1578835780), +('@app-frontend/site/*', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/about', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/captcha', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/contact', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/error', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/index', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/language', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/login', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/logout', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/redirect', 2, NULL, NULL, NULL, 1583400862, 1583400862), +('@app-frontend/site/request-password-reset', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/resend-verification-email', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/reset-password', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/signup', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('@app-frontend/site/verify-email', 2, NULL, NULL, NULL, 1578713399, 1578713399), +('ROLE_PUBLIC', 1, 'ROLE_PUBLIC_DESCRIPTION', NULL, NULL, 1578711818, 1578743406), +('ROLE_REGISTERED', 1, 'ROLE_REGISTERED_DESCRIPTION', NULL, NULL, 1576325765, 1578743395), +('ROLE_SUPER_ADMINISTRATOR', 1, 'ROLE_SUPER_ADMINISTRATOR_DESCRIPTION', NULL, NULL, 1565848943, 1578743381); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_auth_item_child` +-- + +CREATE TABLE `y_auth_item_child` ( + `parent` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `child` varchar(64) COLLATE utf8_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_auth_item_child` +-- + +INSERT INTO `y_auth_item_child` (`parent`, `child`) VALUES +('ROLE_SUPER_ADMINISTRATOR', '@app-backend/*'), +('ROLE_PUBLIC', '@app-backend/admin/user/login'), +('ROLE_PUBLIC', '@app-backend/admin/user/logout'), +('ROLE_PUBLIC', '@app-backend/admin/user/request-password-reset'), +('ROLE_PUBLIC', '@app-backend/admin/user/signup'), +('ROLE_PUBLIC', '@app-backend/site/error'), +('ROLE_PUBLIC', '@app-backend/site/login'), +('ROLE_PUBLIC', '@app-backend/site/logout'), +('ROLE_REGISTERED', '@app-frontend/*'), +('ROLE_PUBLIC', '@app-frontend/content/*'), +('ROLE_PUBLIC', '@app-frontend/site/about'), +('ROLE_PUBLIC', '@app-frontend/site/captcha'), +('ROLE_PUBLIC', '@app-frontend/site/contact'), +('ROLE_PUBLIC', '@app-frontend/site/error'), +('ROLE_PUBLIC', '@app-frontend/site/index'), +('ROLE_PUBLIC', '@app-frontend/site/language'), +('ROLE_PUBLIC', '@app-frontend/site/login'), +('ROLE_PUBLIC', '@app-frontend/site/logout'), +('ROLE_PUBLIC', '@app-frontend/site/redirect'), +('ROLE_PUBLIC', '@app-frontend/site/request-password-reset'), +('ROLE_PUBLIC', '@app-frontend/site/resend-verification-email'), +('ROLE_PUBLIC', '@app-frontend/site/signup'), +('ROLE_PUBLIC', '@app-frontend/site/verify-email'), +('ROLE_SUPER_ADMINISTRATOR', 'ROLE_REGISTERED'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_auth_rule` +-- + +CREATE TABLE `y_auth_rule` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_categories` +-- + +CREATE TABLE `y_categories` ( + `id` int(11) NOT NULL, + `parent_id` int(10) UNSIGNED NOT NULL DEFAULT '0', + `lft` int(11) NOT NULL DEFAULT '0', + `rgt` int(11) NOT NULL DEFAULT '0', + `level` int(10) UNSIGNED NOT NULL DEFAULT '0', + `path` varchar(400) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `extension` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `alias` varchar(400) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `description` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `published` tinyint(1) NOT NULL DEFAULT '0', + `params` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `metakey` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `metadata` varchar(2048) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `created_by` int(10) UNSIGNED NOT NULL DEFAULT '0', + `created_at` int(11) NOT NULL, + `modified_by` int(10) UNSIGNED NOT NULL DEFAULT '0', + `modified_at` int(11) NOT NULL, + `hits` int(10) UNSIGNED NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_categories` +-- + +INSERT INTO `y_categories` (`id`, `parent_id`, `lft`, `rgt`, `level`, `path`, `extension`, `title`, `alias`, `note`, `description`, `published`, `params`, `metadesc`, `metakey`, `metadata`, `created_by`, `created_at`, `modified_by`, `modified_at`, `hits`, `language`) VALUES +(1, 0, 0, 1, 0, 'uncategorised', 'mod_content', 'Uncategorised', 'uncategorised', '', '', 1, '{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}', '', '', '{\"author\":\"\",\"robots\":\"\"}', 1, 1576828229, 1, 1583477774, 0, '*'), +(2, 0, 2, 3, 0, 'news', 'mod_content', 'News', 'news', '', '', 1, '{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}', '', '', '{\"author\":\"\",\"robots\":\"\"}', 1, 1576848918, 1, 1583477774, 0, 'en-US'), +(3, 0, 4, 7, 0, 'news', 'mod_content', '新闻', 'news', '', '', 1, '{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}', '', '', '{\"author\":\"\",\"robots\":\"\"}', 1, 1576849332, 1, 1583477774, 0, 'zh-CN'), +(4, 3, 5, 6, 1, 'news/blog', 'mod_content', '博客', 'blog', '', '', 1, '{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}', '', '', '{\"author\":\"\",\"robots\":\"\"}', 1, 1583477773, 1, 1583477774, 0, 'zh-CN'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_clients` +-- + +CREATE TABLE `y_clients` ( + `id` int(10) UNSIGNED NOT NULL, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `url` varchar(1024) COLLATE utf8_unicode_ci NOT NULL, + `path` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `status` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_clients` +-- + +INSERT INTO `y_clients` (`id`, `name`, `url`, `path`, `description`, `ordering`, `status`) VALUES +(1, 'backend', 'http://backend.tld/', '/backend', 'Background management application', 1, 1), +(2, 'frontend', 'http://frontend.tld/', '/frontend', 'Front desk application', 2, 1); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_content` +-- + +CREATE TABLE `y_content` ( + `id` int(10) UNSIGNED NOT NULL, + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `alias` varchar(400) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', + `introtext` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `fulltext` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `status` tinyint(3) NOT NULL DEFAULT '0', + `catid` int(10) UNSIGNED NOT NULL DEFAULT '0', + `created_at` int(11) NOT NULL, + `created_by` int(10) UNSIGNED NOT NULL DEFAULT '0', + `created_by_alias` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `modified_at` int(11) NOT NULL, + `modified_by` int(10) UNSIGNED NOT NULL DEFAULT '0', + `publish_up` int(11) DEFAULT NULL, + `publish_down` int(11) DEFAULT NULL, + `images` text COLLATE utf8_unicode_ci NOT NULL, + `urls` text COLLATE utf8_unicode_ci NOT NULL, + `attribs` varchar(5120) COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `metakey` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` text COLLATE utf8_unicode_ci NOT NULL, + `hits` int(10) UNSIGNED NOT NULL DEFAULT '0', + `metadata` text COLLATE utf8_unicode_ci NOT NULL, + `featured` tinyint(3) UNSIGNED NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL, + `xreference` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_content` +-- + +INSERT INTO `y_content` (`id`, `title`, `alias`, `introtext`, `fulltext`, `status`, `catid`, `created_at`, `created_by`, `created_by_alias`, `modified_at`, `modified_by`, `publish_up`, `publish_down`, `images`, `urls`, `attribs`, `ordering`, `metakey`, `metadesc`, `hits`, `metadata`, `featured`, `language`, `xreference`, `note`) VALUES +(1, '最新!4名中国船员遭海盗绑架,中国驻加蓬大使馆\"回应\"', 'zui-xin4ming-zhong-guo-chuan-yuan-zao-hai-dao-bang-jia-zhong-guo-zhu-jia-peng-da-shi-guan-hui-ying', '', '

    【环球网报道 记者 李东尧】外媒称,加蓬政府22日表示,加蓬首都利伯维尔港口4艘船只夜间遭到海盗袭击,导致1名加蓬籍船长被杀,另有4名中国籍船员被绑架。刚刚,环球网编辑部收到了中国驻加蓬大使馆工作人员发来的情况说明。其中提到,使馆昨天已经第一时间启动应急预案,指导企业向当地渔政部门和警方报案,同时紧急同加方联系交涉并召开联席会议,要求全力展开追查搜救行动,保障船员安全。

    \r\n

    情况说明全文如下:

    \r\n

    使馆昨天已经第一时间启动应急预案,指导企业向当地渔政部门和警方报案,并即派员赶赴现场了解情况,慰问相关企业;同时紧急同加方联系交涉并召开联席会议,要求全力展开追查搜救行动,保障船员安全。加方目前已加强海上安全措施,并开展相关工作。使馆并提醒我在加企业和公民加强安全防范,遇紧急情况及时报警并与使馆联系寻求协助。

    \r\n

    此前报道:

    \r\n

    4名中国船员被绑架!加蓬首都港口遭海盗袭击,1名加蓬籍船长被杀

    \r\n

    【环球网报道 记者 乌元春】据法新社报道,加蓬政府22日表示,加蓬首都利伯维尔港口4艘船只夜间遭到海盗袭击,导致1名加蓬籍船长被杀,另有4名中国籍船员被绑架。

    \r\n

    \"法新社报道截图\"

    \r\n

    法新社报道截图

    \r\n

    加蓬政府发言人表示,海盗袭击了4艘船只。该发言人表示,海盗袭击在利伯维尔港口并不常见,但在几内亚湾附近却极为频繁。该发言人还表示,该国已部署国防和安全部队,“在国际刑警组织和次区域机构的合作下,确保该地区的安全,并追查行凶者”。

    \r\n

    \"资料图:加蓬首都利伯维尔\"

    \r\n

    资料图:加蓬首都利伯维尔

    \r\n

    法新社称,遭海盗袭击的4艘船只中,其中2艘是中加公司Sigapeche的渔船,4名被绑架的中国船员就来自该公司。第3艘船属于总部设在加蓬根蒂尔港的海运公司Satram,第4艘船则是悬挂巴拿马国旗的货船。报道最后表示,几内亚湾已成为海盗袭击、抢劫和绑架事件频发的中心地带。根据国际海事局的数据,从今年1月到9月,全球82%的海上绑架事件都发生在几内亚湾。

    ', 1, 1, 1577104219, 1, '', 1582256331, 1, 1577104219, NULL, '{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}', '', '', 0, '', '', 0, '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}', 0, '*', '', ''), +(2, '错过的终究放下', 'cuo-guo-de-zhong-jiu-fang-xia', '', '

      不得不说时间真的是这个世间最好的跨度,一些承诺,一段誓言,终究败给了时间,回忆再美好也经不住流年。有些人错过了终究得放下……。

    \r\n

      在过往中,总有一个人,曾经是你的满心欢喜,现在却成了你的闭口不提。他闯进我们的生活,带给我们感动和美好,却又在某一时刻,猝不及防的从我们身边抽离,留下了一地的回忆。

    \r\n

       当初说着各种承诺、各种誓言,我也相信了你就是我的小确幸。也是你让我相信了这世间还有美好,可最终你还是离我而去,终究你我成了彼此生命中的过客。

    \r\n

      我们错过了,我曾幻想过天长地久;我也曾幻想过和你手牵手走在黄昏的路上。可终究你走了,留给我的只有回忆。我以为守着回忆你就可以回来,可是我错了,我,终究没等来你的转身,我终究知道错过了就是错过了,回不来了。我也终于决定放下了……

    \r\n

      终于下定决心把你归还于人海了!其实很早就在逼自己慢慢的去放手了,每次听着你那冠冕堂皇的话我尽然差点相信了我和你会有以后……

    \r\n

      我没有你善于伪装,我学不会做最坏的人,我也不想浪费太多的时间和精力去等一个不可能的结果!虽然先动心、动情的人是你,无数次主动和挽留的人也是你,可我还是学不会去做一个你渴望中的人。

    \r\n

      这一路有快乐、有坎坷、有心酸。记得你曾对我说过:“这一路来太多的心酸和坎坷自己必须好好珍惜才是……”你也说过:“我不必有顾虑,你会珍惜你会好好保护着我……”这些话在耳边响起犹如昨天,那么悦耳那么清晰。可我不想这样原地不动的去等待和期望了,我准备回头了,回到我的原点,回到不是和你开始的原地了……。

    \r\n

      你的承诺和誓言总归太遥远,你总归太缥缈。当我不在是你生命中的独一无二,我宁愿离去,也不愿在一份残缺的爱里苦苦挣扎。

    \r\n

      你总归是我命中未了的缘和劫,我们也终究错过了!如果上天能够重新来过,我会绕过那个和你认识的地方,遇见你也许就是没有结果,可我也能释怀了。

    \r\n

      我不能抱着那些回忆来折磨自己,我也不想就这样颓废的麻木的去过每一天了。你给的一切在回忆的沼泽里只会让我放不下,你走后在每一个似曾相识的场景里我总是会不由自主的想起你,我会盯着你送的东西久久的发呆,也会因为看到某个熟悉的背影,而伤心落泪。

    \r\n

    \"深度截图_选择区域_20200116101658.png\"

    \r\n

      我曾试过收起那些东西甚至屏蔽一切与你有关的东西。直到最后,我不得不承认,用心爱过的人,就连忘记也需要格外用力。

    \r\n

      我也曾试着挽回,试着去弥补,可终究太苍白太无力了。这就是世间的无奈,我也不得不承认你我终究错过了,我也该放下了……

    \r\n

      现在的我终于学会了该怎么去割舍,我终究学会了真正的放下就是面对你的一切波澜不惊、坦然面对。即使听见你的名字多少次也不再泛起涟漪,终于接受了,你只能陪我一程,终究无法参与我的余生。

    \r\n

      谢谢你教会我的一切,包括那些没实现的承诺……或许你会说你爱过我,可我还是决定把你归还于人海了,不是赌气,也不是不爱,只是觉得该清醒了……

    \r\n

      我终于能很轻松地说我们错过了,你终究是那个错的人,我也决定放下了!余生很长,放下错的人,才能拥抱属于我的幸福。

    ', 1, 1, 1577104879, 1, '', 1579263666, 1, 1577104879, NULL, '{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}', '', '', 0, '', '', 0, '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}', 1, '*', '', ''), +(3, '从3个角度,看互联网+课程的如何结合', 'cong3ge-jiao-du-kan-hu-lian-wangke-cheng-de-ru-he-jie-he', '', '
    随着教育信息化进程的加快,互联网将深度与教育融合,传统“满堂灌”形式的课程体系,不仅无法满足培养具备新时代信息化素养人才的需求,且无法满足新时代学生个性化发展的需求。因此,教育必将与互联网相结合,改变原有课程设计体系,课程实施方式及课程结构,为教育现代化开辟新的篇章。
    \r\n
    \r\n
    \"728da9773912b31b1aeaf1998f037b7cdbb4e199.jpeg\"
    \r\n

    课程基础

    \r\n

    现代教育中决定课程的关键因素分别是:知识、社会要求、社会条件、学生特点。

    \r\n

    知识是符合人类文明发展方向,代表人类对物质世界和精神世界探索的总和。课程作为知识的载体,代表了知识的有效传承和发展,在课程演变过程中,第一个需要解决的核心问题就是选择何种知识作为课程的基础。因此知识是影响课程的最基本前提,知识的多寡决定了课程的丰富程度。

    \r\n

    社会要求代表了时代对教育及人才能力的诉求,在一定程度上 ,教育的本质是培养面向现代化,面向世界,面向未来,可为人类及社会发展贡献力量的新时代人才。因此,社会对人才的要求,决定了人们从知识库中选择何种知识形成课程,是影响课程的决定性因素。

    \r\n

    社会条件反映了当前社会能提供的社会科学技术及物质生产水平,是决定课程物质形态的基础。社会物质及技术的多寡决定现代化课程理念的更新程度,进而决定课程组织方式及展示形态。因纸张技术的发展,使课本教学成为可能;因多媒体设备及技术的发展,使基于多媒体的教学模式逐步普及。

    \r\n

    在当前阶段,物联网,云计算,大数据及移动互联网得到长足的应用和普及。就课程教学而言,大部分依旧采用传统模式,和互联网的结合程度普遍较低,在社会条件和实际教学诉求的驱动下,急需进行变革。

    \r\n

    不同个体的学生对知识的接受程度和侧重程度存在一定的差异,教育需实现因材施教,以人为本,注重个体的发展,传统的课程组织方式无法满足不断发现的个性化学生诉求。需依据学生认知特点,认识水平,学习动机等个性化需要提供动态的课程组织方式。

    \r\n

    在知识、社会要求、社会条件、学生特点的共同作用下,互联网将逐步改变现有课程知识传承的目标。传统课程核心目标为促进知识的传递,从现有社会知识总量中,依据社会发展需求汇集核心知识,以集中课堂教学的方式,通过不同学科传递至学生。

    \r\n

    统一化的知识传递体系符合工业社会的需求,工业化强调统一化,效率,规模。现有课程组织方式可快速实现知识的灌输,批量生产具备一定基础的教育型人才。

    \r\n

    但21世纪是信息化的时代,依托互联网科学技术的飞速发展,新兴技术大量涌现,知识量急剧膨胀,知识更新速度空前加快,出现了“知识爆炸”的现象。

    \r\n

    在新时代中,课程研究者不得不面对飞速增长知识和技术与单位时间内可传递有限知识间的挑战。依据当前以传承知识为基础的课程目标,在实际组织及实施过程中,为满足当前社会发展对人才知识结构的现实要求,只能通过不断添加新的知识到现有课程中,随着课程知识的不断增加,将逐步面临“知识过载”的尴尬境地,总不能无限延长学生学习时间。

    \r\n

    因此,在信息社会中需改变课程基础目标,以传授知识为主转变为培养学生自主学习能力和主动知识获取方式,提高学生终生学习动机和终生学习能力。

    \r\n

    革新课程设计理念和课程组织方式,推崇“以人为本,因材施教”的设计理念,培养学生自主学习能力和知识获取方式,培育学生终生学习动机和终生学习能力。21世纪是信息化社会,在信息社会中核心生成要素就是信息,信息驱动时代发展。在当前社会环境下,信息经济发展越来越依赖与以知识为基础的信息产业,在一定程度上,信息知识获取的及时和利用决定了整体信息产业的发展,新时代孕育着中华崛起的新机遇,新机遇需要一代代创新型人才不断的发掘和坚持不懈的前行。

    \r\n

    时代响起了新的号召,需要新时代的人才具备极强的信息化素养,具备信息获取、信息分析和信息加工的能力。而作为人才培养的摇篮,教育课程急需响应社会发展的现实需求。

    \r\n

    下面我们将分别从课程设计、课程实施和课程结构三个方面来做简单的结介绍,看课程如何实现与互联网的结合。

    \r\n

    1. 线上线下融合的课程设计体系

    \r\n

    信息时代下的数字原住民追求个性化,趣味性的阅读,学习体验。在新时代,为满足数字原住民的诉求,课程的设计越来越强调个性化,可交互性。急需摆脱传统单向,枯燥的课程组织模式。因此课程需借助互联网,推出融合线上线下,基于互联网教学的电子版立体化课程。立体化课程需包含教材、教学课件、网络课程、教学资源库(含试题库)、教材应用和服务支撑平台等重要组成部分。

    \r\n

    其中教材作为课程教学的主体可通过灵活的组织方式实现个性化的知识传递,教材的设计在确保交互性,趣味性的同时强调传递基础性、通用性的知识;教学课件可基于教育资源公共服务平台集成优质教育资源,在帮助教师讲授重点、难点知识体系的同时,有效实现教育资源的开发共享,逐步消除资源发展不均衡的现实问题;网络课程辅助学生自主学习,完成课程内容的课前预习,课后复习等线下自主学习活动,在一定程度上,还可实现翻转课堂的效果,使课堂组织及开展方式更加灵活;教学资源库(含试题库)主要满足学生个性化知识拓展需要,集合各类型优质教育资源,通过互联网统一对外提供,学生按需获取,为学生拓展视野提供最坚定的支持;教材应用和服务支持平台为教师和学生提供全面学习的支撑服务。基于互联网技术设置线上与线上的混合式课程,解决当前课程知识传递困境的同时,满足学生个性化,差异化教学需求 ,实现真正的“学生主体,教师主导”的新理念。

    \r\n

    在课程设计中,进一步前强调教材的可交互性,有效提升教学趣味性和学生参与程度。互联网+课程将进一步打破时空限制,知识的传递和课程的教学将不受教室的限制。

    \r\n

    教师基于互联网面向学生提供丰富的教学资源,建立科学的评测机制,有效设置线上线下的比例。学生将可依据个人需求,按需获取所需知识,依据个人学习步调,知识接收程度自我调节学习进度,实现真正的线上线下相融合的课程设计。

    \r\n

    2. 回归生活的课程实施方案

    \r\n

    基于互联网的课程设计方式将革新现代课程设计理念,强调“学生主体,教师主导”,满足个性化,趣味性的人才发展要求,贴合现代化人才培养内需。在教材,教学课件,网络课程,教学资源库(含试题库),教材应用和服务支持平台为基础的立体化课程设计方向的驱动下,课程设计 ,将迈入新的台阶。

    \r\n

    但课程作为一个统一的整体,具备合理设计理念的同时,在课程实施过程中同步需借助互联网手段,推动课程组织及实施的进化。下面将通过引入“回归生活的课程实施方案”为主题,讨论在课程实施过程中,遇到的问题及相对应的解决方案。

    \r\n

    传统课程实施主要基于教室场景,学生学习活动被限制在单一环境,知识传递的时间和空间严重受限。这种实施方式必将限制学生在真实环境中知识的应用和迁移,容易导致学生大脑只是用于知识存储的硬盘,存储课程灌输的知识,而没有对应现实场景来驱动知识的调用,产生实际价值。

    \r\n

    因此,在课程实施过程中,需借助互联网手段打破课程教学时间空间限制,将学生从实际教室场景中解放出来,将知识的传递与具体生活场景发生关联,让学生在生活中学习,在学习中生活,提高学生知识迁移及应用水平。

    \r\n

    互联网新兴理念及技术与课程的深度融合将有效助力构建回归生活的课程实施环境。基于互联网手段搭建移动学习,泛在学习环境,为学生提供沉浸式的学习体验,帮助学生理解学习内容,了解学习情境,进一步激发学生学习主动性。在实际实施构建过程中,可采用虚拟现实技术+群体知识构建的方案。

    \r\n

    虚拟现实技术具备沉浸性,交互性,想象性的先天技术优势,借助虚拟现实技术实施课程教学可有效打破“先理念再实践”的固有课程组织方式,避免学用脱节。在虚拟现实技术的支持下,学生可依据所学知识进行仿真化实验构建,例如,理工科学生科直接进行仿真实验,构建仿真汽车,仿真桥梁;生物及医学类学生可进行仿真人体解剖,了解人体结构等。

    \r\n

    随着虚拟现实技术发展,必将引入更多技术及能力助力实际课程实施,使课程教学实施摆时间空间的限制,创造在现实生活中无法便捷实现的课程环境。

    \r\n

    课程的实施强调沉浸式,贴合实际生活场景,借助虚拟现实技术可引导课程实施的创新, 增强趣味性和互动性。在确保趣味,互动的同时,还需提升学生主观能动性,前面我们一直强调,新课程的组织最好可遵循:“学生主体,教师主导”的目标,这一目标不仅作用于课程的组织,也可以作用于课程内容的实施上。

    \r\n

    在互联网时代,知识将不在在掌握在某个人手里,借助互联网,人人都可成为知识的消费者,同时也可以成为知识的生产者,这是互联网发展的源泉之一。传统教学过程中,教师传授的知识是课程内容的全部 ,学生只能被动的接收,只能作为知识的消费者,而无法加入到知识的构建中。

    \r\n

    因此,在新时代课程内容构建中,我们强调课程内容是生成的、进化的,这种进化驱动力不仅仅来源于教师,也来源于学生,教师和学生一起参与课程内容的构建。

    \r\n

    群体智慧是课程内容进化的重要动力,以教师为主导,借助互联网技术,例如在线共享及协同软件实现教师与学生的协同知识构建体系,基于协同知识构建体系让学生参与到课程内容的创造过程中,在提升学生的高阶思维素养的同时,逐步培育学生自我反思意识,发展学生的批判思维。

    \r\n

    在实际协同过程中,学生通过讨论、争辩、分享、答疑等互动手段引发知识冲突,促进自我反思,优化已有的知识结构,从而创造性地产生新的知识和新的技能。在协同知识构建过程中,对学生提出要求的同时,也要求教师转变教学思路,教师需要重点关注学生知识建构的过程和生成的内容,关注学生知识创造和改进的过程,而不只是关注教学的内容、教学活动的表面形式、学生参与学习的次数等。

    \r\n

    虽然课程要求具备一定程度的计划性,但在具备计划性的同时应坚信学生是教学的主体。在整体协同过程中,教师起到引导,把控,评测作用。通过协同知识构建体系提高学生协同效能,强调群体智慧的重要,共同创建进化的,具备旺盛生命力的课程知识。

    \r\n

    3. 整合性的课程结构

    \r\n

    上面我们说过以混合式课程的主体,结合教材,网络课件,网络课程,教学资源库(含试题库),教材应用和服务支持平台多种形式的融合线上线下的课程设计体系。提出课程要贴合生活情景,让学生“在学习中实践,在实践中学习”回归生活的教材实施方案。 下面我们将从“融合线上线下课程设计”体系,“回归生活的教材实施”方案出发,介绍整合性课程结构的基础内容。

    \r\n

    21世纪,时代对人员素养提出新的要求,在信息飞速剧增,知识急剧爆炸的时代背景下,教育的目标及理念面临新的挑战。而其中最核心的挑战就是:如何通过学校教育培养出具备终生学习能力和素养的人才综合性人才,以适应时代,知识的飞速发展的需要。

    \r\n

    传统教育中以学科知识为主的课程体系,已无法满足社会对人才知识结构的诉求。社会发展越来越趋向多元化,多元化的社会分工驱动人才需具备多元化的知识结构。因此,反应到课程体系上,需摆脱传统以学科为主的知识传递体系,强调跨学科教学的重要性,知识传递途径从分散独立走向整合。

    \r\n

    在现阶段社会条件的支持下,孕育了一系列以培养学生跨学科知识能力和素养的整合性课程解决方案,例如:STEM教育,创客教育,少儿编程等,下面我们着重介绍STEM教育和创客教育。

    \r\n

    STEM是科学(Science),技术(Technology),工程(Engineering),数学(Mathematics)四门学科的统称,其中科学在于认识世界、解释自然界的客观规律;技术和工程则是在尊重自然规律的基础上改造世界、实现与自然界的和谐共处、解决社会发展过程中遇到的难题;数学则作为技术与工程学科的基础工具。

    \r\n

    STEM教育并不是四门学科的简单叠加,而是将四门学科有机的整合在一起,形成一个统一的整体用于培养及提高学生科学素养,技术素养,工程素养,数学素养以适应时代的发展。

    \r\n

    STEM教育起源于美国,1986年美国国家科学委员会发表《本科的科学、数学和工程教育》报告,强调科学素养的重要性,得到全世界范围内教育学者的广泛认可。2006年1月31人日美国总统布什在其国情咨文中公布一项重要计划——《美国竞争力计划》(American Competitiveness Initiative,ACI),提出知识经济时代教育目标之一是培养具有STEM素养的人才,并称其为全球竞争力的关键。

    \r\n

    十年后的2016年9月14日,美国研究所与美国教育部综合了研讨会与会学者对 STEM 未来十年的发展愿景与建议,联合发布:《 教育中的创新愿景》(STEM 2026:A Vision for Innovation in STEM Education) 。

    \r\n

    旨在推进STEM教育创新方面的研究和发展,并为之提供坚实依据,该报告提出了六个愿景,力求在实践社区、活动设计、教育经验、学习空间、学习测量、社会文化环境等方面促进 STEM 教育的发展,以确保各年龄阶段以及各类型的学习者都能享有优质的 STEM 学习体验,解决 STEM 教育公平问题,进而保持美国的竞争力。

    \r\n

    从此美国政府逐步加大了对从小学到大学各个层次的STEM教育的支持力度,推出教育基金,鼓励各州改善STEM教育,加大对基础教育阶段理工科教师的培养和培训。

    \r\n

    近年来STEM教育逐步受到国内外教育研究者的重视,旨在全力培养具备知识经济时代强力竞争力的综合性人才。而STEM教育所具备的跨学科、趣味性、情境性、协作性在内的核心特征正好符合时代对人才能力的培养诉求。

    \r\n

    跨学科:传统课程结构设计中,我们依据实际教学需要,将知识划分为不同的学科进行教授,在一定程度上可以提高教学的效率,学生关注点聚集在特定的学科知识上,可实现复杂知识内容的讲解。

    \r\n

    但依据学科进行知识的划分,和实际生活场景是分裂的,在实际生活中知识的迁移的应用是连续的,整合的,我们需运用包含科学,技术,工程,数学在内的整合性知识去解决实际场景中遇到的问题。

    \r\n

    因此STEM应运而生,跨学科是它最重要的核心特征,在STEM教育项目中,我们不再将重点放某个特定的学科或过于关注学科的界限,而是将重心放在特定问题上,引导学生使用科学,技术,工程,数学在内的整合性知识去解决实际遇到的问题,在问题中学习。培养学生跨学科能力,提高学生发现问题和解决问题的能力,以适应知识时代的发展需要。

    \r\n

    趣味性:相对于传统教育,STEM教育将更具趣味性。在STEM设计和实施过程中强调将知识融合在有趣,具有挑战,跟学生实际生活相关的问题或活动中。知识蕴含在实际趣味问题中,学生通过自主或协作解决问题实现主动获取知识。强调趣味性,通过问题或活动激发学生内在学习动机,通过问题的解决获得成就感。

    \r\n

    在教育过程中,强调分享、创造,强调让学生体验和获得分享中的快乐感与创造中的成就感。部分项目还可将STEM知识与游戏结合,通过游戏化学习,激发学生学习兴趣和主动性,摆脱传统枯燥式,填充式教学的弊端。

    \r\n

    情境性:现代社会强调知识的迁移和运用能力,学生不在是因为知识而学习知识,而是为解决实际生活情境问题而学习知识。知识需与具体生活情境结合。STEM教育的核心就是强调知识的情境性,知识还原于丰富的生活,结合生活中有趣、有挑战的问题,让学生通过解决问题来完成教学。

    \r\n

    在实际STEM项目设计中,项目的问题一方面要基于真实的生活情景,另一方面又要蕴含所要教授的结构化知识,让学生在贴合实际情境问题的项目中学习知识,有效提高学生将知识进行情境化运用的能力。

    \r\n

    协作性:STEM教育要求以真实生活为出发点,设计贴合情境的问题或项目,在实际操作过程中学习知识。而实际生活环境,问题的解决离不开群体的协作。

    \r\n

    在STEM教育的设计理念里,要求知识的共同构建,因此课程将采用以小组为单位的设计模式,通过小组之间的交流,讨论,分享共同完成学习资料的收集与分析、提出和验证假设、分享和共建知识,进而整体评价学习成果。

    \r\n

    STEM强调贴合生活环境,构建具备跨学科,趣味性,情境性,协作性的STEM学习环境,让学习在解决问题中学习,培养学生综合问题解决能力,培养综合性人才。在主流的整合性课程结构中,除STEM教育外,还有以项目为主导的创客教育,下面我们将对创客教育做简单的介绍。

    \r\n

    提到创客教育,很多时候容易和STEM教育混为一谈,所以在介绍创客教育前,我们先简单的说一下两者之间的联系和区别。

    \r\n

    首先,STEM教育强调将科学、技术、工程、数字,乃至艺术等基础学科知识融合起来教学,采用问题驱动,培养学生知识应用和迁移的能力。在实际课程实施过程中,强调的是整合性知识的构建与传递。

    \r\n

    创客教育则是提倡开发自己的创意,通过软硬件将创意实现成具体物品,例如使用3D打印技术实现3D产品构建,利用安卓电子编程制作电子器件。

    \r\n

    从这两个含义可以很明显的区分,STEAM教育更讲究地是跨学科的“知识融合”,而创客教育重点在于将想法进行“实践创造”。但不管是STEM教育还是创客教育,强调的都是知识的自主探索,知识与实际场景或产品相结合,不在是孤立且抽象的存在。

    \r\n

    两种教育模式的出发点都在于使用整合性知识结构,解决实际生活中所遇到的问题。以培养学生动手能力,沟通能力,协作能力,自主学习能力。所以,在人才培养的目标上两者具有高度的一致。

    \r\n

    并且创客活动需要STEAM教育提供知识理论基础,而创客实践则是STEAM教育的最终目的,就是知识体系只有帮助实物创造才能发挥作用,甚至成为可商业化的产品,联接教育与商业。因此STEM教育和创客教育两者既有区别,又有联系,相辅相成,共同促进。

    \r\n

    相对于STEM教育问题驱动模式,创客教育更多的是偏向于项目驱动,通过完整的项目提升学生的动手能力及知识应用能力。例如少儿编程,开源硬件, 传感器等项目。在创客项目中,学生在创客教育的过程中,必将经历“调研分析、制定方案、动手制造、评估反思”等完整的项目迭代步骤。

    \r\n

    通过以项目为中心,驱动知识的运用是创客教育的核心点。同时意味着,不同于STEM教育,在项目过程中, 将更关注于具体的项目结果,在评价体系上 ,将以项目驱动成果作为核心指标。

    \r\n

    总之,不管是STEM教育或是创客教育,与传统课程结构都具有明显的区别。所蕴含的区别代表这未来人才的内在诉求。在信息化时代中,我们需要通过创新的整合式课程结构培养综合性人才。知识不应该是分裂的,应该是有机整合在一起。

    \r\n

    以创新的教育课程组织方式,坚持“学生主体,教师主导”,强调人的能动性,激发学生学习兴趣,使学生在生活中学习,在学生中生活,掌握知识迁移和应用能力,不断接收创造知识,在实现个人生活成功的同时,促进社会发展。

    \r\n

    结语

    \r\n

    2011年6月,教育部发布《教育信息化十年发展规划(2011-2020 年)》,明确提出各级政府在教育经费中按不低于 8%的比例列支教育信息化经费,保障教育信息化拥有持续、稳定的政府财政投入。

    \r\n

    2017 年教育信息化经费支出不低于 2731 亿元,预计到2020年,教育信息化经费支出或将达3863亿元,其中K12占比超过50%。

    \r\n

    教育信息进程在资金和政策的双重驱动下,近几年来得到飞速的发展。已基本完成以“三通两平台”为主的《教育信息化1.0行动》,实现教育环境的信息化改造,为教育信息化发展奠定基础互联网环境基础。持续推进以“三高,两全,一大”为核心的《教育信息化2.0行动》。

    \r\n

    但在实际推行过程中,我们也遇到不少急需解决的现实问题,例如,因缺乏统一性部署而导致的数据孤岛问题;东部沿海经济发达地区和中西部经济落后地区发展不均衡问题;强调建设却无配套应用平台的问题等。回归到本次所讲述的互联网+课程上,现大部分地区已具备一定程度的互联网条件,可有效实施互联网教学。

    \r\n

    但是整体课程及教学理念还停留在传统工业课程社会的的模式上,还未跟上互联网的步伐,导致出现有条件不会使用或用不好的尴尬境地。

    \r\n

    因此,为适应信息化社会对人才核心素养及能力的要求,教育应紧密和互联网结合,以互联网思维改变现有课程结构。在实际课程实施过程中,应强调课程设计需融合线上线上,课程实施应回归生活,课程结构应是整合性的。通过全新的课程设计,课程实施,课程结构理念,改变现有课程组织方式,适应时代发展需求,为培养现代化人才贡献力量。

    \r\n

    本文由 @老鬼 原创发布于人人都是产品经理。未经许可,禁止转载

    \r\n

    题图来自 Unsplash,基于 CC0 协议

    ', 1, 3, 1583326264, 1, '人人都是产品经理', 1583326264, 1, 1583326264, NULL, '{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}', '', '', 0, '', '', 0, '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}', 0, '*', '', ''), +(4, 'You Have Only One Life', 'you-have-only-one-life', '', '

     There are moments in life when you miss someone so much that you just want to pick them from your dreams and hug them for real! Dream what you want to dream;go where you want to go;be what you want to be,because you have only one life and one chance to do all the things you want to do.

    \r\n

      May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’shoes.If you feel that it hurts you,it probably hurts the other person, too.

    \r\n

      The happiest of people don’t necessarily have the best of everything;they just make the most of everything that comes along their way.Happiness lies for those who cry,those who hurt, those who have searched,and those who have tried,for only they can appreciate the importance of people

    \r\n

      who have touched their lives.Love begins with a smile,grows with a kiss and ends with a tear.The brightest future will always be based on a forgotten past, you can’t go on well in lifeuntil you let go of your past failures and heartaches.

    \r\n

      When you were born,you were crying and everyone around you was smiling.Live your life so that when you die,you\'re the one who is smiling and everyone around you is crying.

    \r\n

      Please send this message to those people who mean something to you,to those who have touched your life in one way or another,to those who make you smile when you really need it,to those that make you see the brighter side of things when you are really down,to those who you want to let them know that you appreciate their friendship.And if you don’t, don’t worry,nothing bad will happen to you,you will just miss out on the opportunity to brighten someone’s day with this message.

    ', 1, 2, 1583326386, 1, '', 1583326386, 1, 1583326386, NULL, '{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}', '', '', 0, '', '', 0, '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}', 0, '*', '', ''), +(5, '为全球公共卫生事业作出贡献(患难见真情 共同抗疫情)', 'wei-quan-qiu-gong-gong-wei-sheng-shi-ye-zuo-chu-gong-xian-huan-nan-jian-zhen-qing-gong-tong-kang-yi-qing', '', '

    目前,中国新冠肺炎疫情防控形势积极向好的态势正在拓展。在部分国家和地区出现疫情扩散的形势下,中国外交部及驻外使领馆推动开展疫情防控国际合作,发挥我国负责任大国作用,为全球公共卫生事业作出贡献,获得各方高度认同和赞赏。多国政府表示,面对这一全球性挑战,愿与中方保持密切沟通与合作,共同战胜疫情。

    \r\n

      “我们满怀信心,愿与中方携手战胜疫情”

    \r\n

      中国一直密切关注全球新冠肺炎疫情形势,始终秉持构建人类命运共同体理念,本着公开、透明和负责任的态度加强国际防疫合作。

    \r\n

      3月3日下午,中国外交部会同中国国家卫生健康委举行与阿塞拜疆、白俄罗斯、格鲁吉亚、摩尔多瓦、亚美尼亚、土库曼斯坦及上合组织秘书处新冠肺炎疫情专家视频交流会。来自国家卫健委及外交部、海关总署、中国驻相关国家大使馆代表,中国疾控中心、北大医院等技术机构专家,相关国家外交和卫生部门、驻华外交机构、卫生领域专家及有关国际组织代表参加了视频会议。中方专家全面介绍了中国疫情形势和防控、救治等经验,各方就防控措施、诊断筛查、实验室检测等方面内容进行了深入交流,并表示将进一步加强信息交流和协调行动,共同维护地区和全球卫生安全。

    \r\n

      中国驻乌干达大使馆日前通过乌干达主流媒体NTV电视台,详细介绍中国疫情形势和防控工作取得的成效,就乌公众高度关注的在武汉留学生安全和疫情对乌干达及乌中关系影响等答疑释惑。乌干达总统穆塞韦尼表示,乌方尊重世卫组织的建议,不会因疫情对国际旅行施加限制。在双方有效沟通下,乌政府有关部门与中国驻乌大使馆保持密切联系,积极向公众公开疫情信息,普及防控知识,帮助乌民众提高卫生防护意识。

    \r\n

      日本国内疫情形势发生变化后,中国驻日本大使馆加强了同日方的沟通和协调,积极推动双方卫生主管部门及传染病防治机构建立专门沟通合作渠道。日本内阁府官员表示,愿与中方在智慧城市、超级都市合作框架下推进病毒防控及远程诊疗体系等合作。日本自民党干事长二阶俊博说:“我深信,日中两国团结协作,一定能够战胜疫情。”

    \r\n

      中国驻墨西哥大使馆同墨西哥外交、卫生、海关、移民、边检等各部门保持密切沟通,及时向墨方通报疫情情况及中方防控举措。墨西哥外长埃布拉德对中方采取的积极举措表示赞赏和感谢,并表示,得益于中方全面、严格的防控措施,在华墨西哥公民的生命安全和身体健康得到充分保障。

    \r\n

      中国驻尼日利亚大使馆通过多种形式,积极介绍中国抗击疫情举措。尼中地方合作论坛秘书长阿布杜拉蒂夫·谢胡表示:“感谢中国透明及时地通报疫情有关情况。疫情当前,中国行动果断、迅速、有效,尼方也将继续向中国学习防疫抗疫经验。我们满怀信心,愿与中方携手战胜疫情。”

    \r\n

      “共建一带一路沿线国家和地区更应加强团结合作、共克时艰”

    \r\n

      疫情发生后,很多参与共建“一带一路”的国家和地区向中国提供支持和帮助,以不同方式表明愿同中方继续加强“一带一路”合作的意愿。在力所能及范围内,中方向相关国家提供了援助。

    \r\n

      中国驻意大利大使馆连日来持续向意方通报最新疫情信息。意大利卫生部部长斯佩兰扎表示,希望加强与中方在信息沟通、药物与疫苗研发等方面合作,共同应对挑战。意大利外长迪马约表示,意政府正采取有力举措防控疫情,愿同中方加强沟通与合作,密切两国卫生部门间的信息交流,“意方重视并支持共建‘一带一路’。在此艰难时刻,共建‘一带一路’沿线国家和地区更应加强团结合作、共克时艰”。

    \r\n

      据中国驻俄罗斯大使馆介绍,疫情发生后,俄方派遣专家团队赴华联合研制抗病毒药物和疫苗。俄联邦消费者权利保护及公益监督署署长兼国家总防疫师波波娃高度评价中方为抗击疫情所作巨大努力和取得的重要成果。她强调,面对汹涌疫情,俄中是伙伴、是战友,俄方从中方抗击疫情的斗争中学到很多宝贵经验,实践证明中方采取的防疫举措切实有效。她预祝中国政府和人民抗击疫情斗争取得“完胜”。

    \r\n

      中国驻克罗地亚大使馆通过当地媒体介绍中国防控疫情有关情况,指出疫情对中国经济的影响是阶段性的、暂时性的,不会改变中国经济长期向好的基本面,引发当地舆论关注和积极反响。

    \r\n

      为支持巴基斯坦疫情防控工作,针对巴方医疗力量薄弱等情况,中方向巴方捐赠了一批新冠病毒核酸检测试剂盒。巴国家粮食安全与研究部部长马赫杜姆·胡斯鲁·巴赫蒂亚尔表示,无论何时,巴中两国总是相互支持,体现了巴中之间的深厚友谊。

    \r\n

      “希望进一步研究借鉴中方的有益做法和经验”

    \r\n

      中国驻纽约总领馆通过多种方式积极介绍中国疫情防控有关举措。美国全国广播公司所属康卡斯特集团高级副总裁、首席财务官迈克尔·卡瓦纳表示,中国政府和人民在抗击疫情中展现出的团结和努力令人称赞,为各国抗击疫情积累了宝贵经验。“北京环球影城主题公园项目目前进展顺利,我们对中国经济前景充满信心。美国全国广播公司将继续致力于客观、平衡地报道中国疫情防控努力。”

    \r\n

      中国驻欧盟使团主动向欧方介绍有关情况,并多次组织中欧双方公共卫生专家举行视频会议,共同研究应对疫情,探讨进一步就疫情诊断治疗、科学信息共享、医学临床实验等开展合作。欧方感谢中方及时通报有关情况,表示注意到世卫组织充分肯定中国政府采取的防控措施及成效,“欧方愿继续与中方保持密切沟通,希望进一步研究借鉴中方的有益做法和经验”。

    \r\n

      中国驻里约热内卢总领馆与领区内各州、里约热内卢市卫生主管部门及主流媒体建立信息通报机制,定期通报中国疫情防控情况。里约热内卢州政府代表迪亚斯表示,疫情发生后,中方做了大量及时有效工作,遏制了疫情蔓延。“中国展现了负责任大国担当。感谢中方提供的有关疫情信息,疫情不会影响两国人民的情谊。”

    \r\n

      中国驻南非大使馆举行多场新闻发布会,邀请南非国内及国际媒体参加,介绍中国抗击疫情进展和中非在相关领域合作情况。南非太阳城度假酒店总经理布莱特·霍普说:“中国疫情防控工作取得积极成效,整体形势稳定向好,各地有序复工复产。我们已做好充分准备,在疫情结束之后迎接更多来自中国的游客。”

    \r\n

      (本报北京、东京、墨西哥城、阿布贾、罗马、莫斯科、伊斯兰堡、纽约、布鲁塞尔、约翰内斯堡3月5日电  记者颜欢、刘军国、刘旭霞、姜宣、叶琦、孔歌、张晓东、丁雪真、李凉、方莹馨、万宇、吕强)

    ', 1, 4, 1583477876, 1, '', 1583477876, 1, 1583477876, NULL, '{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}', '', '', 0, '', '', 0, '{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}', 0, 'zh-CN', '', ''); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_extensions` +-- + +CREATE TABLE `y_extensions` ( + `id` int(11) NOT NULL, + `package_id` int(11) NOT NULL DEFAULT '0', + `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL, + `element` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `folder` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `client_id` tinyint(3) NOT NULL, + `enabled` tinyint(3) NOT NULL DEFAULT '0', + `protected` tinyint(3) NOT NULL DEFAULT '0', + `manifest_cache` json NOT NULL, + `params` text COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) DEFAULT '0', + `status` smallint(6) DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_extensions` +-- + +INSERT INTO `y_extensions` (`id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `protected`, `manifest_cache`, `params`, `ordering`, `status`) VALUES +(1, 0, 'English United States Language Pack', 'package', 'pkg_en-US', '', 0, 1, 1, '{\"name\": \"English United States Language Pack\", \"type\": \"package\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"pkg_zh-US\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"\\n\\t Yii2CMS v1.0.0 English (United States) Language Package\\n \", \"creationDate\": \"July 2019\"}', '', 0, 1), +(2, 1, 'English (en-US)', 'language', 'en-US', '', 2, 1, 1, '{\"name\": \"English (en-US)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"en-US site language\", \"creationDate\": \"July 2019\"}', '', 0, 1), +(3, 1, 'English (en-US)', 'language', 'en-US', '', 1, 1, 1, '{\"name\": \"English (en-US)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com \", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"en-US Administrator language\", \"creationDate\": \"July 2019\"}', '', 0, 1), +(4, 0, 'Chinese Simplified (zh-CN) Language Pack', 'package', 'pkg_zh-CN', '', 0, 1, 1, '{\"name\": \"Chinese Simplified (zh-CN) Language Pack\", \"type\": \"package\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"pkg_zh-CN\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"Yii2CMS 简体中文(zh-CN) 语言\", \"creationDate\": \"2019年7月\"}', '', 0, 1), +(5, 4, 'Chinese Simplified (zh-CN)', 'language', 'zh-CN', '', 2, 1, 1, '{\"name\": \"Chinese Simplified (zh-CN)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong 火龙网 www.fireloong.com\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"zh-CN 网站前台简体中文语言\", \"creationDate\": \"2019年7月\"}', '', 0, 1), +(6, 4, 'Chinese Simplified (zh-CN)', 'language', 'zh-CN', '', 1, 1, 1, '{\"name\": \"Chinese Simplified (zh-CN)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com \", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong 火龙网 www.fireloong.com\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"zh-CN 管理后台简体中文语言\", \"creationDate\": \"2019年7月\"}', '', 0, 1), +(7, 0, 'Admin', 'module', 'mod_admin', '', 1, 1, 1, '{\"name\": \"Admin\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"rbac-admin\", \"version\": \"1.0.0\", \"filename\": \"admin\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"RBAC Manager for Yii 2\", \"creationDate\": \"2019 - 09\"}', '', 0, 1), +(8, 0, 'LANGUAGES', 'module', 'mod_languages', '', 1, 1, 1, '{\"name\": \"LANGUAGES\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_langs\", \"version\": \"1.0.1\", \"filename\": \"languages\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"LANGUAGES_XML_DESCRIPTION\", \"creationDate\": \"2019 - 08\"}', '{\"backend\":\"zh-CN\",\"frontend\":\"zh-CN\"}', 0, 1), +(9, 0, 'ACTIONS_LOGS', 'module', 'mod_actionlogs', '', 1, 1, 1, '{\"name\": \"ACTIONS_LOGS\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_actionlogs\", \"version\": \"1.0.0\", \"filename\": \"actionlogs\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"ACTIONS_LOGS_XML_DESCRIPTION\", \"creationDate\": \"2019 - 08\"}', '', 0, 1), +(10, 0, 'ACTION_LOG_NAME', 'plugin', 'main', 'actionlog', 0, 1, 1, '{\"name\": \"ACTION_LOG_NAME\", \"type\": \"plugin\", \"group\": \"actionlog\", \"author\": \"FireLoong\", \"langCat\": \"plg_actionlog\", \"version\": \"1.0.0\", \"filename\": \"main\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"ACTION_LOG_XML_DESCRIPTION\", \"creationDate\": \"July 2019\"}', '', 0, 1), +(11, 0, 'EDITORS_NONE', 'plugin', 'none', 'editors', 0, 1, 1, '{\"name\": \"EDITORS_NONE\", \"type\": \"plugin\", \"group\": \"editors\", \"author\": \"FireLoong\", \"langCat\": \"plg_none\", \"version\": \"1.0.0\", \"filename\": \"none\", \"authorUrl\": \"www.fireloong.com/\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"XML_DESCRIPTION\", \"creationDate\": \"2019 - 11\"}', '', 0, 1), +(12, 0, 'EDITORS_TINYMCE', 'plugin', 'tinymce', 'editors', 0, 1, 1, '{\"name\": \"EDITORS_TINYMCE\", \"type\": \"plugin\", \"group\": \"editors\", \"author\": \"Tiny Technologies, Inc\", \"langCat\": \"plg_tinymce\", \"version\": \"5.1.1\", \"filename\": \"tinymce\", \"authorUrl\": \"https://www.tiny.cloud\", \"copyright\": \"Tiny Technologies, Inc\", \"authorEmail\": \"N/A\", \"description\": \"XML_DESCRIPTION\", \"creationDate\": \"2005-2019\"}', '{\"sets_amount\":\"3\",\"height\":\"350\",\"width\":\"100%\"}', 0, 1), +(13, 0, 'THEME_BASIC', 'theme', 'basic', '', 1, 1, 1, '{\"name\": \"THEME_BASIC\", \"type\": \"theme\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"theme_basic\", \"version\": \"1.0.0\", \"filename\": \"themeDetails\", \"authorUrl\": \"\", \"copyright\": \"Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"THEME_XML_DESCRIPTION\", \"creationDate\": \"2019/10/10\"}', '{\"showSiteName\":\"1\"}', 0, 1), +(14, 0, 'THEME_ADMINLTE', 'theme', 'adminlte', '', 1, 1, 0, '{\"name\": \"THEME_ADMINLTE\", \"type\": \"theme\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"theme_adminlte\", \"version\": \"1.0.0\", \"filename\": \"themeDetails\", \"authorUrl\": \"https://adminlte.io/\", \"copyright\": \"Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"THEME_XML_DESCRIPTION\", \"creationDate\": \"2019/10/10\"}', '{\"showSiteName\":\"1\"}', 0, 1), +(15, 0, 'WIDGET_ALERT', 'widget', 'alert', '', 1, 1, 1, '{\"name\": \"WIDGET_ALERT\", \"type\": \"widget\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"wid_alert\", \"version\": \"1.0.0\", \"filename\": \"widget\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"WIDGET_ALERT_XML_DESCRIPTION\", \"creationDate\": \"2019/12/07\"}', '', 0, 1), +(16, 0, 'WIDGET_LATEST_ACTIONS', 'widget', 'latest_actions', '', 1, 1, 1, '{\"name\": \"WIDGET_LATEST_ACTIONS\", \"type\": \"widget\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"wid_latest_actions\", \"version\": \"1.0.0\", \"filename\": \"widget\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"WIDGET_LATEST_ACTIONS_XML_DESCRIPTION\", \"creationDate\": \"2019/12/07\"}', '{\"count\":\"5\",\"bootstrap_size\":\"6\"}', 0, 1), +(17, 0, 'CONTENT', 'module', 'mod_content', '', 1, 1, 1, '{\"name\": \"CONTENT\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_content\", \"version\": \"1.0.0\", \"filename\": \"content\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"CONTENT_XML_DESCRIPTION\", \"creationDate\": \"2020 - 01\"}', '', 0, 1); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_languages` +-- + +CREATE TABLE `y_languages` ( + `id` int(10) UNSIGNED NOT NULL, + `code` char(7) COLLATE utf8_unicode_ci NOT NULL, + `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `title_native` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `sef` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `image` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(512) COLLATE utf8_unicode_ci NOT NULL, + `metakey` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` text COLLATE utf8_unicode_ci NOT NULL, + `sitename` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `published` tinyint(3) NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_languages` +-- + +INSERT INTO `y_languages` (`id`, `code`, `title`, `title_native`, `sef`, `image`, `description`, `metakey`, `metadesc`, `sitename`, `published`, `ordering`) VALUES +(1, 'en-US', 'English (en-US)', 'English (United States)', 'en', 'en_us', '', '', '', '', 1, 0), +(2, 'zh-CN', 'Chinese Simplified (zh-CN)', '简体中文(中国)', 'zh', 'zh_cn', '说明', '开源,OSC,开源软件,开源硬件,开源网站,开源社区,java开源,perl开源,python开源,ruby开源,php开源,开源项目,开源代码', 'OSCHINA.NET 是目前领先的中文开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台', '中文开源技术交流社区', 1, 0); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_member` +-- + +CREATE TABLE `y_member` ( + `uid` int(11) NOT NULL, + `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lastvisitDate` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_member` +-- + +INSERT INTO `y_member` (`uid`, `name`, `lastvisitDate`) VALUES +(2, '', 1578716377); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_menu` +-- + +CREATE TABLE `y_menu` ( + `id` int(11) NOT NULL, + `name` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `menutype` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `alias` varchar(200) COLLATE utf8_unicode_ci NOT NULL, + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `path` varchar(1024) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `published` tinyint(3) NOT NULL DEFAULT '0', + `parent` int(11) DEFAULT NULL, + `level` int(10) UNSIGNED NOT NULL DEFAULT '0', + `route` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `request` text COLLATE utf8_unicode_ci NOT NULL, + `params` text COLLATE utf8_unicode_ci NOT NULL, + `browserNav` tinyint(1) NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lft` int(11) UNSIGNED NOT NULL DEFAULT '0', + `rgt` int(11) UNSIGNED NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT '0', + `home` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', + `data` blob +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_menu` +-- + +INSERT INTO `y_menu` (`id`, `name`, `menutype`, `alias`, `note`, `path`, `type`, `published`, `parent`, `level`, `route`, `request`, `params`, `browserNav`, `language`, `lft`, `rgt`, `ordering`, `home`, `data`) VALUES +(1, 'SYSTEM', 'main', '', '', '', 'heading', 1, NULL, 0, '', '', '', 0, '*', 0, 17, 0, 0, 0x7b226c616e672d636174223a2273697465227d), +(2, 'CONTROL_PANEL', 'main', '', '', '', 'module', 1, 1, 1, '@app-backend/site/index', '', '', 0, '*', 1, 2, 0, 1, 0x7b226c616e672d636174223a2273697465227d), +(3, '-', 'main', '', '', '', 'separator', 1, 1, 1, '', '', '', 0, '*', 3, 4, 0, 0, NULL), +(4, 'GLOBAL_CONFIGURATION', 'main', '', '', '', 'module', 1, 1, 1, '', '', '', 0, '*', 5, 6, 0, 0, 0x7b226c616e672d636174223a2273697465227d), +(5, '-', 'main', '', '', '', 'separator', 1, 1, 1, '', '', '', 0, '*', 7, 8, 0, 0, NULL), +(6, 'CLEAR_CACHE', 'main', '', '', '', 'module', 1, 1, 1, '@app-backend/cache/index', '', '', 0, '*', 9, 10, 0, 0, 0x7b226c616e672d636174223a226361636865227d), +(7, 'USERS', 'main', '', '', '', 'heading', 1, NULL, 0, '', '', '', 0, '*', 30, 37, 1, 0, 0x7b226c616e672d636174223a2273697465227d), +(8, 'USER_MANAGER', 'main', '', '', '', 'module', 1, 7, 1, '@app-backend/admin/user/index', '', '', 0, '*', 31, 34, 0, 0, 0x7b226c616e672d636174223a2273697465227d), +(9, 'USERS_ADD_USER', 'main', '', '', '', 'module', 1, 8, 2, '@app-backend/admin/user/signup', '', '', 0, '*', 32, 33, 0, 0, 0x7b226c616e672d636174223a2273697465227d), +(10, 'MODULES', 'main', '', '', '', 'heading', 1, NULL, 0, '', '', '', 0, '*', 42, 47, 4, 0, 0x7b226c616e672d636174223a2273697465227d), +(12, 'EXTENSIONS', 'main', '', '', '', 'heading', 1, NULL, 0, '', '', '', 0, '*', 48, 71, 5, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(13, 'EXTENSIONS_MANAGER', 'main', '', '', '', 'module', 1, 12, 1, '@app-backend/extensions/installer', '', '', 0, '*', 49, 60, 0, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(14, 'EXTENSIONS_INSTALL', 'main', '', '', '', 'module', 1, 13, 2, '@app-backend/extensions/installer', '', '', 0, '*', 50, 51, 0, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(15, 'EXTENSIONS_UPDATE', 'main', '', '', '', 'module', 1, 13, 2, '@app-backend/extensions/update', '', '', 0, '*', 52, 53, 0, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(16, 'EXTENSIONS_MANAGE', 'main', '', '', '', 'module', 1, 13, 2, '@app-backend/extensions/manage', '', '', 0, '*', 54, 55, 0, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(17, 'DATABASE', 'main', '', '', '', 'module', 1, 13, 2, '', '', '', 0, '*', 56, 57, 0, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(18, 'LANGUAGES_INSTALL', 'main', '', '', '', 'module', 1, 13, 2, '', '', '', 0, '*', 58, 59, 1, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(19, 'WIDGETS', 'main', '', '', '', 'module', 1, 12, 1, '@app-backend/widgets/default/index', '', '', 0, '*', 63, 64, 1, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(20, 'PLUGINS', 'main', '', '', '', 'module', 1, 12, 1, '@app-backend/plugins/default/index', '', '', 0, '*', 65, 66, 1, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(21, 'THEMES', 'main', '', '', '', 'module', 1, 12, 1, '@app-backend/themes/styles/index', '', '', 0, '*', 67, 68, 1, 0, 0x7b226c616e672d636174223a22657874656e73696f6e73227d), +(22, '-', 'main', '', '', '', 'separator', 1, 12, 1, '', '', '', 0, '*', 61, 62, 0, 0, NULL), +(23, 'Admin', 'main', '', '', '', 'module', 1, 10, 1, '@app-backend/admin/assignment/index', '', '', 0, '*', 43, 44, 0, 0, 0x7b226d6f64756c652d6964223a372c226c616e672d636174223a22726261632d61646d696e227d), +(24, 'LANGUAGES', 'main', '', '', '', 'module', 1, 12, 1, '@app-backend/languages/installed/index', '', '', 0, '*', 69, 70, 1, 0, 0x7b226d6f64756c652d6964223a382c226c616e672d636174223a226d6f645f6c616e6773227d), +(25, 'ACTIONS_LOGS', 'main', '', '', '', 'module', 1, 7, 1, '@app-backend/actionlogs/default/index', '', '', 0, '*', 35, 36, 0, 0, 0x7b226d6f64756c652d6964223a392c226c616e672d636174223a226d6f645f616374696f6e6c6f6773227d), +(26, 'CLIENTS', 'main', '', '', '', 'module', 1, 1, 1, '@app-backend/clients/index', '', '', 0, '*', 11, 12, 0, 0, 0x7b226c616e672d636174223a22636c69656e7473227d), +(27, 'MEDIA', 'main', '', '', '', 'module', 1, 10, 1, '@app-backend/media/default/index', '', '', 0, '*', 45, 46, 0, 0, 0x7b226c616e672d636174223a226d6f645f6d65646961227d), +(28, '-', 'main', '', '', '', 'separator', 1, 1, 1, '', '', '', 0, '*', 13, 14, 0, 0, NULL), +(29, 'SYSTEM_INFORMATION', 'main', '', '', '', 'module', 1, 1, 1, '@app-backend/site/sysinfo', '', '', 0, '*', 15, 16, 0, 0, 0x7b226c616e672d636174223a2273697465227d), +(30, 'CONTENT', 'main', '', '', '', 'heading', 1, NULL, 0, '', '', '', 0, '*', 38, 41, 3, 0, 0x7b226c616e672d636174223a226d6f645f636f6e74656e74227d), +(31, 'ARTICLES', 'main', '', '', '', 'module', 1, 30, 1, '@app-backend/content/articles/index', '', '', 0, '*', 39, 40, 0, 0, 0x7b226c616e672d636174223a226d6f645f636f6e74656e74227d), +(32, '首页', 'mainmenu', 'home', '', 'home', 'module', 1, NULL, 0, '@app-frontend/site/index', '', '{\"template\":\"index\"}', 0, 'zh-CN', 18, 19, 0, 1, NULL), +(33, '关于我们', 'mainmenu', 'about', '', 'about', 'module', 1, NULL, 0, '@app-frontend/content/default/view', '{\"id\":\"2\"}', '', 0, 'zh-CN', 20, 25, 0, 0, NULL), +(34, '百度', 'mainmenu', 'baidu', '', 'baidu', 'url', 1, NULL, 0, 'http://www.baidu.com', '', '', 1, 'zh-CN', 26, 27, 0, 0, NULL), +(35, 'dfhh', 'mainmenu', 'test', '', 'about/test', 'module', 1, 33, 1, '@app-frontend/content/default/view', '{\"id\":\"3\"}', '', 0, '*', 21, 24, 0, 0, NULL), +(36, 'aaa', 'mainmenu', 'aaa', '', 'about/test/aaa', 'module', 1, 35, 2, '@app-frontend/content/default/view', '{\"id\":\"5\"}', '', 0, '*', 22, 23, 0, 0, NULL), +(37, 'Home', 'mainmenu', 'home', '', 'home', 'module', 1, NULL, 0, '@app-frontend/site/index', '', '{\"template\":\"index\"}', 0, 'en-US', 28, 29, 0, 1, NULL); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_menu_types` +-- + +CREATE TABLE `y_menu_types` ( + `id` int(10) UNSIGNED NOT NULL, + `menutype` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `title` varchar(48) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` int(11) NOT NULL DEFAULT '0' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_menu_types` +-- + +INSERT INTO `y_menu_types` (`id`, `menutype`, `title`, `description`, `client_id`) VALUES +(1, 'main', 'BACKEND_MAIN_MENU_LABEL', 'BACKEND_MAIN_MENU_DESC', 1), +(2, 'mainmenu', 'FRONTEND_MAIN_MENU_LABEL', 'FRONTEND_MAIN_MENU_DESC', 2), +(3, 'sfgf', 'dfdf', '', 1), +(4, 'sfgfsdf', 'dfdf', '', 2); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_migration` +-- + +CREATE TABLE `y_migration` ( + `version` varchar(180) COLLATE utf8_unicode_ci NOT NULL, + `apply_time` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_migration` +-- + +INSERT INTO `y_migration` (`version`, `apply_time`) VALUES +('m000000_000000_base', 1565703587), +('m130524_201442_init', 1565704366), +('m140506_102106_rbac_init', 1565704398), +('m140602_111327_create_menu_table', 1565704414), +('m160312_050000_create_user', 1565704414), +('m170907_052038_rbac_add_index_on_auth_assignment_user_id', 1565704399), +('m180523_151638_rbac_updates_indexes_without_prefix', 1565704399), +('m190124_110200_add_verification_token_column_to_user_table', 1565704366), +('m190531_064329_admin', 1565704367), +('m190601_090302_member', 1565704368), +('m190620_012148_extensions', 1565704368), +('m190709_095834_languages', 1565704369), +('m190713_104212_clients', 1565704369), +('m190803_130244_menu_types', 1565704414); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_overrides` +-- + +CREATE TABLE `y_overrides` ( + `id` int(11) NOT NULL, + `override_key` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `override_value` text COLLATE utf8_unicode_ci NOT NULL, + `category` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` tinyint(3) UNSIGNED NOT NULL DEFAULT '0', + `type` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `is_override` tinyint(1) NOT NULL DEFAULT '1' +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_overrides` +-- + +INSERT INTO `y_overrides` (`id`, `override_key`, `override_value`, `category`, `language`, `client_id`, `type`, `is_override`) VALUES +(1, 'SUPER_ADMINISTRATOR', '超级管理员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(2, 'SUPER_ADMINISTRATOR_DESCRIPTION', '有全部权限的管理员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(3, 'REGISTERED', '注册会员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(4, 'REGISTERED_DESCRIPTION', '已经注册的用户', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(5, 'BACKEND_MAIN_MENU_DESC', '后台主菜单', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(6, 'BACKEND_MAIN_MENU_LABEL', '主菜单', 'rbac-admin', 'zh-CN', 1, 'menu-types', 1), +(9, 'FRONTEND_MAIN_MENU_LABEL', '主菜单', 'rbac-admin', 'zh-CN', 1, 'menu-types', 1), +(10, 'FRONTEND_MAIN_MENU_DESC', '前台主菜单', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(11, 'ROLE_PUBLIC', '公共角色', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(12, 'ROLE_PUBLIC_DESCRIPTION', '最低权限的角色', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(13, 'ROLE_SUPER_ADMINISTRATOR', '超级管理员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(14, 'ROLE_SUPER_ADMINISTRATOR_DESCRIPTION', '有全部权限的管理员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(15, 'ROLE_REGISTERED', '注册会员', 'rbac-admin', 'zh-CN', 1, NULL, 1), +(16, 'ROLE_REGISTERED_DESCRIPTION', '已经注册的用户', 'rbac-admin', 'zh-CN', 1, NULL, 1); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_theme_styles` +-- + +CREATE TABLE `y_theme_styles` ( + `id` int(10) UNSIGNED NOT NULL, + `template` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', + `home` tinyint(1) UNSIGNED NOT NULL DEFAULT '0', + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `params` text COLLATE utf8_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_theme_styles` +-- + +INSERT INTO `y_theme_styles` (`id`, `template`, `client_id`, `home`, `title`, `params`) VALUES +(1, 'basic', 1, 1, 'BASIC_TITLE', '{\"showSiteName\":\"1\"}'), +(2, 'adminlte', 1, 0, 'ADMINLTE_TITLE', '{\"showSiteName\":\"1\"}'); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_user` +-- + +CREATE TABLE `y_user` ( + `id` int(11) NOT NULL, + `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `status` smallint(6) NOT NULL DEFAULT '10', + `created_at` int(11) NOT NULL, + `updated_at` int(11) NOT NULL, + `verification_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_user` +-- + +INSERT INTO `y_user` (`id`, `username`, `auth_key`, `password_hash`, `password_reset_token`, `email`, `status`, `created_at`, `updated_at`, `verification_token`) VALUES +(1, 'admin', '0sbDtzB03MoPn_Ez4IHQmaq-HyxRCCE-', '$2y$13$BWBb78DeEBiJ.oU7hN8iUeYIyUBmI4yBnu89ZHAAy0Co1yWcPLwbG', NULL, 'admin@backend.com', 10, 1565836586, 1576672377, NULL), +(2, 'demo', 'IrAgIbMiFExdzG98Vce_S18lRSwTLvSB', '$2y$13$kM.MHsIeSNIUxHQNpPvkXuZVNWkTC6/krXPmJjo8.oNrvvSNjzcVO', NULL, 'demo@frontend.com', 10, 1565836609, 1565836609, 'OROS8yA1pqomUWAwBczIw2x2bhzyhw0P_1565836609'), +(3, 'loong', 'wJG_p3n6uo13ezk9O85K71RaHGI1tZyH', '$2y$13$t1irQ43yYHA6idXLE3whB.K0UBYcV//E0P54fhx2L7e4ZY1kn0OiK', NULL, 'loong@admin.com', 10, 1576409189, 1576494676, NULL); + +-- -------------------------------------------------------- + +-- +-- 表的结构 `y_widgets` +-- + +CREATE TABLE `y_widgets` ( + `id` int(11) NOT NULL, + `title` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `content` text COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `position` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `publish_up` int(11) DEFAULT NULL, + `publish_down` int(11) DEFAULT NULL, + `published` tinyint(1) NOT NULL DEFAULT '0', + `widget` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `showtitle` tinyint(3) UNSIGNED NOT NULL DEFAULT '1', + `params` text COLLATE utf8_unicode_ci NOT NULL, + `client_id` tinyint(4) NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- 转存表中的数据 `y_widgets` +-- + +INSERT INTO `y_widgets` (`id`, `title`, `note`, `content`, `ordering`, `position`, `publish_up`, `publish_down`, `published`, `widget`, `showtitle`, `params`, `client_id`, `language`) VALUES +(1, '信息提示框', '', '', 0, 'content-header', NULL, NULL, 1, 'alert', 0, '', 1, '*'), +(2, '操作日志 - 最新操作', '', '', 0, 'cpanel', NULL, NULL, 1, 'latest_actions', 1, '{\"count\":\"5\",\"bootstrap_size\":\"6\"}', 1, '*'); + +-- +-- 转储表的索引 +-- + +-- +-- 表的索引 `y_action_logs` +-- +ALTER TABLE `y_action_logs` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `y_admin` +-- +ALTER TABLE `y_admin` + ADD UNIQUE KEY `uid` (`uid`); + +-- +-- 表的索引 `y_auth_assignment` +-- +ALTER TABLE `y_auth_assignment` + ADD PRIMARY KEY (`item_name`,`user_id`), + ADD KEY `y_idx-auth_assignment-user_id` (`user_id`); + +-- +-- 表的索引 `y_auth_item` +-- +ALTER TABLE `y_auth_item` + ADD PRIMARY KEY (`name`), + ADD KEY `rule_name` (`rule_name`), + ADD KEY `y_idx-auth_item-type` (`type`); + +-- +-- 表的索引 `y_auth_item_child` +-- +ALTER TABLE `y_auth_item_child` + ADD PRIMARY KEY (`parent`,`child`), + ADD KEY `child` (`child`); + +-- +-- 表的索引 `y_auth_rule` +-- +ALTER TABLE `y_auth_rule` + ADD PRIMARY KEY (`name`); + +-- +-- 表的索引 `y_categories` +-- +ALTER TABLE `y_categories` + ADD PRIMARY KEY (`id`), + ADD KEY `cat_idx` (`extension`,`published`), + ADD KEY `idx_path` (`path`(100)), + ADD KEY `idx_left_right` (`lft`,`rgt`), + ADD KEY `idx_alias` (`alias`(100)), + ADD KEY `idx_language` (`language`); + +-- +-- 表的索引 `y_clients` +-- +ALTER TABLE `y_clients` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `name` (`name`); + +-- +-- 表的索引 `y_content` +-- +ALTER TABLE `y_content` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_catid` (`catid`), + ADD KEY `idx_createdby` (`created_by`), + ADD KEY `idx_featured_catid` (`featured`,`catid`), + ADD KEY `idx_language` (`language`), + ADD KEY `idx_alias` (`alias`), + ADD KEY `idx_status` (`status`) USING BTREE, + ADD KEY `idx_xreference` (`xreference`) USING BTREE; + +-- +-- 表的索引 `y_extensions` +-- +ALTER TABLE `y_extensions` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `y_languages` +-- +ALTER TABLE `y_languages` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `idx_sef` (`sef`), + ADD UNIQUE KEY `idx_code` (`code`); + +-- +-- 表的索引 `y_member` +-- +ALTER TABLE `y_member` + ADD UNIQUE KEY `uid` (`uid`); + +-- +-- 表的索引 `y_menu` +-- +ALTER TABLE `y_menu` + ADD PRIMARY KEY (`id`), + ADD KEY `parent` (`parent`), + ADD KEY `idx_left_right` (`lft`,`rgt`); + +-- +-- 表的索引 `y_menu_types` +-- +ALTER TABLE `y_menu_types` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `menutype` (`menutype`); + +-- +-- 表的索引 `y_migration` +-- +ALTER TABLE `y_migration` + ADD PRIMARY KEY (`version`); + +-- +-- 表的索引 `y_overrides` +-- +ALTER TABLE `y_overrides` + ADD PRIMARY KEY (`id`); + +-- +-- 表的索引 `y_theme_styles` +-- +ALTER TABLE `y_theme_styles` + ADD PRIMARY KEY (`id`), + ADD KEY `idx_template` (`template`), + ADD KEY `idx_client_id` (`client_id`), + ADD KEY `idx_client_id_home` (`client_id`,`home`); + +-- +-- 表的索引 `y_user` +-- +ALTER TABLE `y_user` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `username` (`username`), + ADD UNIQUE KEY `email` (`email`), + ADD UNIQUE KEY `password_reset_token` (`password_reset_token`); + +-- +-- 表的索引 `y_widgets` +-- +ALTER TABLE `y_widgets` + ADD PRIMARY KEY (`id`), + ADD KEY `published` (`published`), + ADD KEY `newsfeeds` (`widget`,`published`), + ADD KEY `idx_language` (`language`); + +-- +-- 在导出的表使用AUTO_INCREMENT +-- + +-- +-- 使用表AUTO_INCREMENT `y_action_logs` +-- +ALTER TABLE `y_action_logs` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=264; + +-- +-- 使用表AUTO_INCREMENT `y_categories` +-- +ALTER TABLE `y_categories` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 使用表AUTO_INCREMENT `y_clients` +-- +ALTER TABLE `y_clients` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 使用表AUTO_INCREMENT `y_content` +-- +ALTER TABLE `y_content` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; + +-- +-- 使用表AUTO_INCREMENT `y_extensions` +-- +ALTER TABLE `y_extensions` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; + +-- +-- 使用表AUTO_INCREMENT `y_languages` +-- +ALTER TABLE `y_languages` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 使用表AUTO_INCREMENT `y_menu` +-- +ALTER TABLE `y_menu` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38; + +-- +-- 使用表AUTO_INCREMENT `y_menu_types` +-- +ALTER TABLE `y_menu_types` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; + +-- +-- 使用表AUTO_INCREMENT `y_overrides` +-- +ALTER TABLE `y_overrides` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=17; + +-- +-- 使用表AUTO_INCREMENT `y_theme_styles` +-- +ALTER TABLE `y_theme_styles` + MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 使用表AUTO_INCREMENT `y_user` +-- +ALTER TABLE `y_user` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- 使用表AUTO_INCREMENT `y_widgets` +-- +ALTER TABLE `y_widgets` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; + +-- +-- 限制导出的表 +-- + +-- +-- 限制表 `y_admin` +-- +ALTER TABLE `y_admin` + ADD CONSTRAINT `fk-admin-uid` FOREIGN KEY (`uid`) REFERENCES `y_user` (`id`) ON DELETE CASCADE; + +-- +-- 限制表 `y_auth_assignment` +-- +ALTER TABLE `y_auth_assignment` + ADD CONSTRAINT `y_auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- 限制表 `y_auth_item` +-- +ALTER TABLE `y_auth_item` + ADD CONSTRAINT `y_auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `y_auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE; + +-- +-- 限制表 `y_auth_item_child` +-- +ALTER TABLE `y_auth_item_child` + ADD CONSTRAINT `y_auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, + ADD CONSTRAINT `y_auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- 限制表 `y_member` +-- +ALTER TABLE `y_member` + ADD CONSTRAINT `fk-member-uid` FOREIGN KEY (`uid`) REFERENCES `y_user` (`id`) ON DELETE CASCADE; + +-- +-- 限制表 `y_menu` +-- +ALTER TABLE `y_menu` + ADD CONSTRAINT `y_menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `y_menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/yii_dump.sql b/yii_dump.sql new file mode 100644 index 0000000000000000000000000000000000000000..728dff94190b82b52f4c81ed5580f84909d41478 --- /dev/null +++ b/yii_dump.sql @@ -0,0 +1,664 @@ +-- MySQL dump 10.13 Distrib 5.7.29, for Linux (x86_64) +-- +-- Host: localhost Database: yii +-- ------------------------------------------------------ +-- Server version 5.7.29 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Current Database: `yii` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `yii` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */; + +USE `yii`; + +-- +-- Table structure for table `y_action_logs` +-- + +DROP TABLE IF EXISTS `y_action_logs`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_action_logs` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `info` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `message` text COLLATE utf8_unicode_ci NOT NULL, + `log_date` int(11) NOT NULL, + `uid` int(11) NOT NULL DEFAULT '0', + `item_id` int(11) NOT NULL DEFAULT '0', + `ip_address` varchar(40) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=264 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_action_logs` +-- + +LOCK TABLES `y_action_logs` WRITE; +/*!40000 ALTER TABLE `y_action_logs` DISABLE KEYS */; +INSERT INTO `y_action_logs` VALUES (1,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571737951,1,0,'127.0.0.1'),(2,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571737957,1,0,'127.0.0.1'),(3,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571737962,1,0,'127.0.0.1'),(4,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571752360,1,0,'127.0.0.1'),(5,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571752370,1,0,'127.0.0.1'),(6,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571799233,1,0,'127.0.0.1'),(7,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1571969229,1,0,'127.0.0.1'),(8,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574668950,1,0,'172.17.0.1'),(9,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574686523,1,0,'172.17.0.1'),(10,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574730996,1,0,'172.17.0.1'),(11,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574770178,1,0,'172.17.0.1'),(12,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1574777174,1,0,'172.17.0.1'),(13,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1574777221,1,0,'172.17.0.1'),(14,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574906783,1,0,'172.17.0.1'),(15,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1574995386,1,0,'172.17.0.1'),(16,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575006849,1,0,'192.168.1.3'),(17,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575030984,1,0,'172.17.0.1'),(18,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575030996,1,0,'172.17.0.1'),(19,'USER_LOGGED_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575031226,1,0,'172.17.0.1'),(20,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575031233,1,0,'172.17.0.1'),(21,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575033968,1,0,'172.17.0.1'),(22,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575034004,1,0,'192.168.1.3'),(23,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575117958,1,0,'172.17.0.1'),(24,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575117975,1,0,'172.17.0.1'),(25,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575117981,1,0,'172.17.0.1'),(26,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575119233,1,0,'172.17.0.1'),(27,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575119370,1,0,'172.17.0.1'),(28,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575119406,1,0,'172.17.0.1'),(29,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575119412,1,0,'172.17.0.1'),(30,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575119482,1,0,'172.17.0.1'),(31,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575120703,1,0,'172.17.0.1'),(32,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121119,1,0,'172.17.0.1'),(33,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121155,1,0,'172.17.0.1'),(34,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121168,1,0,'172.17.0.1'),(35,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121508,1,0,'172.17.0.1'),(36,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121650,1,0,'172.17.0.1'),(37,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121926,1,0,'192.168.1.3'),(38,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121939,1,0,'192.168.1.3'),(39,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575121987,1,0,'192.168.1.3'),(40,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575166009,1,0,'172.17.0.1'),(41,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575166146,1,0,'172.17.0.1'),(42,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575167896,1,0,'172.17.0.1'),(43,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575168692,1,0,'172.17.0.1'),(44,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575169360,1,0,'172.17.0.1'),(45,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575169406,1,0,'192.168.1.3'),(46,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575181428,1,0,'172.17.0.1'),(47,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575181437,1,0,'172.17.0.1'),(48,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197392,1,0,'192.168.1.3'),(49,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197548,1,0,'192.168.1.3'),(50,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197569,1,0,'192.168.1.3'),(51,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197581,1,0,'192.168.1.3'),(52,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197592,1,0,'192.168.1.3'),(53,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575197751,1,0,'172.17.0.1'),(54,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575253834,1,0,'192.168.1.3'),(55,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575254039,1,0,'172.17.0.1'),(56,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575254846,1,0,'172.17.0.1'),(57,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575276529,1,0,'192.168.1.5'),(58,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575281347,1,0,'192.168.1.3'),(59,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575283424,1,0,'192.168.1.5'),(60,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575283560,1,0,'172.17.0.1'),(61,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575289567,1,0,'172.17.0.1'),(62,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575338533,1,0,'172.17.0.1'),(63,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575339786,1,0,'172.17.0.1'),(64,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575339798,1,0,'172.17.0.1'),(65,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575340464,1,0,'192.168.1.5'),(66,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575340532,1,0,'192.168.1.3'),(67,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575354304,1,0,'172.17.0.1'),(68,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575375506,1,0,'172.17.0.1'),(69,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575511264,1,0,'172.17.0.1'),(70,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575525993,1,0,'192.168.1.3'),(71,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575542649,1,0,'172.17.0.1'),(72,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575542726,1,0,'172.17.0.1'),(73,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575543674,1,0,'172.17.0.1'),(74,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575545654,1,0,'192.168.1.3'),(75,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575596156,1,0,'172.17.0.1'),(76,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575597504,1,0,'192.168.1.3'),(79,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575619778,1,0,'172.17.0.1'),(80,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575620067,1,0,'172.17.0.1'),(81,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575621740,1,0,'172.17.0.1'),(82,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575621746,1,0,'172.17.0.1'),(83,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575622351,1,0,'172.17.0.1'),(84,'USER_PURGED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1575622823,1,0,'172.17.0.1'),(85,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575632191,1,0,'172.17.0.1'),(86,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575684383,1,0,'172.17.0.1'),(87,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575719702,1,0,'192.168.1.3'),(88,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575721864,1,0,'172.17.0.1'),(89,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575772539,1,0,'192.168.1.2'),(90,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575774134,1,0,'172.17.0.1'),(91,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575857251,1,0,'192.168.1.4'),(92,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575857412,1,0,'172.17.0.1'),(93,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575890094,1,0,'172.17.0.1'),(94,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1575946103,1,0,'172.17.0.1'),(95,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576029647,1,0,'192.168.1.4'),(96,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576030460,1,0,'172.17.0.1'),(97,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576116774,1,0,'172.17.0.1'),(98,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576130316,1,0,'192.168.1.4'),(99,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1576131743,1,0,'192.168.1.4'),(100,'USER_EXPORTED_ONE_OR_MORE_ROWS','{\"action\":\"actionlogs\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\"}',1576131763,1,0,'192.168.1.4'),(101,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576221161,1,0,'172.17.0.1'),(102,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576226423,1,0,'192.168.1.4'),(103,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576227951,1,0,'192.168.1.4'),(104,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576227991,1,0,'192.168.1.4'),(105,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576320796,1,0,'172.17.0.1'),(106,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576374728,1,0,'192.168.1.4'),(107,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576375107,1,0,'172.17.0.1'),(108,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576407532,1,0,'172.17.0.1'),(109,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576408790,1,0,'172.17.0.1'),(110,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409198,3,0,'172.17.0.1'),(111,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409362,3,0,'172.17.0.1'),(112,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409370,1,0,'172.17.0.1'),(113,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409463,1,0,'172.17.0.1'),(114,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409471,3,0,'172.17.0.1'),(115,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409476,3,0,'172.17.0.1'),(116,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576409483,1,0,'172.17.0.1'),(117,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576411922,1,0,'192.168.1.4'),(118,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576417751,1,0,'172.17.0.1'),(119,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576417758,1,0,'172.17.0.1'),(120,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576417800,1,0,'172.17.0.1'),(121,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"hehe.html\",\"app\":\"backend\"}',1576417869,1,0,'172.17.0.1'),(122,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576417875,1,0,'172.17.0.1'),(123,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576419250,1,0,'172.17.0.1'),(124,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576463590,1,0,'172.17.0.1'),(125,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576464150,1,0,'192.168.1.4'),(126,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576500473,1,0,'172.17.0.1'),(127,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576500489,1,0,'172.17.0.1'),(128,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576503596,1,0,'172.17.0.1'),(129,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576503603,1,0,'172.17.0.1'),(130,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576503609,1,0,'172.17.0.1'),(131,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576549548,1,0,'172.17.0.1'),(132,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576549787,3,0,'172.17.0.1'),(133,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576563805,1,0,'192.168.1.4'),(134,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576563822,1,0,'192.168.1.4'),(135,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576563835,3,0,'192.168.1.4'),(136,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576567127,3,0,'192.168.1.4'),(137,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576567200,1,0,'172.17.0.1'),(138,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576567205,1,0,'172.17.0.1'),(139,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576567213,3,0,'172.17.0.1'),(140,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576572206,3,0,'172.17.0.1'),(141,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576572213,1,0,'172.17.0.1'),(142,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576575736,3,0,'192.168.1.4'),(143,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576575900,3,0,'192.168.1.4'),(144,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576575999,1,0,'192.168.1.4'),(145,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576635014,1,0,'172.17.0.1'),(146,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576665796,1,0,'172.17.0.1'),(147,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576676566,1,0,'192.168.1.4'),(148,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576719577,1,0,'192.168.1.4'),(149,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576720229,1,0,'172.17.0.1'),(150,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576753937,1,0,'172.17.0.1'),(151,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576804884,1,0,'172.17.0.1'),(152,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576809052,1,0,'192.168.1.4'),(153,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576809114,1,0,'192.168.1.2'),(154,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"frontend\"}',1576813249,1,0,'172.17.0.1'),(155,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576813254,1,0,'172.17.0.1'),(156,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576840356,1,0,'172.17.0.1'),(157,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576893383,1,0,'172.17.0.1'),(158,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576925290,1,0,'172.17.0.1'),(159,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576926702,1,0,'192.168.1.2'),(160,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576926712,1,0,'192.168.1.2'),(161,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1576926720,3,0,'192.168.1.2'),(162,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1576985120,1,0,'172.17.0.1'),(163,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577067436,1,0,'172.17.0.1'),(164,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577170608,1,0,'172.17.0.1'),(165,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577238545,1,0,'172.17.0.1'),(166,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577324765,1,0,'172.17.0.1'),(167,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577340434,1,0,'172.17.0.1'),(168,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577340494,1,0,'172.17.0.1'),(169,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577340686,1,0,'172.17.0.1'),(170,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577428230,1,0,'172.17.0.1'),(171,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577449097,1,0,'172.17.0.1'),(172,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577497838,1,0,'172.17.0.1'),(173,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577585432,1,0,'172.17.0.1'),(174,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577670202,1,0,'172.17.0.1'),(175,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577697998,1,0,'192.168.1.4'),(176,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577760669,1,0,'172.17.0.1'),(177,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":3,\"username\":\"loong\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=3\",\"app\":\"backend\"}',1577799348,3,0,'172.17.0.1'),(178,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577843552,1,0,'172.17.0.1'),(179,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577869022,1,0,'172.17.0.1'),(180,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577870162,1,0,'172.17.0.1'),(181,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577870203,1,0,'172.17.0.1'),(182,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1577931023,1,0,'172.17.0.1'),(183,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578015109,1,0,'172.17.0.1'),(184,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578049518,1,0,'172.17.0.1'),(185,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578103648,1,0,'172.17.0.1'),(186,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578118609,1,0,'172.17.0.1'),(187,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578188499,1,0,'172.17.0.1'),(188,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578308037,1,0,'172.17.0.1'),(189,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578363435,1,0,'172.17.0.1'),(190,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578395269,1,0,'172.17.0.1'),(191,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578482210,1,0,'172.17.0.1'),(192,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578535178,1,0,'172.17.0.1'),(193,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578621998,1,0,'172.17.0.1'),(194,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578709068,1,0,'172.17.0.1'),(195,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578715179,1,0,'172.17.0.1'),(196,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578715179,1,0,'172.17.0.1'),(197,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578715187,1,0,'172.17.0.1'),(198,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715323,2,0,'172.17.0.1'),(199,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715695,2,0,'172.17.0.1'),(200,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715734,2,0,'172.17.0.1'),(201,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715856,2,0,'172.17.0.1'),(202,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715950,2,0,'172.17.0.1'),(203,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578715960,2,0,'172.17.0.1'),(204,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578716366,2,0,'172.17.0.1'),(205,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578716377,2,0,'172.17.0.1'),(206,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":2,\"username\":\"demo\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=2\",\"app\":\"frontend\"}',1578716380,2,0,'172.17.0.1'),(207,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578743044,1,0,'172.17.0.1'),(208,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578748903,1,0,'172.17.0.1'),(209,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578797224,1,0,'172.17.0.1'),(210,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"frontend\"}',1578835826,1,0,'172.17.0.1'),(211,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578835954,1,0,'172.17.0.1'),(212,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578879690,1,0,'172.17.0.1'),(213,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578914733,1,0,'172.17.0.1'),(214,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578969291,1,0,'172.17.0.1'),(215,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1578992355,1,0,'172.17.0.1'),(216,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579055540,1,0,'172.17.0.1'),(217,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579140553,1,0,'172.17.0.1'),(218,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579141262,1,0,'172.17.0.1'),(219,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579179955,1,0,'172.17.0.1'),(220,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579228850,1,0,'172.17.0.1'),(221,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579258421,1,0,'172.17.0.1'),(222,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579310884,1,0,'172.17.0.1'),(223,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579351178,1,0,'172.17.0.1'),(224,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579400325,1,0,'172.17.0.1'),(225,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579434491,1,0,'172.17.0.1'),(226,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579519212,1,0,'172.17.0.1'),(227,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579571311,1,0,'172.17.0.1'),(228,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579572337,1,0,'172.17.0.1'),(229,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1579660542,1,0,'172.17.0.1'),(230,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582006681,1,0,'172.17.0.1'),(231,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582077932,1,0,'172.17.0.1'),(232,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582099485,1,0,'172.17.0.1'),(233,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582163560,1,0,'172.17.0.1'),(234,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582167282,1,0,'172.17.0.1'),(235,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582173249,1,0,'172.17.0.1'),(236,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582254166,1,0,'172.17.0.1'),(237,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582254171,1,0,'172.17.0.1'),(238,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582278070,1,0,'172.17.0.1'),(239,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582462612,1,0,'172.17.0.1'),(240,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582462882,1,0,'172.17.0.1'),(241,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582943471,1,0,'172.17.0.1'),(242,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1582943471,1,0,'172.17.0.1'),(243,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583115092,1,0,'172.17.0.1'),(244,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583129265,1,0,'172.17.0.1'),(245,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583204497,1,0,'172.17.0.1'),(246,'USER_LOGGED_OUT_APP','{\"action\":\"logout\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583224038,1,0,'172.17.0.1'),(247,'USER_TRIED_LOGIN_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583228450,1,0,'172.17.0.1'),(248,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583228459,1,0,'172.17.0.1'),(249,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583288611,1,0,'172.17.0.1'),(250,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583325760,1,0,'172.17.0.1'),(251,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583330991,1,0,'172.17.0.1'),(252,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583374306,1,0,'172.17.0.1'),(253,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583475198,1,0,'172.17.0.1'),(254,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583585834,1,0,'172.17.0.1'),(255,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583632798,1,0,'172.17.0.1'),(256,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583754076,1,0,'172.17.0.1'),(257,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583809737,1,0,'172.17.0.1'),(258,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1583976672,1,0,'172.17.0.1'),(259,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1584099097,1,0,'172.17.0.1'),(260,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1584099180,1,0,'172.17.0.1'),(261,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1584186175,1,0,'172.17.0.1'),(262,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1584250774,1,0,'172.17.0.1'),(263,'USER_LOGGED_APP','{\"action\":\"login\",\"userid\":1,\"username\":\"admin\",\"accountlink\":\"\\/admin\\/user\\/view.html?id=1\",\"app\":\"backend\"}',1584494813,1,0,'172.17.0.1'); +/*!40000 ALTER TABLE `y_action_logs` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_admin` +-- + +DROP TABLE IF EXISTS `y_admin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_admin` ( + `uid` int(11) NOT NULL, + `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lastvisitDate` int(11) NOT NULL, + UNIQUE KEY `uid` (`uid`), + CONSTRAINT `fk-admin-uid` FOREIGN KEY (`uid`) REFERENCES `y_user` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_admin` +-- + +LOCK TABLES `y_admin` WRITE; +/*!40000 ALTER TABLE `y_admin` DISABLE KEYS */; +INSERT INTO `y_admin` VALUES (1,'Super User',1584494813),(3,'',1577799348); +/*!40000 ALTER TABLE `y_admin` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_auth_assignment` +-- + +DROP TABLE IF EXISTS `y_auth_assignment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_auth_assignment` ( + `item_name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `user_id` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `created_at` int(11) DEFAULT NULL, + PRIMARY KEY (`item_name`,`user_id`), + KEY `y_idx-auth_assignment-user_id` (`user_id`), + CONSTRAINT `y_auth_assignment_ibfk_1` FOREIGN KEY (`item_name`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_auth_assignment` +-- + +LOCK TABLES `y_auth_assignment` WRITE; +/*!40000 ALTER TABLE `y_auth_assignment` DISABLE KEYS */; +INSERT INTO `y_auth_assignment` VALUES ('ROLE_REGISTERED','2',1576329270),('ROLE_SUPER_ADMINISTRATOR','1',1565848960),('ROLE_SUPER_ADMINISTRATOR','3',1577799376); +/*!40000 ALTER TABLE `y_auth_assignment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_auth_item` +-- + +DROP TABLE IF EXISTS `y_auth_item`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_auth_item` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `type` smallint(6) NOT NULL, + `description` text COLLATE utf8_unicode_ci, + `rule_name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL, + PRIMARY KEY (`name`), + KEY `rule_name` (`rule_name`), + KEY `y_idx-auth_item-type` (`type`), + CONSTRAINT `y_auth_item_ibfk_1` FOREIGN KEY (`rule_name`) REFERENCES `y_auth_rule` (`name`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_auth_item` +-- + +LOCK TABLES `y_auth_item` WRITE; +/*!40000 ALTER TABLE `y_auth_item` DISABLE KEYS */; +INSERT INTO `y_auth_item` VALUES ('@app-backend/*',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/actionlogs/*',2,NULL,NULL,NULL,1571735776,1571735776),('@app-backend/actionlogs/default/*',2,NULL,NULL,NULL,1571735776,1571735776),('@app-backend/actionlogs/default/index',2,NULL,NULL,NULL,1571735776,1571735776),('@app-backend/admin/*',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/assignment/*',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/assignment/assign',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/assignment/index',2,NULL,NULL,NULL,1565848732,1565848732),('@app-backend/admin/assignment/revoke',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/assignment/view',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/default/*',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/default/index',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/*',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/create',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/delete',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/index',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/update',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu-types/view',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/*',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/create',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/delete',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/index',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/update',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/menu/view',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/*',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/permission/assign',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/create',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/delete',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/index',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/remove',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/permission/update',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/permission/view',2,NULL,NULL,NULL,1565848733,1565848733),('@app-backend/admin/role/*',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/assign',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/create',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/delete',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/index',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/remove',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/update',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/role/view',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/*',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/assign',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/create',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/index',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/refresh',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/route/remove',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/*',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/create',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/delete',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/index',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/update',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/rule/view',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/user/*',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/activate',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/change-password',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/delete',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/user/index',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/user/login',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/user/logout',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/admin/user/request-password-reset',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/reset-password',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/signup',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/admin/user/view',2,NULL,NULL,NULL,1565848734,1565848734),('@app-backend/cache/*',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/cache/index',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/*',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/create',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/delete',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/index',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/update',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/clients/view',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/content/*',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/content/articles/*',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/content/articles/create',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/content/articles/delete',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/content/articles/index',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/content/articles/update',2,NULL,NULL,NULL,1578832026,1578832026),('@app-backend/extensions/*',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/extensions/create',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/extensions/delete',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/extensions/installer',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/extensions/manage',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/extensions/update',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/extensions/view',2,NULL,NULL,NULL,1565848735,1565848735),('@app-backend/languages/*',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/installed/*',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/installed/index',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/installed/switch',2,NULL,NULL,NULL,1569852538,1569852538),('@app-backend/languages/languages/*',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/languages/create',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/languages/delete',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/languages/index',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/languages/update',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/languages/view',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/overrides/*',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/overrides/create',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/overrides/delete',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/overrides/index',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/languages/overrides/update',2,NULL,NULL,NULL,1569760303,1569760303),('@app-backend/media/*',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/default/*',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/default/create',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/default/delete',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/default/index',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/default/upload',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/images/*',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/images/index',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/media/images/upload',2,NULL,NULL,NULL,1574857671,1574857671),('@app-backend/plugins/*',2,NULL,NULL,NULL,1574684794,1574684794),('@app-backend/plugins/default/*',2,NULL,NULL,NULL,1574684794,1574684794),('@app-backend/plugins/default/edit',2,NULL,NULL,NULL,1574684794,1574684794),('@app-backend/plugins/default/index',2,NULL,NULL,NULL,1574684794,1574684794),('@app-backend/site/*',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/site/error',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/site/icon',2,NULL,NULL,NULL,1578713143,1578713143),('@app-backend/site/index',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/site/login',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/site/logout',2,NULL,NULL,NULL,1565848736,1565848736),('@app-backend/site/sysinfo',2,NULL,NULL,NULL,1575858346,1575858346),('@app-backend/themes/*',2,NULL,NULL,NULL,1575343826,1575343826),('@app-backend/themes/styles/*',2,NULL,NULL,NULL,1575343825,1575343825),('@app-backend/themes/styles/index',2,NULL,NULL,NULL,1575343825,1575343825),('@app-backend/widgets/*',2,NULL,NULL,NULL,1575862824,1575862824),('@app-backend/widgets/default/*',2,NULL,NULL,NULL,1575862824,1575862824),('@app-backend/widgets/default/index',2,NULL,NULL,NULL,1575862824,1575862824),('@app-frontend/*',2,NULL,NULL,NULL,1576323440,1576323440),('@app-frontend/content/*',2,NULL,NULL,NULL,1578835780,1578835780),('@app-frontend/content/default/*',2,NULL,NULL,NULL,1578835780,1578835780),('@app-frontend/content/default/index',2,NULL,NULL,NULL,1578835780,1578835780),('@app-frontend/content/default/view',2,NULL,NULL,NULL,1578835780,1578835780),('@app-frontend/site/*',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/about',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/captcha',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/contact',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/error',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/index',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/language',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/login',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/logout',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/redirect',2,NULL,NULL,NULL,1583400862,1583400862),('@app-frontend/site/request-password-reset',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/resend-verification-email',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/reset-password',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/signup',2,NULL,NULL,NULL,1578713399,1578713399),('@app-frontend/site/verify-email',2,NULL,NULL,NULL,1578713399,1578713399),('ROLE_PUBLIC',1,'ROLE_PUBLIC_DESCRIPTION',NULL,NULL,1578711818,1578743406),('ROLE_REGISTERED',1,'ROLE_REGISTERED_DESCRIPTION',NULL,NULL,1576325765,1578743395),('ROLE_SUPER_ADMINISTRATOR',1,'ROLE_SUPER_ADMINISTRATOR_DESCRIPTION',NULL,NULL,1565848943,1578743381); +/*!40000 ALTER TABLE `y_auth_item` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_auth_item_child` +-- + +DROP TABLE IF EXISTS `y_auth_item_child`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_auth_item_child` ( + `parent` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `child` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`parent`,`child`), + KEY `child` (`child`), + CONSTRAINT `y_auth_item_child_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `y_auth_item_child_ibfk_2` FOREIGN KEY (`child`) REFERENCES `y_auth_item` (`name`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_auth_item_child` +-- + +LOCK TABLES `y_auth_item_child` WRITE; +/*!40000 ALTER TABLE `y_auth_item_child` DISABLE KEYS */; +INSERT INTO `y_auth_item_child` VALUES ('ROLE_SUPER_ADMINISTRATOR','@app-backend/*'),('ROLE_PUBLIC','@app-backend/admin/user/login'),('ROLE_PUBLIC','@app-backend/admin/user/logout'),('ROLE_PUBLIC','@app-backend/admin/user/request-password-reset'),('ROLE_PUBLIC','@app-backend/admin/user/signup'),('ROLE_PUBLIC','@app-backend/site/error'),('ROLE_PUBLIC','@app-backend/site/login'),('ROLE_PUBLIC','@app-backend/site/logout'),('ROLE_REGISTERED','@app-frontend/*'),('ROLE_PUBLIC','@app-frontend/content/*'),('ROLE_PUBLIC','@app-frontend/site/about'),('ROLE_PUBLIC','@app-frontend/site/captcha'),('ROLE_PUBLIC','@app-frontend/site/contact'),('ROLE_PUBLIC','@app-frontend/site/error'),('ROLE_PUBLIC','@app-frontend/site/index'),('ROLE_PUBLIC','@app-frontend/site/language'),('ROLE_PUBLIC','@app-frontend/site/login'),('ROLE_PUBLIC','@app-frontend/site/logout'),('ROLE_PUBLIC','@app-frontend/site/redirect'),('ROLE_PUBLIC','@app-frontend/site/request-password-reset'),('ROLE_PUBLIC','@app-frontend/site/resend-verification-email'),('ROLE_PUBLIC','@app-frontend/site/signup'),('ROLE_PUBLIC','@app-frontend/site/verify-email'),('ROLE_SUPER_ADMINISTRATOR','ROLE_REGISTERED'); +/*!40000 ALTER TABLE `y_auth_item_child` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_auth_rule` +-- + +DROP TABLE IF EXISTS `y_auth_rule`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_auth_rule` ( + `name` varchar(64) COLLATE utf8_unicode_ci NOT NULL, + `data` blob, + `created_at` int(11) DEFAULT NULL, + `updated_at` int(11) DEFAULT NULL, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_auth_rule` +-- + +LOCK TABLES `y_auth_rule` WRITE; +/*!40000 ALTER TABLE `y_auth_rule` DISABLE KEYS */; +/*!40000 ALTER TABLE `y_auth_rule` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_categories` +-- + +DROP TABLE IF EXISTS `y_categories`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_categories` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `parent_id` int(10) unsigned NOT NULL DEFAULT '0', + `lft` int(11) NOT NULL DEFAULT '0', + `rgt` int(11) NOT NULL DEFAULT '0', + `level` int(10) unsigned NOT NULL DEFAULT '0', + `path` varchar(400) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `extension` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `alias` varchar(400) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `description` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `published` tinyint(1) NOT NULL DEFAULT '0', + `params` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `metakey` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `metadata` varchar(2048) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `created_by` int(10) unsigned NOT NULL DEFAULT '0', + `created_at` int(11) NOT NULL, + `modified_by` int(10) unsigned NOT NULL DEFAULT '0', + `modified_at` int(11) NOT NULL, + `hits` int(10) unsigned NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `cat_idx` (`extension`,`published`), + KEY `idx_path` (`path`(100)), + KEY `idx_left_right` (`lft`,`rgt`), + KEY `idx_alias` (`alias`(100)), + KEY `idx_language` (`language`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_categories` +-- + +LOCK TABLES `y_categories` WRITE; +/*!40000 ALTER TABLE `y_categories` DISABLE KEYS */; +INSERT INTO `y_categories` VALUES (1,0,0,1,0,'uncategorised','mod_content','Uncategorised','uncategorised','','',1,'{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}','','','{\"author\":\"\",\"robots\":\"\"}',1,1576828229,1,1583477774,0,'*'),(2,0,2,3,0,'news','mod_content','News','news','','',1,'{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}','','','{\"author\":\"\",\"robots\":\"\"}',1,1576848918,1,1583477774,0,'en-US'),(3,0,4,7,0,'news','mod_content','新闻','news','','',1,'{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}','','','{\"author\":\"\",\"robots\":\"\"}',1,1576849332,1,1583477774,0,'zh-CN'),(4,3,5,6,1,'news/blog','mod_content','博客','blog','','',1,'{\"category_layout\":\"\",\"image\":\"\",\"image_alt\":\"\"}','','','{\"author\":\"\",\"robots\":\"\"}',1,1583477773,1,1583477774,0,'zh-CN'); +/*!40000 ALTER TABLE `y_categories` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_clients` +-- + +DROP TABLE IF EXISTS `y_clients`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_clients` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `name` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `url` varchar(1024) COLLATE utf8_unicode_ci NOT NULL, + `path` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `status` tinyint(3) unsigned NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_clients` +-- + +LOCK TABLES `y_clients` WRITE; +/*!40000 ALTER TABLE `y_clients` DISABLE KEYS */; +INSERT INTO `y_clients` VALUES (1,'backend','http://backend.tld/','/backend','Background management application',1,1),(2,'frontend','http://frontend.tld/','/frontend','Front desk application',2,1); +/*!40000 ALTER TABLE `y_clients` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_content` +-- + +DROP TABLE IF EXISTS `y_content`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_content` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `alias` varchar(400) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', + `introtext` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `fulltext` mediumtext COLLATE utf8_unicode_ci NOT NULL, + `status` tinyint(3) NOT NULL DEFAULT '0', + `catid` int(10) unsigned NOT NULL DEFAULT '0', + `created_at` int(11) NOT NULL, + `created_by` int(10) unsigned NOT NULL DEFAULT '0', + `created_by_alias` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `modified_at` int(11) NOT NULL, + `modified_by` int(10) unsigned NOT NULL DEFAULT '0', + `publish_up` int(11) DEFAULT NULL, + `publish_down` int(11) DEFAULT NULL, + `images` text COLLATE utf8_unicode_ci NOT NULL, + `urls` text COLLATE utf8_unicode_ci NOT NULL, + `attribs` varchar(5120) COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `metakey` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` text COLLATE utf8_unicode_ci NOT NULL, + `hits` int(10) unsigned NOT NULL DEFAULT '0', + `metadata` text COLLATE utf8_unicode_ci NOT NULL, + `featured` tinyint(3) unsigned NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL, + `xreference` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + KEY `idx_catid` (`catid`), + KEY `idx_createdby` (`created_by`), + KEY `idx_featured_catid` (`featured`,`catid`), + KEY `idx_language` (`language`), + KEY `idx_alias` (`alias`), + KEY `idx_status` (`status`) USING BTREE, + KEY `idx_xreference` (`xreference`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_content` +-- + +LOCK TABLES `y_content` WRITE; +/*!40000 ALTER TABLE `y_content` DISABLE KEYS */; +INSERT INTO `y_content` VALUES (1,'最新!4名中国船员遭海盗绑架,中国驻加蓬大使馆\"回应\"','zui-xin4ming-zhong-guo-chuan-yuan-zao-hai-dao-bang-jia-zhong-guo-zhu-jia-peng-da-shi-guan-hui-ying','','

    【环球网报道 记者 李东尧】外媒称,加蓬政府22日表示,加蓬首都利伯维尔港口4艘船只夜间遭到海盗袭击,导致1名加蓬籍船长被杀,另有4名中国籍船员被绑架。刚刚,环球网编辑部收到了中国驻加蓬大使馆工作人员发来的情况说明。其中提到,使馆昨天已经第一时间启动应急预案,指导企业向当地渔政部门和警方报案,同时紧急同加方联系交涉并召开联席会议,要求全力展开追查搜救行动,保障船员安全。

    \r\n

    情况说明全文如下:

    \r\n

    使馆昨天已经第一时间启动应急预案,指导企业向当地渔政部门和警方报案,并即派员赶赴现场了解情况,慰问相关企业;同时紧急同加方联系交涉并召开联席会议,要求全力展开追查搜救行动,保障船员安全。加方目前已加强海上安全措施,并开展相关工作。使馆并提醒我在加企业和公民加强安全防范,遇紧急情况及时报警并与使馆联系寻求协助。

    \r\n

    此前报道:

    \r\n

    4名中国船员被绑架!加蓬首都港口遭海盗袭击,1名加蓬籍船长被杀

    \r\n

    【环球网报道 记者 乌元春】据法新社报道,加蓬政府22日表示,加蓬首都利伯维尔港口4艘船只夜间遭到海盗袭击,导致1名加蓬籍船长被杀,另有4名中国籍船员被绑架。

    \r\n

    \"法新社报道截图\"

    \r\n

    法新社报道截图

    \r\n

    加蓬政府发言人表示,海盗袭击了4艘船只。该发言人表示,海盗袭击在利伯维尔港口并不常见,但在几内亚湾附近却极为频繁。该发言人还表示,该国已部署国防和安全部队,“在国际刑警组织和次区域机构的合作下,确保该地区的安全,并追查行凶者”。

    \r\n

    \"资料图:加蓬首都利伯维尔\"

    \r\n

    资料图:加蓬首都利伯维尔

    \r\n

    法新社称,遭海盗袭击的4艘船只中,其中2艘是中加公司Sigapeche的渔船,4名被绑架的中国船员就来自该公司。第3艘船属于总部设在加蓬根蒂尔港的海运公司Satram,第4艘船则是悬挂巴拿马国旗的货船。报道最后表示,几内亚湾已成为海盗袭击、抢劫和绑架事件频发的中心地带。根据国际海事局的数据,从今年1月到9月,全球82%的海上绑架事件都发生在几内亚湾。

    ',1,1,1577104219,1,'',1582256331,1,1577104219,NULL,'{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}','','',0,'','',0,'{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',0,'*','',''),(2,'错过的终究放下','cuo-guo-de-zhong-jiu-fang-xia','','

      不得不说时间真的是这个世间最好的跨度,一些承诺,一段誓言,终究败给了时间,回忆再美好也经不住流年。有些人错过了终究得放下……。

    \r\n

      在过往中,总有一个人,曾经是你的满心欢喜,现在却成了你的闭口不提。他闯进我们的生活,带给我们感动和美好,却又在某一时刻,猝不及防的从我们身边抽离,留下了一地的回忆。

    \r\n

       当初说着各种承诺、各种誓言,我也相信了你就是我的小确幸。也是你让我相信了这世间还有美好,可最终你还是离我而去,终究你我成了彼此生命中的过客。

    \r\n

      我们错过了,我曾幻想过天长地久;我也曾幻想过和你手牵手走在黄昏的路上。可终究你走了,留给我的只有回忆。我以为守着回忆你就可以回来,可是我错了,我,终究没等来你的转身,我终究知道错过了就是错过了,回不来了。我也终于决定放下了……

    \r\n

      终于下定决心把你归还于人海了!其实很早就在逼自己慢慢的去放手了,每次听着你那冠冕堂皇的话我尽然差点相信了我和你会有以后……

    \r\n

      我没有你善于伪装,我学不会做最坏的人,我也不想浪费太多的时间和精力去等一个不可能的结果!虽然先动心、动情的人是你,无数次主动和挽留的人也是你,可我还是学不会去做一个你渴望中的人。

    \r\n

      这一路有快乐、有坎坷、有心酸。记得你曾对我说过:“这一路来太多的心酸和坎坷自己必须好好珍惜才是……”你也说过:“我不必有顾虑,你会珍惜你会好好保护着我……”这些话在耳边响起犹如昨天,那么悦耳那么清晰。可我不想这样原地不动的去等待和期望了,我准备回头了,回到我的原点,回到不是和你开始的原地了……。

    \r\n

      你的承诺和誓言总归太遥远,你总归太缥缈。当我不在是你生命中的独一无二,我宁愿离去,也不愿在一份残缺的爱里苦苦挣扎。

    \r\n

      你总归是我命中未了的缘和劫,我们也终究错过了!如果上天能够重新来过,我会绕过那个和你认识的地方,遇见你也许就是没有结果,可我也能释怀了。

    \r\n

      我不能抱着那些回忆来折磨自己,我也不想就这样颓废的麻木的去过每一天了。你给的一切在回忆的沼泽里只会让我放不下,你走后在每一个似曾相识的场景里我总是会不由自主的想起你,我会盯着你送的东西久久的发呆,也会因为看到某个熟悉的背影,而伤心落泪。

    \r\n

    \"深度截图_选择区域_20200116101658.png\"

    \r\n

      我曾试过收起那些东西甚至屏蔽一切与你有关的东西。直到最后,我不得不承认,用心爱过的人,就连忘记也需要格外用力。

    \r\n

      我也曾试着挽回,试着去弥补,可终究太苍白太无力了。这就是世间的无奈,我也不得不承认你我终究错过了,我也该放下了……

    \r\n

      现在的我终于学会了该怎么去割舍,我终究学会了真正的放下就是面对你的一切波澜不惊、坦然面对。即使听见你的名字多少次也不再泛起涟漪,终于接受了,你只能陪我一程,终究无法参与我的余生。

    \r\n

      谢谢你教会我的一切,包括那些没实现的承诺……或许你会说你爱过我,可我还是决定把你归还于人海了,不是赌气,也不是不爱,只是觉得该清醒了……

    \r\n

      我终于能很轻松地说我们错过了,你终究是那个错的人,我也决定放下了!余生很长,放下错的人,才能拥抱属于我的幸福。

    ',1,1,1577104879,1,'',1579263666,1,1577104879,NULL,'{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}','','',0,'','',0,'{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',1,'*','',''),(3,'从3个角度,看互联网+课程的如何结合','cong3ge-jiao-du-kan-hu-lian-wangke-cheng-de-ru-he-jie-he','','
    随着教育信息化进程的加快,互联网将深度与教育融合,传统“满堂灌”形式的课程体系,不仅无法满足培养具备新时代信息化素养人才的需求,且无法满足新时代学生个性化发展的需求。因此,教育必将与互联网相结合,改变原有课程设计体系,课程实施方式及课程结构,为教育现代化开辟新的篇章。
    \r\n
    \r\n
    \"728da9773912b31b1aeaf1998f037b7cdbb4e199.jpeg\"
    \r\n

    课程基础

    \r\n

    现代教育中决定课程的关键因素分别是:知识、社会要求、社会条件、学生特点。

    \r\n

    知识是符合人类文明发展方向,代表人类对物质世界和精神世界探索的总和。课程作为知识的载体,代表了知识的有效传承和发展,在课程演变过程中,第一个需要解决的核心问题就是选择何种知识作为课程的基础。因此知识是影响课程的最基本前提,知识的多寡决定了课程的丰富程度。

    \r\n

    社会要求代表了时代对教育及人才能力的诉求,在一定程度上 ,教育的本质是培养面向现代化,面向世界,面向未来,可为人类及社会发展贡献力量的新时代人才。因此,社会对人才的要求,决定了人们从知识库中选择何种知识形成课程,是影响课程的决定性因素。

    \r\n

    社会条件反映了当前社会能提供的社会科学技术及物质生产水平,是决定课程物质形态的基础。社会物质及技术的多寡决定现代化课程理念的更新程度,进而决定课程组织方式及展示形态。因纸张技术的发展,使课本教学成为可能;因多媒体设备及技术的发展,使基于多媒体的教学模式逐步普及。

    \r\n

    在当前阶段,物联网,云计算,大数据及移动互联网得到长足的应用和普及。就课程教学而言,大部分依旧采用传统模式,和互联网的结合程度普遍较低,在社会条件和实际教学诉求的驱动下,急需进行变革。

    \r\n

    不同个体的学生对知识的接受程度和侧重程度存在一定的差异,教育需实现因材施教,以人为本,注重个体的发展,传统的课程组织方式无法满足不断发现的个性化学生诉求。需依据学生认知特点,认识水平,学习动机等个性化需要提供动态的课程组织方式。

    \r\n

    在知识、社会要求、社会条件、学生特点的共同作用下,互联网将逐步改变现有课程知识传承的目标。传统课程核心目标为促进知识的传递,从现有社会知识总量中,依据社会发展需求汇集核心知识,以集中课堂教学的方式,通过不同学科传递至学生。

    \r\n

    统一化的知识传递体系符合工业社会的需求,工业化强调统一化,效率,规模。现有课程组织方式可快速实现知识的灌输,批量生产具备一定基础的教育型人才。

    \r\n

    但21世纪是信息化的时代,依托互联网科学技术的飞速发展,新兴技术大量涌现,知识量急剧膨胀,知识更新速度空前加快,出现了“知识爆炸”的现象。

    \r\n

    在新时代中,课程研究者不得不面对飞速增长知识和技术与单位时间内可传递有限知识间的挑战。依据当前以传承知识为基础的课程目标,在实际组织及实施过程中,为满足当前社会发展对人才知识结构的现实要求,只能通过不断添加新的知识到现有课程中,随着课程知识的不断增加,将逐步面临“知识过载”的尴尬境地,总不能无限延长学生学习时间。

    \r\n

    因此,在信息社会中需改变课程基础目标,以传授知识为主转变为培养学生自主学习能力和主动知识获取方式,提高学生终生学习动机和终生学习能力。

    \r\n

    革新课程设计理念和课程组织方式,推崇“以人为本,因材施教”的设计理念,培养学生自主学习能力和知识获取方式,培育学生终生学习动机和终生学习能力。21世纪是信息化社会,在信息社会中核心生成要素就是信息,信息驱动时代发展。在当前社会环境下,信息经济发展越来越依赖与以知识为基础的信息产业,在一定程度上,信息知识获取的及时和利用决定了整体信息产业的发展,新时代孕育着中华崛起的新机遇,新机遇需要一代代创新型人才不断的发掘和坚持不懈的前行。

    \r\n

    时代响起了新的号召,需要新时代的人才具备极强的信息化素养,具备信息获取、信息分析和信息加工的能力。而作为人才培养的摇篮,教育课程急需响应社会发展的现实需求。

    \r\n

    下面我们将分别从课程设计、课程实施和课程结构三个方面来做简单的结介绍,看课程如何实现与互联网的结合。

    \r\n

    1. 线上线下融合的课程设计体系

    \r\n

    信息时代下的数字原住民追求个性化,趣味性的阅读,学习体验。在新时代,为满足数字原住民的诉求,课程的设计越来越强调个性化,可交互性。急需摆脱传统单向,枯燥的课程组织模式。因此课程需借助互联网,推出融合线上线下,基于互联网教学的电子版立体化课程。立体化课程需包含教材、教学课件、网络课程、教学资源库(含试题库)、教材应用和服务支撑平台等重要组成部分。

    \r\n

    其中教材作为课程教学的主体可通过灵活的组织方式实现个性化的知识传递,教材的设计在确保交互性,趣味性的同时强调传递基础性、通用性的知识;教学课件可基于教育资源公共服务平台集成优质教育资源,在帮助教师讲授重点、难点知识体系的同时,有效实现教育资源的开发共享,逐步消除资源发展不均衡的现实问题;网络课程辅助学生自主学习,完成课程内容的课前预习,课后复习等线下自主学习活动,在一定程度上,还可实现翻转课堂的效果,使课堂组织及开展方式更加灵活;教学资源库(含试题库)主要满足学生个性化知识拓展需要,集合各类型优质教育资源,通过互联网统一对外提供,学生按需获取,为学生拓展视野提供最坚定的支持;教材应用和服务支持平台为教师和学生提供全面学习的支撑服务。基于互联网技术设置线上与线上的混合式课程,解决当前课程知识传递困境的同时,满足学生个性化,差异化教学需求 ,实现真正的“学生主体,教师主导”的新理念。

    \r\n

    在课程设计中,进一步前强调教材的可交互性,有效提升教学趣味性和学生参与程度。互联网+课程将进一步打破时空限制,知识的传递和课程的教学将不受教室的限制。

    \r\n

    教师基于互联网面向学生提供丰富的教学资源,建立科学的评测机制,有效设置线上线下的比例。学生将可依据个人需求,按需获取所需知识,依据个人学习步调,知识接收程度自我调节学习进度,实现真正的线上线下相融合的课程设计。

    \r\n

    2. 回归生活的课程实施方案

    \r\n

    基于互联网的课程设计方式将革新现代课程设计理念,强调“学生主体,教师主导”,满足个性化,趣味性的人才发展要求,贴合现代化人才培养内需。在教材,教学课件,网络课程,教学资源库(含试题库),教材应用和服务支持平台为基础的立体化课程设计方向的驱动下,课程设计 ,将迈入新的台阶。

    \r\n

    但课程作为一个统一的整体,具备合理设计理念的同时,在课程实施过程中同步需借助互联网手段,推动课程组织及实施的进化。下面将通过引入“回归生活的课程实施方案”为主题,讨论在课程实施过程中,遇到的问题及相对应的解决方案。

    \r\n

    传统课程实施主要基于教室场景,学生学习活动被限制在单一环境,知识传递的时间和空间严重受限。这种实施方式必将限制学生在真实环境中知识的应用和迁移,容易导致学生大脑只是用于知识存储的硬盘,存储课程灌输的知识,而没有对应现实场景来驱动知识的调用,产生实际价值。

    \r\n

    因此,在课程实施过程中,需借助互联网手段打破课程教学时间空间限制,将学生从实际教室场景中解放出来,将知识的传递与具体生活场景发生关联,让学生在生活中学习,在学习中生活,提高学生知识迁移及应用水平。

    \r\n

    互联网新兴理念及技术与课程的深度融合将有效助力构建回归生活的课程实施环境。基于互联网手段搭建移动学习,泛在学习环境,为学生提供沉浸式的学习体验,帮助学生理解学习内容,了解学习情境,进一步激发学生学习主动性。在实际实施构建过程中,可采用虚拟现实技术+群体知识构建的方案。

    \r\n

    虚拟现实技术具备沉浸性,交互性,想象性的先天技术优势,借助虚拟现实技术实施课程教学可有效打破“先理念再实践”的固有课程组织方式,避免学用脱节。在虚拟现实技术的支持下,学生可依据所学知识进行仿真化实验构建,例如,理工科学生科直接进行仿真实验,构建仿真汽车,仿真桥梁;生物及医学类学生可进行仿真人体解剖,了解人体结构等。

    \r\n

    随着虚拟现实技术发展,必将引入更多技术及能力助力实际课程实施,使课程教学实施摆时间空间的限制,创造在现实生活中无法便捷实现的课程环境。

    \r\n

    课程的实施强调沉浸式,贴合实际生活场景,借助虚拟现实技术可引导课程实施的创新, 增强趣味性和互动性。在确保趣味,互动的同时,还需提升学生主观能动性,前面我们一直强调,新课程的组织最好可遵循:“学生主体,教师主导”的目标,这一目标不仅作用于课程的组织,也可以作用于课程内容的实施上。

    \r\n

    在互联网时代,知识将不在在掌握在某个人手里,借助互联网,人人都可成为知识的消费者,同时也可以成为知识的生产者,这是互联网发展的源泉之一。传统教学过程中,教师传授的知识是课程内容的全部 ,学生只能被动的接收,只能作为知识的消费者,而无法加入到知识的构建中。

    \r\n

    因此,在新时代课程内容构建中,我们强调课程内容是生成的、进化的,这种进化驱动力不仅仅来源于教师,也来源于学生,教师和学生一起参与课程内容的构建。

    \r\n

    群体智慧是课程内容进化的重要动力,以教师为主导,借助互联网技术,例如在线共享及协同软件实现教师与学生的协同知识构建体系,基于协同知识构建体系让学生参与到课程内容的创造过程中,在提升学生的高阶思维素养的同时,逐步培育学生自我反思意识,发展学生的批判思维。

    \r\n

    在实际协同过程中,学生通过讨论、争辩、分享、答疑等互动手段引发知识冲突,促进自我反思,优化已有的知识结构,从而创造性地产生新的知识和新的技能。在协同知识构建过程中,对学生提出要求的同时,也要求教师转变教学思路,教师需要重点关注学生知识建构的过程和生成的内容,关注学生知识创造和改进的过程,而不只是关注教学的内容、教学活动的表面形式、学生参与学习的次数等。

    \r\n

    虽然课程要求具备一定程度的计划性,但在具备计划性的同时应坚信学生是教学的主体。在整体协同过程中,教师起到引导,把控,评测作用。通过协同知识构建体系提高学生协同效能,强调群体智慧的重要,共同创建进化的,具备旺盛生命力的课程知识。

    \r\n

    3. 整合性的课程结构

    \r\n

    上面我们说过以混合式课程的主体,结合教材,网络课件,网络课程,教学资源库(含试题库),教材应用和服务支持平台多种形式的融合线上线下的课程设计体系。提出课程要贴合生活情景,让学生“在学习中实践,在实践中学习”回归生活的教材实施方案。 下面我们将从“融合线上线下课程设计”体系,“回归生活的教材实施”方案出发,介绍整合性课程结构的基础内容。

    \r\n

    21世纪,时代对人员素养提出新的要求,在信息飞速剧增,知识急剧爆炸的时代背景下,教育的目标及理念面临新的挑战。而其中最核心的挑战就是:如何通过学校教育培养出具备终生学习能力和素养的人才综合性人才,以适应时代,知识的飞速发展的需要。

    \r\n

    传统教育中以学科知识为主的课程体系,已无法满足社会对人才知识结构的诉求。社会发展越来越趋向多元化,多元化的社会分工驱动人才需具备多元化的知识结构。因此,反应到课程体系上,需摆脱传统以学科为主的知识传递体系,强调跨学科教学的重要性,知识传递途径从分散独立走向整合。

    \r\n

    在现阶段社会条件的支持下,孕育了一系列以培养学生跨学科知识能力和素养的整合性课程解决方案,例如:STEM教育,创客教育,少儿编程等,下面我们着重介绍STEM教育和创客教育。

    \r\n

    STEM是科学(Science),技术(Technology),工程(Engineering),数学(Mathematics)四门学科的统称,其中科学在于认识世界、解释自然界的客观规律;技术和工程则是在尊重自然规律的基础上改造世界、实现与自然界的和谐共处、解决社会发展过程中遇到的难题;数学则作为技术与工程学科的基础工具。

    \r\n

    STEM教育并不是四门学科的简单叠加,而是将四门学科有机的整合在一起,形成一个统一的整体用于培养及提高学生科学素养,技术素养,工程素养,数学素养以适应时代的发展。

    \r\n

    STEM教育起源于美国,1986年美国国家科学委员会发表《本科的科学、数学和工程教育》报告,强调科学素养的重要性,得到全世界范围内教育学者的广泛认可。2006年1月31人日美国总统布什在其国情咨文中公布一项重要计划——《美国竞争力计划》(American Competitiveness Initiative,ACI),提出知识经济时代教育目标之一是培养具有STEM素养的人才,并称其为全球竞争力的关键。

    \r\n

    十年后的2016年9月14日,美国研究所与美国教育部综合了研讨会与会学者对 STEM 未来十年的发展愿景与建议,联合发布:《 教育中的创新愿景》(STEM 2026:A Vision for Innovation in STEM Education) 。

    \r\n

    旨在推进STEM教育创新方面的研究和发展,并为之提供坚实依据,该报告提出了六个愿景,力求在实践社区、活动设计、教育经验、学习空间、学习测量、社会文化环境等方面促进 STEM 教育的发展,以确保各年龄阶段以及各类型的学习者都能享有优质的 STEM 学习体验,解决 STEM 教育公平问题,进而保持美国的竞争力。

    \r\n

    从此美国政府逐步加大了对从小学到大学各个层次的STEM教育的支持力度,推出教育基金,鼓励各州改善STEM教育,加大对基础教育阶段理工科教师的培养和培训。

    \r\n

    近年来STEM教育逐步受到国内外教育研究者的重视,旨在全力培养具备知识经济时代强力竞争力的综合性人才。而STEM教育所具备的跨学科、趣味性、情境性、协作性在内的核心特征正好符合时代对人才能力的培养诉求。

    \r\n

    跨学科:传统课程结构设计中,我们依据实际教学需要,将知识划分为不同的学科进行教授,在一定程度上可以提高教学的效率,学生关注点聚集在特定的学科知识上,可实现复杂知识内容的讲解。

    \r\n

    但依据学科进行知识的划分,和实际生活场景是分裂的,在实际生活中知识的迁移的应用是连续的,整合的,我们需运用包含科学,技术,工程,数学在内的整合性知识去解决实际场景中遇到的问题。

    \r\n

    因此STEM应运而生,跨学科是它最重要的核心特征,在STEM教育项目中,我们不再将重点放某个特定的学科或过于关注学科的界限,而是将重心放在特定问题上,引导学生使用科学,技术,工程,数学在内的整合性知识去解决实际遇到的问题,在问题中学习。培养学生跨学科能力,提高学生发现问题和解决问题的能力,以适应知识时代的发展需要。

    \r\n

    趣味性:相对于传统教育,STEM教育将更具趣味性。在STEM设计和实施过程中强调将知识融合在有趣,具有挑战,跟学生实际生活相关的问题或活动中。知识蕴含在实际趣味问题中,学生通过自主或协作解决问题实现主动获取知识。强调趣味性,通过问题或活动激发学生内在学习动机,通过问题的解决获得成就感。

    \r\n

    在教育过程中,强调分享、创造,强调让学生体验和获得分享中的快乐感与创造中的成就感。部分项目还可将STEM知识与游戏结合,通过游戏化学习,激发学生学习兴趣和主动性,摆脱传统枯燥式,填充式教学的弊端。

    \r\n

    情境性:现代社会强调知识的迁移和运用能力,学生不在是因为知识而学习知识,而是为解决实际生活情境问题而学习知识。知识需与具体生活情境结合。STEM教育的核心就是强调知识的情境性,知识还原于丰富的生活,结合生活中有趣、有挑战的问题,让学生通过解决问题来完成教学。

    \r\n

    在实际STEM项目设计中,项目的问题一方面要基于真实的生活情景,另一方面又要蕴含所要教授的结构化知识,让学生在贴合实际情境问题的项目中学习知识,有效提高学生将知识进行情境化运用的能力。

    \r\n

    协作性:STEM教育要求以真实生活为出发点,设计贴合情境的问题或项目,在实际操作过程中学习知识。而实际生活环境,问题的解决离不开群体的协作。

    \r\n

    在STEM教育的设计理念里,要求知识的共同构建,因此课程将采用以小组为单位的设计模式,通过小组之间的交流,讨论,分享共同完成学习资料的收集与分析、提出和验证假设、分享和共建知识,进而整体评价学习成果。

    \r\n

    STEM强调贴合生活环境,构建具备跨学科,趣味性,情境性,协作性的STEM学习环境,让学习在解决问题中学习,培养学生综合问题解决能力,培养综合性人才。在主流的整合性课程结构中,除STEM教育外,还有以项目为主导的创客教育,下面我们将对创客教育做简单的介绍。

    \r\n

    提到创客教育,很多时候容易和STEM教育混为一谈,所以在介绍创客教育前,我们先简单的说一下两者之间的联系和区别。

    \r\n

    首先,STEM教育强调将科学、技术、工程、数字,乃至艺术等基础学科知识融合起来教学,采用问题驱动,培养学生知识应用和迁移的能力。在实际课程实施过程中,强调的是整合性知识的构建与传递。

    \r\n

    创客教育则是提倡开发自己的创意,通过软硬件将创意实现成具体物品,例如使用3D打印技术实现3D产品构建,利用安卓电子编程制作电子器件。

    \r\n

    从这两个含义可以很明显的区分,STEAM教育更讲究地是跨学科的“知识融合”,而创客教育重点在于将想法进行“实践创造”。但不管是STEM教育还是创客教育,强调的都是知识的自主探索,知识与实际场景或产品相结合,不在是孤立且抽象的存在。

    \r\n

    两种教育模式的出发点都在于使用整合性知识结构,解决实际生活中所遇到的问题。以培养学生动手能力,沟通能力,协作能力,自主学习能力。所以,在人才培养的目标上两者具有高度的一致。

    \r\n

    并且创客活动需要STEAM教育提供知识理论基础,而创客实践则是STEAM教育的最终目的,就是知识体系只有帮助实物创造才能发挥作用,甚至成为可商业化的产品,联接教育与商业。因此STEM教育和创客教育两者既有区别,又有联系,相辅相成,共同促进。

    \r\n

    相对于STEM教育问题驱动模式,创客教育更多的是偏向于项目驱动,通过完整的项目提升学生的动手能力及知识应用能力。例如少儿编程,开源硬件, 传感器等项目。在创客项目中,学生在创客教育的过程中,必将经历“调研分析、制定方案、动手制造、评估反思”等完整的项目迭代步骤。

    \r\n

    通过以项目为中心,驱动知识的运用是创客教育的核心点。同时意味着,不同于STEM教育,在项目过程中, 将更关注于具体的项目结果,在评价体系上 ,将以项目驱动成果作为核心指标。

    \r\n

    总之,不管是STEM教育或是创客教育,与传统课程结构都具有明显的区别。所蕴含的区别代表这未来人才的内在诉求。在信息化时代中,我们需要通过创新的整合式课程结构培养综合性人才。知识不应该是分裂的,应该是有机整合在一起。

    \r\n

    以创新的教育课程组织方式,坚持“学生主体,教师主导”,强调人的能动性,激发学生学习兴趣,使学生在生活中学习,在学生中生活,掌握知识迁移和应用能力,不断接收创造知识,在实现个人生活成功的同时,促进社会发展。

    \r\n

    结语

    \r\n

    2011年6月,教育部发布《教育信息化十年发展规划(2011-2020 年)》,明确提出各级政府在教育经费中按不低于 8%的比例列支教育信息化经费,保障教育信息化拥有持续、稳定的政府财政投入。

    \r\n

    2017 年教育信息化经费支出不低于 2731 亿元,预计到2020年,教育信息化经费支出或将达3863亿元,其中K12占比超过50%。

    \r\n

    教育信息进程在资金和政策的双重驱动下,近几年来得到飞速的发展。已基本完成以“三通两平台”为主的《教育信息化1.0行动》,实现教育环境的信息化改造,为教育信息化发展奠定基础互联网环境基础。持续推进以“三高,两全,一大”为核心的《教育信息化2.0行动》。

    \r\n

    但在实际推行过程中,我们也遇到不少急需解决的现实问题,例如,因缺乏统一性部署而导致的数据孤岛问题;东部沿海经济发达地区和中西部经济落后地区发展不均衡问题;强调建设却无配套应用平台的问题等。回归到本次所讲述的互联网+课程上,现大部分地区已具备一定程度的互联网条件,可有效实施互联网教学。

    \r\n

    但是整体课程及教学理念还停留在传统工业课程社会的的模式上,还未跟上互联网的步伐,导致出现有条件不会使用或用不好的尴尬境地。

    \r\n

    因此,为适应信息化社会对人才核心素养及能力的要求,教育应紧密和互联网结合,以互联网思维改变现有课程结构。在实际课程实施过程中,应强调课程设计需融合线上线上,课程实施应回归生活,课程结构应是整合性的。通过全新的课程设计,课程实施,课程结构理念,改变现有课程组织方式,适应时代发展需求,为培养现代化人才贡献力量。

    \r\n

    本文由 @老鬼 原创发布于人人都是产品经理。未经许可,禁止转载

    \r\n

    题图来自 Unsplash,基于 CC0 协议

    ',1,3,1583326264,1,'人人都是产品经理',1583326264,1,1583326264,NULL,'{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}','','',0,'','',0,'{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',0,'*','',''),(4,'You Have Only One Life','you-have-only-one-life','','

     There are moments in life when you miss someone so much that you just want to pick them from your dreams and hug them for real! Dream what you want to dream;go where you want to go;be what you want to be,because you have only one life and one chance to do all the things you want to do.

    \r\n

      May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’shoes.If you feel that it hurts you,it probably hurts the other person, too.

    \r\n

      The happiest of people don’t necessarily have the best of everything;they just make the most of everything that comes along their way.Happiness lies for those who cry,those who hurt, those who have searched,and those who have tried,for only they can appreciate the importance of people

    \r\n

      who have touched their lives.Love begins with a smile,grows with a kiss and ends with a tear.The brightest future will always be based on a forgotten past, you can’t go on well in lifeuntil you let go of your past failures and heartaches.

    \r\n

      When you were born,you were crying and everyone around you was smiling.Live your life so that when you die,you\'re the one who is smiling and everyone around you is crying.

    \r\n

      Please send this message to those people who mean something to you,to those who have touched your life in one way or another,to those who make you smile when you really need it,to those that make you see the brighter side of things when you are really down,to those who you want to let them know that you appreciate their friendship.And if you don’t, don’t worry,nothing bad will happen to you,you will just miss out on the opportunity to brighten someone’s day with this message.

    ',1,2,1583326386,1,'',1583326386,1,1583326386,NULL,'{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}','','',0,'','',0,'{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',0,'*','',''),(5,'为全球公共卫生事业作出贡献(患难见真情 共同抗疫情)','wei-quan-qiu-gong-gong-wei-sheng-shi-ye-zuo-chu-gong-xian-huan-nan-jian-zhen-qing-gong-tong-kang-yi-qing','','

    目前,中国新冠肺炎疫情防控形势积极向好的态势正在拓展。在部分国家和地区出现疫情扩散的形势下,中国外交部及驻外使领馆推动开展疫情防控国际合作,发挥我国负责任大国作用,为全球公共卫生事业作出贡献,获得各方高度认同和赞赏。多国政府表示,面对这一全球性挑战,愿与中方保持密切沟通与合作,共同战胜疫情。

    \r\n

      “我们满怀信心,愿与中方携手战胜疫情”

    \r\n

      中国一直密切关注全球新冠肺炎疫情形势,始终秉持构建人类命运共同体理念,本着公开、透明和负责任的态度加强国际防疫合作。

    \r\n

      3月3日下午,中国外交部会同中国国家卫生健康委举行与阿塞拜疆、白俄罗斯、格鲁吉亚、摩尔多瓦、亚美尼亚、土库曼斯坦及上合组织秘书处新冠肺炎疫情专家视频交流会。来自国家卫健委及外交部、海关总署、中国驻相关国家大使馆代表,中国疾控中心、北大医院等技术机构专家,相关国家外交和卫生部门、驻华外交机构、卫生领域专家及有关国际组织代表参加了视频会议。中方专家全面介绍了中国疫情形势和防控、救治等经验,各方就防控措施、诊断筛查、实验室检测等方面内容进行了深入交流,并表示将进一步加强信息交流和协调行动,共同维护地区和全球卫生安全。

    \r\n

      中国驻乌干达大使馆日前通过乌干达主流媒体NTV电视台,详细介绍中国疫情形势和防控工作取得的成效,就乌公众高度关注的在武汉留学生安全和疫情对乌干达及乌中关系影响等答疑释惑。乌干达总统穆塞韦尼表示,乌方尊重世卫组织的建议,不会因疫情对国际旅行施加限制。在双方有效沟通下,乌政府有关部门与中国驻乌大使馆保持密切联系,积极向公众公开疫情信息,普及防控知识,帮助乌民众提高卫生防护意识。

    \r\n

      日本国内疫情形势发生变化后,中国驻日本大使馆加强了同日方的沟通和协调,积极推动双方卫生主管部门及传染病防治机构建立专门沟通合作渠道。日本内阁府官员表示,愿与中方在智慧城市、超级都市合作框架下推进病毒防控及远程诊疗体系等合作。日本自民党干事长二阶俊博说:“我深信,日中两国团结协作,一定能够战胜疫情。”

    \r\n

      中国驻墨西哥大使馆同墨西哥外交、卫生、海关、移民、边检等各部门保持密切沟通,及时向墨方通报疫情情况及中方防控举措。墨西哥外长埃布拉德对中方采取的积极举措表示赞赏和感谢,并表示,得益于中方全面、严格的防控措施,在华墨西哥公民的生命安全和身体健康得到充分保障。

    \r\n

      中国驻尼日利亚大使馆通过多种形式,积极介绍中国抗击疫情举措。尼中地方合作论坛秘书长阿布杜拉蒂夫·谢胡表示:“感谢中国透明及时地通报疫情有关情况。疫情当前,中国行动果断、迅速、有效,尼方也将继续向中国学习防疫抗疫经验。我们满怀信心,愿与中方携手战胜疫情。”

    \r\n

      “共建一带一路沿线国家和地区更应加强团结合作、共克时艰”

    \r\n

      疫情发生后,很多参与共建“一带一路”的国家和地区向中国提供支持和帮助,以不同方式表明愿同中方继续加强“一带一路”合作的意愿。在力所能及范围内,中方向相关国家提供了援助。

    \r\n

      中国驻意大利大使馆连日来持续向意方通报最新疫情信息。意大利卫生部部长斯佩兰扎表示,希望加强与中方在信息沟通、药物与疫苗研发等方面合作,共同应对挑战。意大利外长迪马约表示,意政府正采取有力举措防控疫情,愿同中方加强沟通与合作,密切两国卫生部门间的信息交流,“意方重视并支持共建‘一带一路’。在此艰难时刻,共建‘一带一路’沿线国家和地区更应加强团结合作、共克时艰”。

    \r\n

      据中国驻俄罗斯大使馆介绍,疫情发生后,俄方派遣专家团队赴华联合研制抗病毒药物和疫苗。俄联邦消费者权利保护及公益监督署署长兼国家总防疫师波波娃高度评价中方为抗击疫情所作巨大努力和取得的重要成果。她强调,面对汹涌疫情,俄中是伙伴、是战友,俄方从中方抗击疫情的斗争中学到很多宝贵经验,实践证明中方采取的防疫举措切实有效。她预祝中国政府和人民抗击疫情斗争取得“完胜”。

    \r\n

      中国驻克罗地亚大使馆通过当地媒体介绍中国防控疫情有关情况,指出疫情对中国经济的影响是阶段性的、暂时性的,不会改变中国经济长期向好的基本面,引发当地舆论关注和积极反响。

    \r\n

      为支持巴基斯坦疫情防控工作,针对巴方医疗力量薄弱等情况,中方向巴方捐赠了一批新冠病毒核酸检测试剂盒。巴国家粮食安全与研究部部长马赫杜姆·胡斯鲁·巴赫蒂亚尔表示,无论何时,巴中两国总是相互支持,体现了巴中之间的深厚友谊。

    \r\n

      “希望进一步研究借鉴中方的有益做法和经验”

    \r\n

      中国驻纽约总领馆通过多种方式积极介绍中国疫情防控有关举措。美国全国广播公司所属康卡斯特集团高级副总裁、首席财务官迈克尔·卡瓦纳表示,中国政府和人民在抗击疫情中展现出的团结和努力令人称赞,为各国抗击疫情积累了宝贵经验。“北京环球影城主题公园项目目前进展顺利,我们对中国经济前景充满信心。美国全国广播公司将继续致力于客观、平衡地报道中国疫情防控努力。”

    \r\n

      中国驻欧盟使团主动向欧方介绍有关情况,并多次组织中欧双方公共卫生专家举行视频会议,共同研究应对疫情,探讨进一步就疫情诊断治疗、科学信息共享、医学临床实验等开展合作。欧方感谢中方及时通报有关情况,表示注意到世卫组织充分肯定中国政府采取的防控措施及成效,“欧方愿继续与中方保持密切沟通,希望进一步研究借鉴中方的有益做法和经验”。

    \r\n

      中国驻里约热内卢总领馆与领区内各州、里约热内卢市卫生主管部门及主流媒体建立信息通报机制,定期通报中国疫情防控情况。里约热内卢州政府代表迪亚斯表示,疫情发生后,中方做了大量及时有效工作,遏制了疫情蔓延。“中国展现了负责任大国担当。感谢中方提供的有关疫情信息,疫情不会影响两国人民的情谊。”

    \r\n

      中国驻南非大使馆举行多场新闻发布会,邀请南非国内及国际媒体参加,介绍中国抗击疫情进展和中非在相关领域合作情况。南非太阳城度假酒店总经理布莱特·霍普说:“中国疫情防控工作取得积极成效,整体形势稳定向好,各地有序复工复产。我们已做好充分准备,在疫情结束之后迎接更多来自中国的游客。”

    \r\n

      (本报北京、东京、墨西哥城、阿布贾、罗马、莫斯科、伊斯兰堡、纽约、布鲁塞尔、约翰内斯堡3月5日电  记者颜欢、刘军国、刘旭霞、姜宣、叶琦、孔歌、张晓东、丁雪真、李凉、方莹馨、万宇、吕强)

    ',1,4,1583477876,1,'',1583477876,1,1583477876,NULL,'{\"image_intro\":\"\",\"align_intro\":\"\",\"alt_intro\":\"\",\"caption_intro\":\"\",\"image_full\":\"\",\"align_full\":\"\",\"alt_full\":\"\",\"caption_full\":\"\"}','','',0,'','',0,'{\"robots\":\"\",\"author\":\"\",\"rights\":\"\",\"xreference\":\"\"}',0,'zh-CN','',''); +/*!40000 ALTER TABLE `y_content` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_extensions` +-- + +DROP TABLE IF EXISTS `y_extensions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_extensions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `package_id` int(11) NOT NULL DEFAULT '0', + `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(20) COLLATE utf8_unicode_ci NOT NULL, + `element` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `folder` varchar(100) COLLATE utf8_unicode_ci NOT NULL, + `client_id` tinyint(3) NOT NULL, + `enabled` tinyint(3) NOT NULL DEFAULT '0', + `protected` tinyint(3) NOT NULL DEFAULT '0', + `manifest_cache` json NOT NULL, + `params` text COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) DEFAULT '0', + `status` smallint(6) DEFAULT '0', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_extensions` +-- + +LOCK TABLES `y_extensions` WRITE; +/*!40000 ALTER TABLE `y_extensions` DISABLE KEYS */; +INSERT INTO `y_extensions` VALUES (1,0,'English United States Language Pack','package','pkg_en-US','',0,1,1,'{\"name\": \"English United States Language Pack\", \"type\": \"package\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"pkg_zh-US\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"\\n\\t Yii2CMS v1.0.0 English (United States) Language Package\\n \", \"creationDate\": \"July 2019\"}','',0,1),(2,1,'English (en-US)','language','en-US','',2,1,1,'{\"name\": \"English (en-US)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"en-US site language\", \"creationDate\": \"July 2019\"}','',0,1),(3,1,'English (en-US)','language','en-US','',1,1,1,'{\"name\": \"English (en-US)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong www.fireloong.com \", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"en-US Administrator language\", \"creationDate\": \"July 2019\"}','',0,1),(4,0,'Chinese Simplified (zh-CN) Language Pack','package','pkg_zh-CN','',0,1,1,'{\"name\": \"Chinese Simplified (zh-CN) Language Pack\", \"type\": \"package\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"pkg_zh-CN\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"Yii2CMS 简体中文(zh-CN) 语言\", \"creationDate\": \"2019年7月\"}','',0,1),(5,4,'Chinese Simplified (zh-CN)','language','zh-CN','',2,1,1,'{\"name\": \"Chinese Simplified (zh-CN)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com\", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong 火龙网 www.fireloong.com\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"zh-CN 网站前台简体中文语言\", \"creationDate\": \"2019年7月\"}','',0,1),(6,4,'Chinese Simplified (zh-CN)','language','zh-CN','',1,1,1,'{\"name\": \"Chinese Simplified (zh-CN)\", \"type\": \"language\", \"group\": \"\", \"author\": \"FireLoong 火龙网 www.fireloong.com \", \"version\": \"1.0.0\", \"filename\": \"install\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong 火龙网 www.fireloong.com\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"zh-CN 管理后台简体中文语言\", \"creationDate\": \"2019年7月\"}','',0,1),(7,0,'Admin','module','mod_admin','',1,1,1,'{\"name\": \"Admin\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"rbac-admin\", \"version\": \"1.0.0\", \"filename\": \"admin\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"RBAC Manager for Yii 2\", \"creationDate\": \"2019 - 09\"}','',0,1),(8,0,'LANGUAGES','module','mod_languages','',1,1,1,'{\"name\": \"LANGUAGES\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_langs\", \"version\": \"1.0.1\", \"filename\": \"languages\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"LANGUAGES_XML_DESCRIPTION\", \"creationDate\": \"2019 - 08\"}','{\"backend\":\"zh-CN\",\"frontend\":\"zh-CN\"}',0,1),(9,0,'ACTIONS_LOGS','module','mod_actionlogs','',1,1,1,'{\"name\": \"ACTIONS_LOGS\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_actionlogs\", \"version\": \"1.0.0\", \"filename\": \"actionlogs\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"ACTIONS_LOGS_XML_DESCRIPTION\", \"creationDate\": \"2019 - 08\"}','',0,1),(10,0,'ACTION_LOG_NAME','plugin','main','actionlog',0,1,1,'{\"name\": \"ACTION_LOG_NAME\", \"type\": \"plugin\", \"group\": \"actionlog\", \"author\": \"FireLoong\", \"langCat\": \"plg_actionlog\", \"version\": \"1.0.0\", \"filename\": \"main\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"ACTION_LOG_XML_DESCRIPTION\", \"creationDate\": \"July 2019\"}','',0,1),(11,0,'EDITORS_NONE','plugin','none','editors',0,1,1,'{\"name\": \"EDITORS_NONE\", \"type\": \"plugin\", \"group\": \"editors\", \"author\": \"FireLoong\", \"langCat\": \"plg_none\", \"version\": \"1.0.0\", \"filename\": \"none\", \"authorUrl\": \"www.fireloong.com/\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"XML_DESCRIPTION\", \"creationDate\": \"2019 - 11\"}','',0,1),(12,0,'EDITORS_TINYMCE','plugin','tinymce','editors',0,1,1,'{\"name\": \"EDITORS_TINYMCE\", \"type\": \"plugin\", \"group\": \"editors\", \"author\": \"Tiny Technologies, Inc\", \"langCat\": \"plg_tinymce\", \"version\": \"5.1.1\", \"filename\": \"tinymce\", \"authorUrl\": \"https://www.tiny.cloud\", \"copyright\": \"Tiny Technologies, Inc\", \"authorEmail\": \"N/A\", \"description\": \"XML_DESCRIPTION\", \"creationDate\": \"2005-2019\"}','{\"sets_amount\":\"3\",\"height\":\"350\",\"width\":\"100%\"}',0,1),(13,0,'THEME_BASIC','theme','basic','',1,1,1,'{\"name\": \"THEME_BASIC\", \"type\": \"theme\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"theme_basic\", \"version\": \"1.0.0\", \"filename\": \"themeDetails\", \"authorUrl\": \"\", \"copyright\": \"Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"THEME_XML_DESCRIPTION\", \"creationDate\": \"2019/10/10\"}','{\"showSiteName\":\"1\"}',0,1),(14,0,'THEME_ADMINLTE','theme','adminlte','',1,1,0,'{\"name\": \"THEME_ADMINLTE\", \"type\": \"theme\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"theme_adminlte\", \"version\": \"1.0.0\", \"filename\": \"themeDetails\", \"authorUrl\": \"https://adminlte.io/\", \"copyright\": \"Copyright (C) 2019 - 2019 Open Source Matters, Inc. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"THEME_XML_DESCRIPTION\", \"creationDate\": \"2019/10/10\"}','{\"showSiteName\":\"1\"}',0,1),(15,0,'WIDGET_ALERT','widget','alert','',1,1,1,'{\"name\": \"WIDGET_ALERT\", \"type\": \"widget\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"wid_alert\", \"version\": \"1.0.0\", \"filename\": \"widget\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"WIDGET_ALERT_XML_DESCRIPTION\", \"creationDate\": \"2019/12/07\"}','',0,1),(16,0,'WIDGET_LATEST_ACTIONS','widget','latest_actions','',1,1,1,'{\"name\": \"WIDGET_LATEST_ACTIONS\", \"type\": \"widget\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"wid_latest_actions\", \"version\": \"1.0.0\", \"filename\": \"widget\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"WIDGET_LATEST_ACTIONS_XML_DESCRIPTION\", \"creationDate\": \"2019/12/07\"}','{\"count\":\"5\",\"bootstrap_size\":\"6\"}',0,1),(17,0,'CONTENT','module','mod_content','',1,1,1,'{\"name\": \"CONTENT\", \"type\": \"module\", \"group\": \"\", \"author\": \"FireLoong\", \"langCat\": \"mod_content\", \"version\": \"1.0.0\", \"filename\": \"content\", \"authorUrl\": \"www.fireloong.com\", \"copyright\": \"版权所有 (C) 2005 - 2019 FireLoong火龙网 www.fireloong.com.\", \"authorEmail\": \"fireloong@foxmail.com\", \"description\": \"CONTENT_XML_DESCRIPTION\", \"creationDate\": \"2020 - 01\"}','',0,1); +/*!40000 ALTER TABLE `y_extensions` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_languages` +-- + +DROP TABLE IF EXISTS `y_languages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_languages` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `code` char(7) COLLATE utf8_unicode_ci NOT NULL, + `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `title_native` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `sef` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `image` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(512) COLLATE utf8_unicode_ci NOT NULL, + `metakey` text COLLATE utf8_unicode_ci NOT NULL, + `metadesc` text COLLATE utf8_unicode_ci NOT NULL, + `sitename` varchar(1024) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `published` tinyint(3) NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `idx_sef` (`sef`), + UNIQUE KEY `idx_code` (`code`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_languages` +-- + +LOCK TABLES `y_languages` WRITE; +/*!40000 ALTER TABLE `y_languages` DISABLE KEYS */; +INSERT INTO `y_languages` VALUES (1,'en-US','English (en-US)','English (United States)','en','en_us','','','','',1,0),(2,'zh-CN','Chinese Simplified (zh-CN)','简体中文(中国)','zh','zh_cn','说明','开源,OSC,开源软件,开源硬件,开源网站,开源社区,java开源,perl开源,python开源,ruby开源,php开源,开源项目,开源代码','OSCHINA.NET 是目前领先的中文开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台','中文开源技术交流社区',1,0); +/*!40000 ALTER TABLE `y_languages` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_member` +-- + +DROP TABLE IF EXISTS `y_member`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_member` ( + `uid` int(11) NOT NULL, + `name` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lastvisitDate` int(11) NOT NULL, + UNIQUE KEY `uid` (`uid`), + CONSTRAINT `fk-member-uid` FOREIGN KEY (`uid`) REFERENCES `y_user` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_member` +-- + +LOCK TABLES `y_member` WRITE; +/*!40000 ALTER TABLE `y_member` DISABLE KEYS */; +INSERT INTO `y_member` VALUES (2,'',1578716377); +/*!40000 ALTER TABLE `y_member` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_menu` +-- + +DROP TABLE IF EXISTS `y_menu`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_menu` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(128) COLLATE utf8_unicode_ci NOT NULL, + `menutype` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `alias` varchar(200) COLLATE utf8_unicode_ci NOT NULL, + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `path` varchar(1024) COLLATE utf8_unicode_ci NOT NULL, + `type` varchar(16) COLLATE utf8_unicode_ci NOT NULL, + `published` tinyint(3) NOT NULL DEFAULT '0', + `parent` int(11) DEFAULT NULL, + `level` int(10) unsigned NOT NULL DEFAULT '0', + `route` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `request` text COLLATE utf8_unicode_ci NOT NULL, + `params` text COLLATE utf8_unicode_ci NOT NULL, + `browserNav` tinyint(1) NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `lft` int(11) unsigned NOT NULL DEFAULT '0', + `rgt` int(11) unsigned NOT NULL DEFAULT '0', + `ordering` int(11) NOT NULL DEFAULT '0', + `home` tinyint(1) unsigned NOT NULL DEFAULT '0', + `data` blob, + PRIMARY KEY (`id`), + KEY `parent` (`parent`), + KEY `idx_left_right` (`lft`,`rgt`), + CONSTRAINT `y_menu_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `y_menu` (`id`) ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_menu` +-- + +LOCK TABLES `y_menu` WRITE; +/*!40000 ALTER TABLE `y_menu` DISABLE KEYS */; +INSERT INTO `y_menu` VALUES (1,'SYSTEM','main','','','','heading',1,NULL,0,'','','',0,'*',0,17,0,0,_binary '{\"lang-cat\":\"site\"}'),(2,'CONTROL_PANEL','main','','','','module',1,1,1,'@app-backend/site/index','','',0,'*',1,2,0,1,_binary '{\"lang-cat\":\"site\"}'),(3,'-','main','','','','separator',1,1,1,'','','',0,'*',3,4,0,0,NULL),(4,'GLOBAL_CONFIGURATION','main','','','','module',1,1,1,'','','',0,'*',5,6,0,0,_binary '{\"lang-cat\":\"site\"}'),(5,'-','main','','','','separator',1,1,1,'','','',0,'*',7,8,0,0,NULL),(6,'CLEAR_CACHE','main','','','','module',1,1,1,'@app-backend/cache/index','','',0,'*',9,10,0,0,_binary '{\"lang-cat\":\"cache\"}'),(7,'USERS','main','','','','heading',1,NULL,0,'','','',0,'*',30,37,1,0,_binary '{\"lang-cat\":\"site\"}'),(8,'USER_MANAGER','main','','','','module',1,7,1,'@app-backend/admin/user/index','','',0,'*',31,34,0,0,_binary '{\"lang-cat\":\"site\"}'),(9,'USERS_ADD_USER','main','','','','module',1,8,2,'@app-backend/admin/user/signup','','',0,'*',32,33,0,0,_binary '{\"lang-cat\":\"site\"}'),(10,'MODULES','main','','','','heading',1,NULL,0,'','','',0,'*',42,47,4,0,_binary '{\"lang-cat\":\"site\"}'),(12,'EXTENSIONS','main','','','','heading',1,NULL,0,'','','',0,'*',48,71,5,0,_binary '{\"lang-cat\":\"extensions\"}'),(13,'EXTENSIONS_MANAGER','main','','','','module',1,12,1,'@app-backend/extensions/installer','','',0,'*',49,60,0,0,_binary '{\"lang-cat\":\"extensions\"}'),(14,'EXTENSIONS_INSTALL','main','','','','module',1,13,2,'@app-backend/extensions/installer','','',0,'*',50,51,0,0,_binary '{\"lang-cat\":\"extensions\"}'),(15,'EXTENSIONS_UPDATE','main','','','','module',1,13,2,'@app-backend/extensions/update','','',0,'*',52,53,0,0,_binary '{\"lang-cat\":\"extensions\"}'),(16,'EXTENSIONS_MANAGE','main','','','','module',1,13,2,'@app-backend/extensions/manage','','',0,'*',54,55,0,0,_binary '{\"lang-cat\":\"extensions\"}'),(17,'DATABASE','main','','','','module',1,13,2,'','','',0,'*',56,57,0,0,_binary '{\"lang-cat\":\"extensions\"}'),(18,'LANGUAGES_INSTALL','main','','','','module',1,13,2,'','','',0,'*',58,59,1,0,_binary '{\"lang-cat\":\"extensions\"}'),(19,'WIDGETS','main','','','','module',1,12,1,'@app-backend/widgets/default/index','','',0,'*',63,64,1,0,_binary '{\"lang-cat\":\"extensions\"}'),(20,'PLUGINS','main','','','','module',1,12,1,'@app-backend/plugins/default/index','','',0,'*',65,66,1,0,_binary '{\"lang-cat\":\"extensions\"}'),(21,'THEMES','main','','','','module',1,12,1,'@app-backend/themes/styles/index','','',0,'*',67,68,1,0,_binary '{\"lang-cat\":\"extensions\"}'),(22,'-','main','','','','separator',1,12,1,'','','',0,'*',61,62,0,0,NULL),(23,'Admin','main','','','','module',1,10,1,'@app-backend/admin/assignment/index','','',0,'*',43,44,0,0,_binary '{\"module-id\":7,\"lang-cat\":\"rbac-admin\"}'),(24,'LANGUAGES','main','','','','module',1,12,1,'@app-backend/languages/installed/index','','',0,'*',69,70,1,0,_binary '{\"module-id\":8,\"lang-cat\":\"mod_langs\"}'),(25,'ACTIONS_LOGS','main','','','','module',1,7,1,'@app-backend/actionlogs/default/index','','',0,'*',35,36,0,0,_binary '{\"module-id\":9,\"lang-cat\":\"mod_actionlogs\"}'),(26,'CLIENTS','main','','','','module',1,1,1,'@app-backend/clients/index','','',0,'*',11,12,0,0,_binary '{\"lang-cat\":\"clients\"}'),(27,'MEDIA','main','','','','module',1,10,1,'@app-backend/media/default/index','','',0,'*',45,46,0,0,_binary '{\"lang-cat\":\"mod_media\"}'),(28,'-','main','','','','separator',1,1,1,'','','',0,'*',13,14,0,0,NULL),(29,'SYSTEM_INFORMATION','main','','','','module',1,1,1,'@app-backend/site/sysinfo','','',0,'*',15,16,0,0,_binary '{\"lang-cat\":\"site\"}'),(30,'CONTENT','main','','','','heading',1,NULL,0,'','','',0,'*',38,41,3,0,_binary '{\"lang-cat\":\"mod_content\"}'),(31,'ARTICLES','main','','','','module',1,30,1,'@app-backend/content/articles/index','','',0,'*',39,40,0,0,_binary '{\"lang-cat\":\"mod_content\"}'),(32,'首页','mainmenu','home','','home','module',1,NULL,0,'@app-frontend/site/index','','{\"template\":\"index\"}',0,'zh-CN',18,19,0,1,NULL),(33,'关于我们','mainmenu','about','','about','module',1,NULL,0,'@app-frontend/content/default/view','{\"id\":\"2\"}','',0,'zh-CN',20,25,0,0,NULL),(34,'百度','mainmenu','baidu','','baidu','url',1,NULL,0,'http://www.baidu.com','','',1,'zh-CN',26,27,0,0,NULL),(35,'dfhh','mainmenu','test','','about/test','module',1,33,1,'@app-frontend/content/default/view','{\"id\":\"3\"}','',0,'*',21,24,0,0,NULL),(36,'aaa','mainmenu','aaa','','about/test/aaa','module',1,35,2,'@app-frontend/content/default/view','{\"id\":\"5\"}','',0,'*',22,23,0,0,NULL),(37,'Home','mainmenu','home','','home','module',1,NULL,0,'@app-frontend/site/index','','{\"template\":\"index\"}',0,'en-US',28,29,0,1,NULL); +/*!40000 ALTER TABLE `y_menu` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_menu_types` +-- + +DROP TABLE IF EXISTS `y_menu_types`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_menu_types` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `menutype` varchar(24) COLLATE utf8_unicode_ci NOT NULL, + `title` varchar(48) COLLATE utf8_unicode_ci NOT NULL, + `description` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` int(11) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + UNIQUE KEY `menutype` (`menutype`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_menu_types` +-- + +LOCK TABLES `y_menu_types` WRITE; +/*!40000 ALTER TABLE `y_menu_types` DISABLE KEYS */; +INSERT INTO `y_menu_types` VALUES (1,'main','BACKEND_MAIN_MENU_LABEL','BACKEND_MAIN_MENU_DESC',1),(2,'mainmenu','FRONTEND_MAIN_MENU_LABEL','FRONTEND_MAIN_MENU_DESC',2),(3,'sfgf','dfdf','',1),(4,'sfgfsdf','dfdf','',2); +/*!40000 ALTER TABLE `y_menu_types` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_migration` +-- + +DROP TABLE IF EXISTS `y_migration`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_migration` ( + `version` varchar(180) COLLATE utf8_unicode_ci NOT NULL, + `apply_time` int(11) DEFAULT NULL, + PRIMARY KEY (`version`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_migration` +-- + +LOCK TABLES `y_migration` WRITE; +/*!40000 ALTER TABLE `y_migration` DISABLE KEYS */; +INSERT INTO `y_migration` VALUES ('m000000_000000_base',1565703587),('m130524_201442_init',1565704366),('m140506_102106_rbac_init',1565704398),('m140602_111327_create_menu_table',1565704414),('m160312_050000_create_user',1565704414),('m170907_052038_rbac_add_index_on_auth_assignment_user_id',1565704399),('m180523_151638_rbac_updates_indexes_without_prefix',1565704399),('m190124_110200_add_verification_token_column_to_user_table',1565704366),('m190531_064329_admin',1565704367),('m190601_090302_member',1565704368),('m190620_012148_extensions',1565704368),('m190709_095834_languages',1565704369),('m190713_104212_clients',1565704369),('m190803_130244_menu_types',1565704414); +/*!40000 ALTER TABLE `y_migration` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_overrides` +-- + +DROP TABLE IF EXISTS `y_overrides`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_overrides` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `override_key` varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `override_value` text COLLATE utf8_unicode_ci NOT NULL, + `category` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` tinyint(3) unsigned NOT NULL DEFAULT '0', + `type` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, + `is_override` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_overrides` +-- + +LOCK TABLES `y_overrides` WRITE; +/*!40000 ALTER TABLE `y_overrides` DISABLE KEYS */; +INSERT INTO `y_overrides` VALUES (1,'SUPER_ADMINISTRATOR','超级管理员','rbac-admin','zh-CN',1,NULL,1),(2,'SUPER_ADMINISTRATOR_DESCRIPTION','有全部权限的管理员','rbac-admin','zh-CN',1,NULL,1),(3,'REGISTERED','注册会员','rbac-admin','zh-CN',1,NULL,1),(4,'REGISTERED_DESCRIPTION','已经注册的用户','rbac-admin','zh-CN',1,NULL,1),(5,'BACKEND_MAIN_MENU_DESC','后台主菜单','rbac-admin','zh-CN',1,NULL,1),(6,'BACKEND_MAIN_MENU_LABEL','主菜单','rbac-admin','zh-CN',1,'menu-types',1),(9,'FRONTEND_MAIN_MENU_LABEL','主菜单','rbac-admin','zh-CN',1,'menu-types',1),(10,'FRONTEND_MAIN_MENU_DESC','前台主菜单','rbac-admin','zh-CN',1,NULL,1),(11,'ROLE_PUBLIC','公共角色','rbac-admin','zh-CN',1,NULL,1),(12,'ROLE_PUBLIC_DESCRIPTION','最低权限的角色','rbac-admin','zh-CN',1,NULL,1),(13,'ROLE_SUPER_ADMINISTRATOR','超级管理员','rbac-admin','zh-CN',1,NULL,1),(14,'ROLE_SUPER_ADMINISTRATOR_DESCRIPTION','有全部权限的管理员','rbac-admin','zh-CN',1,NULL,1),(15,'ROLE_REGISTERED','注册会员','rbac-admin','zh-CN',1,NULL,1),(16,'ROLE_REGISTERED_DESCRIPTION','已经注册的用户','rbac-admin','zh-CN',1,NULL,1); +/*!40000 ALTER TABLE `y_overrides` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_theme_styles` +-- + +DROP TABLE IF EXISTS `y_theme_styles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_theme_styles` ( + `id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `template` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `client_id` tinyint(1) unsigned NOT NULL DEFAULT '0', + `home` tinyint(1) unsigned NOT NULL DEFAULT '0', + `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `params` text COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `idx_template` (`template`), + KEY `idx_client_id` (`client_id`), + KEY `idx_client_id_home` (`client_id`,`home`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_theme_styles` +-- + +LOCK TABLES `y_theme_styles` WRITE; +/*!40000 ALTER TABLE `y_theme_styles` DISABLE KEYS */; +INSERT INTO `y_theme_styles` VALUES (1,'basic',1,1,'BASIC_TITLE','{\"showSiteName\":\"1\"}'),(2,'adminlte',1,0,'ADMINLTE_TITLE','{\"showSiteName\":\"1\"}'); +/*!40000 ALTER TABLE `y_theme_styles` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_user` +-- + +DROP TABLE IF EXISTS `y_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL, + `password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, + `status` smallint(6) NOT NULL DEFAULT '10', + `created_at` int(11) NOT NULL, + `updated_at` int(11) NOT NULL, + `verification_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`), + UNIQUE KEY `password_reset_token` (`password_reset_token`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_user` +-- + +LOCK TABLES `y_user` WRITE; +/*!40000 ALTER TABLE `y_user` DISABLE KEYS */; +INSERT INTO `y_user` VALUES (1,'admin','0sbDtzB03MoPn_Ez4IHQmaq-HyxRCCE-','$2y$13$BWBb78DeEBiJ.oU7hN8iUeYIyUBmI4yBnu89ZHAAy0Co1yWcPLwbG',NULL,'admin@backend.com',10,1565836586,1576672377,NULL),(2,'demo','IrAgIbMiFExdzG98Vce_S18lRSwTLvSB','$2y$13$kM.MHsIeSNIUxHQNpPvkXuZVNWkTC6/krXPmJjo8.oNrvvSNjzcVO',NULL,'demo@frontend.com',10,1565836609,1565836609,'OROS8yA1pqomUWAwBczIw2x2bhzyhw0P_1565836609'),(3,'loong','wJG_p3n6uo13ezk9O85K71RaHGI1tZyH','$2y$13$t1irQ43yYHA6idXLE3whB.K0UBYcV//E0P54fhx2L7e4ZY1kn0OiK',NULL,'loong@admin.com',10,1576409189,1576494676,NULL); +/*!40000 ALTER TABLE `y_user` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `y_widgets` +-- + +DROP TABLE IF EXISTS `y_widgets`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `y_widgets` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `title` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `note` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `content` text COLLATE utf8_unicode_ci NOT NULL, + `ordering` int(11) NOT NULL DEFAULT '0', + `position` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', + `publish_up` int(11) DEFAULT NULL, + `publish_down` int(11) DEFAULT NULL, + `published` tinyint(1) NOT NULL DEFAULT '0', + `widget` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `showtitle` tinyint(3) unsigned NOT NULL DEFAULT '1', + `params` text COLLATE utf8_unicode_ci NOT NULL, + `client_id` tinyint(4) NOT NULL DEFAULT '0', + `language` char(7) COLLATE utf8_unicode_ci NOT NULL, + PRIMARY KEY (`id`), + KEY `published` (`published`), + KEY `newsfeeds` (`widget`,`published`), + KEY `idx_language` (`language`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `y_widgets` +-- + +LOCK TABLES `y_widgets` WRITE; +/*!40000 ALTER TABLE `y_widgets` DISABLE KEYS */; +INSERT INTO `y_widgets` VALUES (1,'信息提示框','','',0,'content-header',NULL,NULL,1,'alert',0,'',1,'*'),(2,'操作日志 - 最新操作','','',0,'cpanel',NULL,NULL,1,'latest_actions',1,'{\"count\":\"5\",\"bootstrap_size\":\"6\"}',1,'*'); +/*!40000 ALTER TABLE `y_widgets` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2020-03-18 2:38:10 diff --git a/yii_test b/yii_test new file mode 100755 index 0000000000000000000000000000000000000000..63a4e7a800ee9d64745f7315b4cf14a05e9e1c20 --- /dev/null +++ b/yii_test @@ -0,0 +1,28 @@ +#!/usr/bin/env php +run(); +exit($exitCode); diff --git a/yii_test.bat b/yii_test.bat new file mode 100755 index 0000000000000000000000000000000000000000..29fbbea0781afffa78274b43395dad56bd71b4c1 --- /dev/null +++ b/yii_test.bat @@ -0,0 +1,15 @@ +@echo off + +rem ------------------------------------------------------------- +rem Yii command line bootstrap script for Windows. +rem ------------------------------------------------------------- + +@setlocal + +set YII_PATH=%~dp0 + +if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe + +"%PHP_COMMAND%" "%YII_PATH%yii_test" %* + +@endlocal