luoyifan 3 years ago
commit
0d35bcd049
100 changed files with 476916 additions and 0 deletions
  1. 201 0
      LICENSE
  2. 1 0
      README.md
  3. 159969 0
      assets/ext-7.4/ext-modern-all-debug.js
  4. 159976 0
      assets/ext-7.4/ext-modern-all-sandbox-debug.js
  5. 26 0
      assets/ext-7.4/ext-modern-all-sandbox.js
  6. 20 0
      assets/ext-7.4/ext-modern-all.js
  7. 93205 0
      assets/ext-7.4/ext-modern-debug.js
  8. 20 0
      assets/ext-7.4/ext-modern.js
  9. 457 0
      assets/ext-7.4/modern/locale/locale-cs-debug.js
  10. 1 0
      assets/ext-7.4/modern/locale/locale-cs.js
  11. 443 0
      assets/ext-7.4/modern/locale/locale-da-debug.js
  12. 1 0
      assets/ext-7.4/modern/locale/locale-da.js
  13. 501 0
      assets/ext-7.4/modern/locale/locale-de-debug.js
  14. 1 0
      assets/ext-7.4/modern/locale/locale-de.js
  15. 519 0
      assets/ext-7.4/modern/locale/locale-es-debug.js
  16. 1 0
      assets/ext-7.4/modern/locale/locale-es.js
  17. 461 0
      assets/ext-7.4/modern/locale/locale-fi-debug.js
  18. 1 0
      assets/ext-7.4/modern/locale/locale-fi.js
  19. 512 0
      assets/ext-7.4/modern/locale/locale-fr-debug.js
  20. 1 0
      assets/ext-7.4/modern/locale/locale-fr.js
  21. 506 0
      assets/ext-7.4/modern/locale/locale-fr_CA-debug.js
  22. 1 0
      assets/ext-7.4/modern/locale/locale-fr_CA.js
  23. 448 0
      assets/ext-7.4/modern/locale/locale-it-debug.js
  24. 1 0
      assets/ext-7.4/modern/locale/locale-it.js
  25. 460 0
      assets/ext-7.4/modern/locale/locale-ja-debug.js
  26. 1 0
      assets/ext-7.4/modern/locale/locale-ja.js
  27. 413 0
      assets/ext-7.4/modern/locale/locale-ko-debug.js
  28. 1 0
      assets/ext-7.4/modern/locale/locale-ko.js
  29. 455 0
      assets/ext-7.4/modern/locale/locale-nl-debug.js
  30. 1 0
      assets/ext-7.4/modern/locale/locale-nl.js
  31. 442 0
      assets/ext-7.4/modern/locale/locale-no_NB-debug.js
  32. 1 0
      assets/ext-7.4/modern/locale/locale-no_NB.js
  33. 463 0
      assets/ext-7.4/modern/locale/locale-pt-debug.js
  34. 1 0
      assets/ext-7.4/modern/locale/locale-pt.js
  35. 454 0
      assets/ext-7.4/modern/locale/locale-pt_BR-debug.js
  36. 1 0
      assets/ext-7.4/modern/locale/locale-pt_BR.js
  37. 494 0
      assets/ext-7.4/modern/locale/locale-pt_PT-debug.js
  38. 1 0
      assets/ext-7.4/modern/locale/locale-pt_PT.js
  39. 456 0
      assets/ext-7.4/modern/locale/locale-ru-debug.js
  40. 1 0
      assets/ext-7.4/modern/locale/locale-ru.js
  41. 431 0
      assets/ext-7.4/modern/locale/locale-zh_CN-debug.js
  42. 1 0
      assets/ext-7.4/modern/locale/locale-zh_CN.js
  43. 1 0
      assets/ext-7.4/modern/theme-ios/config.rb
  44. 2 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug.css
  45. 16246 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug_1.css
  46. 3929 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug_2.css
  47. 2 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug.css
  48. 16246 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug_1.css
  49. 3929 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug_2.css
  50. 2 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl.css
  51. 1 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl_1.css
  52. 1 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl_2.css
  53. 2 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all.css
  54. 1 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all_1.css
  55. 1 0
      assets/ext-7.4/modern/theme-ios/resources/theme-ios-all_2.css
  56. 1454 0
      assets/ext-7.4/modern/theme-ios/theme-ios-all-debug.scss
  57. 1454 0
      assets/ext-7.4/modern/theme-ios/theme-ios-all-rtl-debug.scss
  58. 2090 0
      assets/ext-7.4/modern/theme-ios/theme-ios-debug.js
  59. 1 0
      assets/ext-7.4/modern/theme-ios/theme-ios.js
  60. 1 0
      assets/ext-7.4/modern/theme-material/config.rb
  61. 3 0
      assets/ext-7.4/modern/theme-material/resources/Readme.md
  62. 5644 0
      assets/ext-7.4/modern/theme-material/resources/css-vars.js
  63. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.eot
  64. 1260 0
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.svg
  65. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.ttf
  66. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.woff
  67. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.woff2
  68. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.eot
  69. 471 0
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.svg
  70. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.ttf
  71. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.woff
  72. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.woff2
  73. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.eot
  74. 2763 0
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.svg
  75. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.ttf
  76. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.woff
  77. BIN
      assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.woff2
  78. BIN
      assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.eot
  79. 62 0
      assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.svg
  80. BIN
      assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.ttf
  81. BIN
      assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.woff
  82. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/MaterialIcons-Regular.ttf
  83. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Bold.ttf
  84. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Italic.ttf
  85. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Light.ttf
  86. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Medium.ttf
  87. BIN
      assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Regular.ttf
  88. BIN
      assets/ext-7.4/modern/theme-material/resources/images/check.png
  89. BIN
      assets/ext-7.4/modern/theme-material/resources/images/clear_icon.png
  90. BIN
      assets/ext-7.4/modern/theme-material/resources/images/disclosure.png
  91. BIN
      assets/ext-7.4/modern/theme-material/resources/images/disclosure2.png
  92. BIN
      assets/ext-7.4/modern/theme-material/resources/images/dotgrid.png
  93. BIN
      assets/ext-7.4/modern/theme-material/resources/images/loading.gif
  94. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/action.png
  95. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/add.png
  96. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/add1.png
  97. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/add_black.png
  98. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/address_book.png
  99. BIN
      assets/ext-7.4/modern/theme-material/resources/images/pictos/arrow_down.png
  100. 0 0
      assets/ext-7.4/modern/theme-material/resources/images/pictos/arrow_left.png

+ 201 - 0
LICENSE

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 1 - 0
README.md

@@ -0,0 +1 @@
+沃土低代码UI for ext

File diff suppressed because it is too large
+ 159969 - 0
assets/ext-7.4/ext-modern-all-debug.js


File diff suppressed because it is too large
+ 159976 - 0
assets/ext-7.4/ext-modern-all-sandbox-debug.js


File diff suppressed because it is too large
+ 26 - 0
assets/ext-7.4/ext-modern-all-sandbox.js


File diff suppressed because it is too large
+ 20 - 0
assets/ext-7.4/ext-modern-all.js


File diff suppressed because it is too large
+ 93205 - 0
assets/ext-7.4/ext-modern-debug.js


File diff suppressed because it is too large
+ 20 - 0
assets/ext-7.4/ext-modern.js


+ 457 - 0
assets/ext-7.4/modern/locale/locale-cs-debug.js

@@ -0,0 +1,457 @@
+Ext.define('Ext.locale.cs.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Storno'
+});
+Ext.define("Ext.locale.cs.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.cs.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximalizovat na celou obrazovku"
+        },
+        restoreTool: {
+            tooltip: "Obnovit původní velikost"
+        }
+    }
+});
+Ext.define("Ext.locale.cs.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Prosím čekejte...'
+    }
+});
+Ext.define('Ext.locale.cs.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Přerušit'
+            },
+            retry: {
+                text: 'Opakujte'
+            },
+            ignore: {
+                text: 'Ignorovat'
+            },
+            yes: {
+                text: 'Ano'
+            },
+            no: {
+                text: 'Ne.'
+            },
+            cancel: {
+                text: 'zrušit'
+            },
+            apply: {
+                text: 'Aplikovat'
+            },
+            save: {
+                text: 'Uložit'
+            },
+            submit: {
+                text: 'Předložit'
+            },
+            help: {
+                text: 'Pomoc'
+            },
+            close: {
+                text: 'Zavřít'
+            }
+        },
+        closeToolText: 'Zavřete panel'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Musí být přítomen',
+        minOnlyMessage: 'Musí být alespoň {0}',
+        maxOnlyMessage: 'Nesmí být větší než {0}',
+        bothMessage: 'Musí být v rozsahu {0} a {1}'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Není platný blok CIDR'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Není platný blok CIDR'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Není platná částka měny'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: 'Není platné datumčas'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Není platné datum a čas'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Není platná e-mailová adresa'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Je hodnota, která byla vyloučena'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Má nesprávný formát'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Není platná adresa IP'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Het staat niet in de lijst se setkal s aanvaardbare waarden'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Délka musí být alespoň {0}',
+        maxOnlyMessage: 'Délka nesmí být větší než {0}',
+        bothMessage: 'Délka musí být mezi {0} a {1}'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Není platné číslo'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Není platné telefonní číslo'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Musí být přítomen'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Musí být číselné',
+        minOnlyMessage: 'Musí být alespoň {0}',
+        maxOnlyMessage: 'Nesmí být větší než {0}',
+        bothMessage: 'Musí být v rozsahu {0} a {1}'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Není platný čas'
+    }
+});
+Ext.define('Ext.locale.cs.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Není platná adresa URL'
+    }
+});
+Ext.define('Ext.locale.cs.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Prosím čekejte...'
+    }
+});
+Ext.define("Ext.locale.cs.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "žádná data k zobrazení"
+    }
+});
+Ext.define('Ext.locale.cs.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Žádná data k zobrazení'
+    }
+});
+Ext.define('Ext.locale.cs.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Prosím čekejte...'
+    }
+});
+Ext.define('Ext.locale.cs.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Načíst další ...',
+        noMoreRecordsText: 'Žádné další záznamy'
+    }
+});
+/**
+ * Czech Translations
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec",
+            "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
+        ];
+
+        Ext.Date.shortMonthNames = {
+            "Leden": "Led",
+            "Únor": "Úno",
+            "Březen": "Bře",
+            "Duben": "Dub",
+            "Květen": "Kvě",
+            "Červen": "Čer",
+            "Červenec": "Čvc",
+            "Srpen": "Srp",
+            "Září": "Zář",
+            "Říjen": "Říj",
+            "Listopad": "Lis",
+            "Prosinec": "Pro"
+        };
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.shortMonthNames[Ext.Date.monthNames[month]];
+        };
+
+        Ext.Date.monthNumbers = {
+            "Leden": 0,
+            "Únor": 1,
+            "Březen": 2,
+            "Duben": 3,
+            "Květen": 4,
+            "Červen": 5,
+            "Červenec": 6,
+            "Srpen": 7,
+            "Září": 8,
+            "Říjen": 9,
+            "Listopad": 10,
+            "Prosinec": 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1)
+            .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u004b\u010d',
+            // Czech Koruny
+            dateFormat: 'd.m.Y'
+        });
+    }
+});
+Ext.define('Ext.locale.cs.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Datum v tomto poli nesmí být starší než {0}',
+    maxDateMessage: 'Datum v tomto poli nesmí být novější než {0}'
+});
+Ext.define('Ext.locale.cs.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Toto pole je povinné',
+        validationMessage: 'je ve špatném formátu'
+    }
+});
+Ext.define("Ext.locale.cs.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Archiv...'
+    }
+});
+Ext.define('Ext.locale.cs.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Maximální desetinné číslo je (0)',
+    minValueText: 'Hodnota v tomto poli nesmí být menší než {0}',
+    maxValueText: 'Hodnota v tomto poli nesmí být větší než {0}',
+    badFormatMessage: '{0} není platné číslo'
+});
+Ext.define('Ext.locale.cs.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Hodnota neodpovídá požadovanému formátu',
+    config: {
+        requiredMessage: 'Toto pole je povinné',
+        validationMessage: 'je ve špatném formátu'
+    }
+});
+Ext.define("Ext.locale.cs.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filtr"
+    }
+});
+Ext.define('Ext.locale.cs.grid.locked.Grid', {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Oblast'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Zamknuto (Vlevo)'
+            },
+            center: {
+                menuLabel: 'Odemčeno'
+            },
+            right: {
+                menuLabel: 'Zamčené (Vpravo) '
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.cs.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Sloupce"
+    }
+});
+Ext.define("Ext.locale.cs.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Seskupit podle toho"
+    }
+});
+Ext.define("Ext.locale.cs.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Zobrazit ve skupinách"
+    }
+});
+Ext.define("Ext.locale.cs.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Řadit vzestupně"
+    }
+});
+Ext.define("Ext.locale.cs.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Řadit sestupně"
+    }
+});
+Ext.define("Ext.locale.cs.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} vybraných řádků"
+});
+Ext.define('Ext.locale.cs.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Zavřete okno",
+        expandToolText: "rozbalte panel"
+    }
+});
+Ext.define('Ext.locale.cs.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Následující měsíc (Control+Right)',
+        prevText: 'Předcházející měsíc (Control+Left)',
+        buttons: {
+            footerTodayButton: {
+                text: "Dnes"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.cs.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Hotovo',
+        monthText: 'Měsíc',
+        dayText: 'Den',
+        yearText: 'Rok'
+    }
+});
+Ext.define('Ext.locale.cs.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Hotovo',
+        cancelButton: 'Storno'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-cs.js


+ 443 - 0
assets/ext-7.4/modern/locale/locale-da-debug.js

@@ -0,0 +1,443 @@
+Ext.define('Ext.locale.da.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Cancel'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.da.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.da.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maksimer til fuldskærm"
+        },
+        restoreTool: {
+            tooltip: "Gendan til originalstørrelse"
+        }
+    }
+});
+Ext.define("Ext.locale.da.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Henter...'
+    }
+});
+Ext.define('Ext.locale.da.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abort'
+            },
+            retry: {
+                text: 'Prøve igen'
+            },
+            ignore: {
+                text: 'Ignorere'
+            },
+            yes: {
+                text: 'Ja'
+            },
+            no: {
+                text: 'Ingen'
+            },
+            cancel: {
+                text: 'Afbestille'
+            },
+            apply: {
+                text: 'ansøge'
+            },
+            save: {
+                text: 'Gemme'
+            },
+            submit: {
+                text: 'Indsend'
+            },
+            help: {
+                text: 'Hjælp'
+            },
+            close: {
+                text: 'Luk'
+            }
+        },
+        closeToolText: 'Luk Panel'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Skal være til stede',
+        minOnlyMessage: 'Skal være mindst {0}',
+        maxOnlyMessage: 'Må ikke være mere end {0}',
+        bothMessage: 'Skal være mellem {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Er ikke en gyldig CIDR-blok'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Er ikke en gyldig CIDR-blok'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Er ikke et gyldigt valuta beløb'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Er ikke en gyldig dato"
+    }
+});
+Ext.define('Ext.locale.da.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Er ikke en gyldig dato og klokkeslæt'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Er ikke en gyldig email-adresse'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Er en værdi, der er udelukket'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Det har det forkerte format'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Er ikke en gyldig IP-adresse'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Det står ikke i listen med acceptable værdier'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Længde skal være mindst {0}',
+        maxOnlyMessage: 'Længde må ikke være mere end {0}',
+        bothMessage: 'Længden skal være mellem {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Er ikke et gyldigt nummer'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Er ikke et gyldigt telefonnummer'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Skal være til stede'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Det skal være numerisk',
+        minOnlyMessage: 'Skal være mindst {0}',
+        maxOnlyMessage: 'Må ikke være mere end {0}',
+        bothMessage: 'Skal være mellem {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Er ikke en gyldig tid'
+    }
+});
+Ext.define('Ext.locale.da.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Er ikke en gyldig webadresse'
+    }
+});
+Ext.define('Ext.locale.da.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Henter...'
+    }
+});
+Ext.define("Ext.locale.da.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "ingen data at viseingen data at vise"
+    }
+});
+Ext.define('Ext.locale.da.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'ingen data at vise'
+    }
+});
+Ext.define('Ext.locale.da.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Henter...'
+    }
+});
+Ext.define('Ext.locale.da.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Indlæs mere ...',
+        noMoreRecordsText: 'Ingen flere poster'
+    }
+});
+/**
+ * Danish translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "januar", "februar", "marts", "april", "maj", "juni", "juli",
+            "august", "september", "oktober", "november", "december"
+        ];
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            jan: 0,
+            feb: 1,
+            mar: 2,
+            apr: 3,
+            maj: 4,
+            jun: 5,
+            jul: 6,
+            aug: 7,
+            sep: 8,
+            okt: 9,
+            nov: 10,
+            dec: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 3).toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ["søndag", "mandag", "tirsdag", "onsdag",
+                             "torsdag", "fredag", "lørdag"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: 'kr',
+            // Danish Krone
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+Ext.define('Ext.locale.da.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Datoen i dette felt skal være efter {0}',
+    maxDateMessage: 'Datoen i dette felt skal være før {0}'
+});
+Ext.define('Ext.locale.da.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Dette felt er påkrævet',
+        validationMessage: 'er i forkert format'
+    }
+});
+Ext.define("Ext.locale.da.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Arkiv ...'
+    }
+});
+Ext.define('Ext.locale.da.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Det maksimale decimaltal er (0)',
+    minValueText: 'Mindste-værdien for dette felt er {0}',
+    maxValueText: 'Maksimum-værdien for dette felt er {0}',
+    badFormatMessage: '{0} er ikke et tilladt nummer'
+});
+Ext.define('Ext.locale.da.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Værdien stemmer ikke overens med det krævede format',
+    config: {
+        requiredMessage: 'Dette felt er påkrævet',
+        validationMessage: 'er i forkert format'
+    }
+});
+Ext.define("Ext.locale.da.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filter"
+    }
+});
+Ext.define("Ext.locale.da.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Område'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Låst (Venstre)'
+            },
+            center: {
+                menuLabel: 'Låst'
+            },
+            right: {
+                menuLabel: 'Låst (Højre)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.da.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Kolonner"
+    }
+});
+Ext.define("Ext.locale.da.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Gruppér ved dette"
+    }
+});
+Ext.define("Ext.locale.da.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Vis i grupper"
+    }
+});
+Ext.define("Ext.locale.da.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Sortér stigende"
+    }
+});
+Ext.define("Ext.locale.da.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Sortér faldende"
+    }
+});
+Ext.define("Ext.locale.da.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} markerede rækker"
+});
+Ext.define('Ext.locale.da.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Luk panel",
+        expandToolText: "Udvid panel"
+    }
+});
+Ext.define('Ext.locale.da.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Næste måned (Ctrl + højre piltast)',
+        prevText: 'Forrige måned (Ctrl + venstre piltast)',
+        buttons: {
+            footerTodayButton: {
+                text: "I dag"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.nl.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Færdig',
+        monthText: 'Måned',
+        dayText: 'Dag',
+        yearText: 'år'
+    }
+});
+Ext.define('Ext.locale.da.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Færdig',
+        cancelButton: 'Afbestille'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-da.js


+ 501 - 0
assets/ext-7.4/modern/locale/locale-de-debug.js

@@ -0,0 +1,501 @@
+/**
+ * German translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September",
+            "Oktober", "November", "Dezember"
+        ];
+
+        Ext.Date.defaultFormat = 'd.m.Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Jan: 0,
+            Feb: 1,
+            "M\u00e4r": 2,
+            Apr: 3,
+            Mai: 4,
+            Jun: 5,
+            Jul: 6,
+            Aug: 7,
+            Sep: 8,
+            Okt: 9,
+            Nov: 10,
+            Dez: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+                .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = [
+            "Sonntag", "Montag", "Dienstag", "Mittwoch",
+            "Donnerstag", "Freitag", "Samstag"
+        ];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.util.Format.__number = Ext.util.Format.number;
+
+        Ext.util.Format.number = function(v, format) {
+            return Ext.util.Format.__number(v, format || "0.000,00/i");
+        };
+
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // German Euro
+            dateFormat: 'd.m.Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.de.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abbrechen'
+            },
+            retry: {
+                text: 'Wiederholen'
+            },
+            ignore: {
+                text: 'Ignorieren'
+            },
+            yes: {
+                text: 'Ja'
+            },
+            no: {
+                text: 'Nein'
+            },
+            cancel: {
+                text: 'Abbrechen'
+            },
+            apply: {
+                text: 'Anwenden'
+            },
+            save: {
+                text: 'Speichern'
+            },
+            submit: {
+                text: 'Absenden'
+            },
+            help: {
+                text: 'Hilfe'
+            },
+            close: {
+                text: 'Schließen'
+            }
+        },
+        closeToolText: 'Panel schließen'
+    }
+});
+
+Ext.define('Ext.locale.de.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Fertig',
+        monthText: 'Monat',
+        dayText: 'Tag',
+        yearText: 'Jahr'
+    }
+});
+
+Ext.define('Ext.locale.de.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Erledigt',
+        cancelButton: 'Abbrechen'
+    }
+});
+
+Ext.define('Ext.locale.de.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Nächster Monat (Strg/Control + Rechts)',
+        prevText: 'Vorheriger Monat (Strg/Control + Links)',
+        buttons: {
+            footerTodayButton: {
+                text: "Heute"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.de.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Panel ausblenden",
+        expandToolText: "Panel erweitern"
+    }
+});
+
+Ext.define('Ext.locale.de.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Dieses Feld darf nich leer sein',
+        validationMessage: 'Ist im falschen Format'
+    }
+});
+
+Ext.define('Ext.locale.de.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Die maximale Dezimalstelle ist {0}',
+    minValueText: 'Der Mindestwert für dieses Feld ist {0}',
+    maxValueText: 'Der Maximalwert für dieses Feld ist {0}',
+    badFormatMessage: 'Der Wert ist keine Zahl'
+});
+
+Ext.define('Ext.locale.de.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Der Wert stimmt nicht mit dem erforderlichen Format überein',
+    config: {
+        requiredMessage: 'Dieses Feld darf nich leer sein',
+        validationMessage: 'Ist im falschen Format'
+    }
+});
+
+Ext.define('Ext.locale.de.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximiere auf Vollbild"
+        },
+        restoreTool: {
+            tooltip: "Wiederherstellen auf Originalgröße"
+        }
+    }
+});
+
+Ext.define("Ext.locale.de.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Durchsuche...'
+    }
+});
+
+Ext.define('Ext.locale.de.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Lade Daten ...'
+    }
+});
+
+Ext.define('Ext.locale.de.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Keine Daten zum Anzeigen'
+    }
+});
+
+Ext.define('Ext.locale.de.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Lade Daten ...'
+    }
+});
+
+Ext.define("Ext.locale.de.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Lade Daten ...'
+    }
+});
+
+Ext.define('Ext.locale.de.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Mehr laden...',
+        noMoreRecordsText: 'Keine weiteren Aufzeichnungen'
+    }
+});
+
+Ext.define("Ext.locale.de.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.de.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Das Datum in diesem Feld muss nach dem {0} liegen',
+    maxDateMessage: 'Das Datum in diesem Feld muss vor dem {0} liegen'
+});
+
+Ext.define("Ext.locale.de.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Aufsteigend sortieren"
+    }
+});
+
+Ext.define("Ext.locale.de.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Absteigend sortieren"
+    }
+});
+
+Ext.define("Ext.locale.de.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Nach diesem Feld gruppieren"
+    }
+});
+
+Ext.define("Ext.locale.de.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "In Gruppen anzeigen"
+    }
+});
+
+Ext.define("Ext.locale.de.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Spalten"
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Muss anwesend sein'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Ist im falschen Format'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Ist keine gültige E-Mail-Adresse'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Ist keine gültige Telefonnummer'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Ist keine Zahl'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Ist keine gültige URL'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Muss numerisch sein',
+        minOnlyMessage: 'Der Mindestwert für dieses Feld ist {0}',
+        maxOnlyMessage: 'Der Maximalwert für dieses Feld ist {0}',
+        bothMessage: 'Muss zwischen {0} und {1} liegen'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Muss anwesend sein',
+        minOnlyMessage: 'Wert muss größer als {0} sein',
+        maxOnlyMessage: 'Wert muss kleiner als {0} sein',
+        bothMessage: 'Der Wert muss zwischen {0} und {1} liegen.'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Ist kein gültiger CIDR-Block'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Ist kein gültiger CIDR-Block'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Ist kein gültiger Währungsbetrag'
+    }
+
+});
+
+Ext.define('Ext.locale.de.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Ist kein gültige Datum und Uhrzeit'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Ist ein Wert, der ausgeschlossen wurde'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Ist keine gültige IP-Adresse'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Ist nicht in der Liste der zulässigen Werte enthalten'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Ist keine gültige Zeit'
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Ist kein valides Datum"
+    }
+});
+
+Ext.define('Ext.locale.de.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Die Länge muss mindestens {0} sein',
+        maxOnlyMessage: 'Die Länge darf nicht mehr als {0} sein',
+        bothMessage: 'Die Länge muss zwischen {0} und {1} liegen'
+    }
+});
+
+Ext.define('Ext.locale.de.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Stornieren'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.de.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.de.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filter"
+    }
+});
+
+Ext.define('Ext.locale.de.grid.locked.Grid', {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Region'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Verschlossen (Links)'
+            },
+            center: {
+                menuLabel: 'Freigeschaltet'
+            },
+            right: {
+                menuLabel: 'Verschlossen (Recht)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.de.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} Zeile(n) ausgewählt"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-de.js


+ 519 - 0
assets/ext-7.4/modern/locale/locale-es-debug.js

@@ -0,0 +1,519 @@
+/**
+ * Spanish/Latin American Translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre",
+            "Octubre", "Noviembre", "Diciembre"
+        ];
+
+        Ext.Date.defaultFormat = 'd/m/Y';
+        Ext.Date.defaultTimeFormat = 'h:i a';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Ene: 0,
+            Feb: 1,
+            Mar: 2,
+            Abr: 3,
+            May: 4,
+            Jun: 5,
+            Jul: 6,
+            Ago: 7,
+            Sep: 8,
+            Oct: 9,
+            Nov: 10,
+            Dic: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[
+            name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+        };
+
+        Ext.Date.dayNames = [
+            "Domingo", "Lunes", "Martes", "Miércoles", "Jueves",
+            "Viernes", "Sábado"
+        ];
+
+        Ext.Date.getShortDayName = function(day) {
+
+            if (day === 3) {
+                return "Mié";
+            }
+
+            if (day === 6) {
+                return "Sáb";
+            }
+
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+
+        Ext.Date.formatCodes.a = "(this.getHours() < 12 ? 'a.m.' : 'p.m.')";
+        Ext.Date.formatCodes.A = "(this.getHours() < 12 ? 'A.M.' : 'P.M.')";
+
+        // This will match am or a.m.
+        Ext.Date.parseCodes.a = Ext.Date.parseCodes.A = {
+            g: 1,
+            c: "if (/(a\\.?m\\.?)/i.test(results[{0}])) {\n" +
+                "if (!h || h == 12) { h = 0; }\n" +
+                "} else { if (!h || h < 12) { h = (h || 0) + 12; }}",
+            s: "(A\\.?M\\.?|P\\.?M\\.?|a\\.?m\\.?|p\\.?m\\.?)",
+            calcAtEnd: true
+        };
+
+        Ext.Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // Spanish Euro
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.es.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abortar'
+            },
+            retry: {
+                text: 'Volver a procesar'
+            },
+            ignore: {
+                text: 'Ignorar'
+            },
+            yes: {
+                text: 'Si'
+            },
+            no: {
+                text: 'No'
+            },
+            cancel: {
+                text: 'Cancelar'
+            },
+            apply: {
+                text: 'Aplicar'
+            },
+            save: {
+                text: 'Guardar'
+            },
+            submit: {
+                text: 'Enviar'
+            },
+            help: {
+                text: 'Ayuda'
+            },
+            close: {
+                text: 'Cerrar'
+            }
+        },
+        closeToolText: 'Panel cerrado'
+    }
+});
+
+Ext.define('Ext.locale.es.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Listo',
+        monthText: 'Mes',
+        dayText: 'Día',
+        yearText: 'Año'
+    }
+});
+
+Ext.define('Ext.locale.es.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Hecho',
+        cancelButton: 'Cancelar'
+    }
+});
+
+Ext.define('Ext.locale.es.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Mes próximo (Control + derecha)',
+        prevText: 'Mes anterior (Control + izquierda)',
+        buttons: {
+            footerTodayButton: {
+                text: "Hoy"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.es.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Contraer panel",
+        expandToolText: "Ampliar el panel"
+    }
+});
+
+Ext.define('Ext.locale.es.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Este campo es requerido',
+        validationMessage: 'Está en el formato incorrecto'
+    }
+});
+
+Ext.define('Ext.locale.es.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'El número decimal máximo es (0)',
+    minValueText: 'El valor mínimo para este campo es (0)',
+    maxValueText: 'El valor máximo para este campo es {0}',
+    badFormatMessage: 'El valor no es un número válido'
+});
+
+Ext.define('Ext.locale.es.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'El valor no coincide con el formato requerido',
+    config: {
+        requiredMessage: 'Este campo es requerido',
+        validationMessage: 'Está en el formato incorrecto'
+    }
+});
+
+Ext.define('Ext.locale.es.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximizar a pantalla completa"
+        },
+        restoreTool: {
+            tooltip: "Restaurar al tamaño original"
+        }
+    }
+});
+
+Ext.define("Ext.locale.es.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Vistazo...'
+    }
+});
+
+Ext.define('Ext.locale.es.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Cargando...'
+    }
+});
+
+Ext.define('Ext.locale.es.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Sin visualización de datos'
+    }
+});
+
+Ext.define('Ext.locale.es.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Cargando...'
+    }
+});
+
+Ext.define("Ext.locale.es.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Cargando...'
+    }
+});
+
+Ext.define('Ext.locale.es.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Carga más',
+        noMoreRecordsText: 'No más registros'
+    }
+});
+
+Ext.define("Ext.locale.es.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.es.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'La fecha en este campo debe ser igual o posterior {0}',
+    maxDateMessage: 'La fecha de este campo debe ser igual o anterior a {0}'
+});
+
+Ext.define("Ext.locale.es.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Orden ascendente"
+    }
+});
+
+Ext.define("Ext.locale.es.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Orden descendiente"
+    }
+});
+
+Ext.define("Ext.locale.es.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Agrupar por este campo"
+    }
+});
+
+Ext.define("Ext.locale.es.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Mostrar en grupos"
+    }
+});
+
+Ext.define("Ext.locale.es.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Columnas"
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Debe estar presente'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Está en el formato incorrecto'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'No es una dirección de correo electrónico válida'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'No es un número de teléfono válido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'No es un número válido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'No es una URL válida'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Debe ser numérico',
+        minOnlyMessage: 'Debe ser al menos {0}',
+        maxOnlyMessage: 'No debe ser más que {0}',
+        bothMessage: 'Debe estar entre {0} y {1}'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Debe estar presente',
+        minOnlyMessage: 'El valor debe ser mayor que {0}',
+        maxOnlyMessage: 'El valor debe ser menor que {0}',
+        bothMessage: 'El valor debe estar entre {0} y {1}'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'No es un bloque CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'No es un bloque CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'No es una cantidad de moneda válida'
+    }
+
+});
+
+Ext.define('Ext.locale.es.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'No es una fecha y hora válidas'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Es un valor que ha sido excluido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'No es una dirección IP válida'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'No está en la lista de valores aceptables'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'No es un momento válido'
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "No es una fecha válida"
+    }
+});
+
+Ext.define('Ext.locale.es.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'La longitud debe ser al menos {0}',
+        maxOnlyMessage: 'La longitud no debe ser mayor que {0}',
+        bothMessage: 'La longitud no debe estar entre {0} y {1}'
+    }
+});
+
+Ext.define('Ext.locale.es.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Cancelar'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.es.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.es.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "filtrar"
+    }
+});
+
+Ext.define("Ext.locale.es.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Región'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Bloqueado (Izquierda)'
+            },
+            center: {
+                menuLabel: 'Desbloqueado'
+            },
+            right: {
+                menuLabel: 'Bloqueado (Derecha)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.es.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} fila(s) seleccionada(s)"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-es.js


+ 461 - 0
assets/ext-7.4/modern/locale/locale-fi-debug.js

@@ -0,0 +1,461 @@
+Ext.define('Ext.locale.fi.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Peruuta'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.fi.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.fi.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maksimoi koko näyttöön"
+        },
+        restoreTool: {
+            tooltip: "Palauta alkuperäiseen kokoon"
+        }
+    }
+});
+Ext.define("Ext.locale.fi.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Ladataan...'
+    }
+});
+Ext.define('Ext.locale.fi.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Keskeyttää'
+            },
+            retry: {
+                text: 'yritä uudelleen'
+            },
+            ignore: {
+                text: 'Jättää huomiotta'
+            },
+            yes: {
+                text: 'Joo'
+            },
+            no: {
+                text: 'Ei'
+            },
+            cancel: {
+                text: 'Peruuttaa'
+            },
+            apply: {
+                text: 'Käytä'
+            },
+            save: {
+                text: 'Tallentaa'
+            },
+            submit: {
+                text: 'Lähetä'
+            },
+            help: {
+                text: 'auta'
+            },
+            close: {
+                text: 'Sulje'
+            }
+        },
+        closeToolText: 'Sulje paneeli'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'On oltava läsnä',
+        minOnlyMessage: 'On oltava vähintään {0}',
+        maxOnlyMessage: 'Ei saa olla enempää kuin {0}',
+        bothMessage: 'On oltava välillä {0} ja {1}'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Ei ole kelvollinen CIDR-lohko'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Ei ole kelvollinen CIDR-lohko'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Ei ole kelvollinen valuutan määrä'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Ei ole kelvollinen päivämäärä"
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Ei ole kelvollinen päivämäärä ja kellonaika'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Ei ole kelvollinen sähköpostiosoite'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Onko arvo jätetty pois'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Sillä on väärä muoto'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Ei ole kelvollinen IP-osoite'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Se ei ole hyväksyttävien arvojen luettelossa'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Pituuden on oltava vähintään {0}',
+        maxOnlyMessage: 'Pituuden on oltava enintään {0}',
+        bothMessage: 'Pituuden on oltava välillä {0} ja {1}'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Ei ole kelvollinen numero'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Ei ole kelvollinen puhelinnumero'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'On oltava läsnä'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Sen on oltava numeerinen',
+        minOnlyMessage: 'On oltava vähintään {0}',
+        maxOnlyMessage: 'Ei saa olla enempää kuin {0}',
+        bothMessage: 'On oltava välillä {0} ja {1}'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Ei ole kelvollinen kellonaika'
+    }
+});
+Ext.define('Ext.locale.fi.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Ei ole kelvollinen URL-osoite'
+    }
+});
+Ext.define('Ext.locale.fi.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Ladataan...'
+    }
+});
+Ext.define("Ext.locale.fi.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "tietoja ei näytetä"
+    }
+});
+Ext.define('Ext.locale.fi.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Ei näytettäviä tietoja'
+    }
+});
+Ext.define('Ext.locale.fi.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Ladataan...'
+    }
+});
+Ext.define('Ext.locale.fi.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Lataa lisää ...',
+        noMoreRecordsText: 'ei muita tallenteita'
+    }
+});
+/**
+ * Finnish Translations
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ["tammikuu", "helmikuu", "maaliskuu", "huhtikuu", "toukokuu",
+                               "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu",
+                               "marraskuu", "joulukuu"];
+
+        Ext.Date.getShortMonthName = function(month) {
+            return (month + 1) + ".";
+        };
+
+        Ext.Date.monthNumbers = {
+            'tammikuu': 0,
+            'helmikuu': 1,
+            'maaliskuu': 2,
+            'huhtikuu': 3,
+            'toukokuu': 4,
+            'kesäkuu': 5,
+            'heinäkuu': 6,
+            'elokuu': 7,
+            'syyskuu': 8,
+            'lokakuu': 9,
+            'marraskuu': 10,
+            'joulukuu': 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            if (name.match(/^(1?\d)\./)) {
+                return -1 + RegExp.$1;
+            }
+            else {
+                return Ext.Date.monthNumbers[name];
+            }
+        };
+
+        Ext.Date.dayNames = ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai",
+                             "perjantai", "lauantai"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 2);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // Finnish Euro
+            dateFormat: 'j.n.Y'
+        });
+
+        Ext.util.Format.date = function(v, format) {
+            if (!v) {
+                return "";
+            }
+
+            if (!(v instanceof Date)) {
+                v = new Date(Date.parse(v));
+            }
+
+            return Ext.Date.format(v, format || "j.n.Y");
+        };
+
+    }
+});
+
+Ext.define('Ext.locale.fi.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Tämän kentän päivämäärän tulee olla {0} jälkeen',
+    maxDateMessage: 'Tämän kentän päivämäärän tulee olla ennen {0}'
+});
+Ext.define('Ext.locale.fi.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Tämä kenttä on pakollinen',
+        validationMessage: 'on väärässä muodossa'
+    }
+});
+Ext.define("Ext.locale.fi.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'arkisto ...'
+    }
+});
+Ext.define('Ext.locale.fi.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Suurin desimaaliluku on (0)',
+    minValueText: 'Tämän kentän pienin sallittu arvo on {0}',
+    maxValueText: 'Tämän kentän suurin sallittu arvo on {0}',
+    badFormatMessage: '{0} ei ole numero'
+});
+Ext.define('Ext.locale.fi.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Arvo ei vastaa vaadittua muotoa',
+    config: {
+        requiredMessage: 'Tämä kenttä on pakollinen',
+        validationMessage: 'on väärässä muodossa'
+    }
+});
+Ext.define("Ext.locale.fi.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Suodatin"
+    }
+});
+Ext.define("Ext.locale.fi.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'alue'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'lukittu (vasen)'
+            },
+            center: {
+                menuLabel: 'lukittu'
+            },
+            right: {
+                menuLabel: 'lukittu (oikea)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.fi.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Sarakkeet"
+    }
+});
+Ext.define("Ext.locale.fi.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Ryhmä tähän"
+    }
+});
+Ext.define("Ext.locale.fi.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Näytä ryhmissä"
+    }
+});
+Ext.define("Ext.locale.fi.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Järjestä A-Ö"
+    }
+});
+Ext.define("Ext.locale.fi.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Järjestä Ö-A"
+    }
+});
+Ext.define("Ext.locale.fi.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} rivi(ä) valittu"
+});
+Ext.define('Ext.locale.fi.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Sulje paneeli",
+        expandToolText: "Laajenna paneeli"
+    }
+});
+Ext.define('Ext.locale.fi.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Seuraava kuukausi (Control+oikealle)',
+        prevText: 'Edellinen kuukausi (Control+vasemmalle)',
+        buttons: {
+            footerTodayButton: {
+                text: "Tänään"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.nl.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'valmis',
+        monthText: 'Kuukausi',
+        dayText: 'päivä',
+        yearText: 'vuosi'
+    }
+});
+Ext.define('Ext.locale.fi.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: '',
+        cancelButton: 'Peruuta'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-fi.js


+ 512 - 0
assets/ext-7.4/modern/locale/locale-fr-debug.js

@@ -0,0 +1,512 @@
+/**
+ * France (France) translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.shortMonthNames = [
+            "Janv", "Févr", "Mars", "Avr", "Mai", "Juin", "Juil", "Août", "Sept", "Oct", "Nov",
+            "Déc"
+        ];
+
+        Ext.Date.defaultFormat = 'd/m/Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.shortMonthNames[month];
+        };
+
+        Ext.Date.monthNames = [
+            "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre",
+            "Octobre", "Novembre", "Décembre"
+        ];
+
+        Ext.Date.monthNumbers = {
+            "Janvier": 0,
+            "Janv": 0,
+            "Février": 1,
+            "Févr": 1,
+            "Mars": 2,
+            "Avril": 3,
+            "Avr": 3,
+            "Mai": 4,
+            "Juin": 5,
+            "Juillet": 6,
+            "Juil": 6,
+            "Août": 7,
+            "Septembre": 8,
+            "Sept": 8,
+            "Octobre": 9,
+            "Oct": 9,
+            "Novembre": 10,
+            "Nov": 10,
+            "Décembre": 11,
+            "Déc": 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[Ext.util.Format.capitalize(name)];
+        };
+
+        Ext.Date.dayNames = [
+            "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
+        ];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+
+        Ext.Date.parseCodes.S.s = "(?:er)";
+
+        Ext.Date.getSuffix = function() {
+            return (this.getDate() === 1) ? "er" : "";
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // French Euro
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.fr.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'Ok'
+            },
+            abort: {
+                text: 'Arrêter'
+            },
+            retry: {
+                text: 'Re-essayer'
+            },
+            ignore: {
+                text: 'Ignorer'
+            },
+            yes: {
+                text: 'Oui'
+            },
+            no: {
+                text: 'Non'
+            },
+            cancel: {
+                text: 'Annuler'
+            },
+            apply: {
+                text: 'Appliquer'
+            },
+            save: {
+                text: 'Sauvegarder'
+            },
+            submit: {
+                text: 'Soumettre'
+            },
+            help: {
+                text: 'Aide'
+            },
+            close: {
+                text: 'Fermer'
+            }
+        },
+        closeToolText: 'Fermer la fenêtre'
+    }
+});
+
+Ext.define('Ext.locale.fr.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Prêt',
+        monthText: 'Mois',
+        dayText: 'Jour',
+        yearText: 'Année'
+    }
+});
+
+Ext.define('Ext.locale.fr.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Terminé',
+        cancelButton: 'Annuler'
+    }
+});
+
+Ext.define('Ext.locale.fr.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Mois prochain (Control + droite)',
+        prevText: 'Mois précédent (Control +gauche)',
+        buttons: {
+            footerTodayButton: {
+                text: "Aujourd'hui"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.fr.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Réduire la fenêtre",
+        expandToolText: "Elargir la fenêtre"
+    }
+});
+
+Ext.define('Ext.locale.fr.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Ce champ est obligatoire',
+        validationMessage: "Ce format n'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Le nombre maximum de décimales est de  {0}',
+    minValueText: 'La valeur minimale de ce champ est de {0}',
+    maxValueText: 'La valeur maximale de ce champ est de {0}',
+    badFormatMessage: 'La valeur ne correspond pas au format requis'
+});
+
+Ext.define('Ext.locale.fr.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'La valeur ne correspond pas au format requis',
+    config: {
+        requiredMessage: 'Ce champ est obligatoire',
+        validationMessage: "Ce format n'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Agrandir en plein écran"
+        },
+        restoreTool: {
+            tooltip: "Restaurer à la taille d'origine"
+        }
+    }
+});
+
+Ext.define("Ext.locale.fr.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Feuilleter...'
+    }
+});
+
+Ext.define('Ext.locale.fr.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Chargement...'
+    }
+});
+
+Ext.define('Ext.locale.fr.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Pas de date à afficher'
+    }
+});
+
+Ext.define('Ext.locale.fr.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Chargement...'
+    }
+});
+
+Ext.define("Ext.locale.fr.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Chargement...'
+    }
+});
+
+Ext.define('Ext.locale.fr.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: "Telecharger plus..",
+        noMoreRecordsText: 'Plus de dossiers'
+    }
+});
+
+Ext.define("Ext.locale.fr.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.fr.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'La date indiquée dans ce champ doit être égale à ou après {0}',
+    maxDateMessage: 'La date indiquée dans ce champ doit être égale à ou avant {0}'
+});
+
+Ext.define("Ext.locale.fr.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Trier en ordre croissant"
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Trier en ordre décroissant"
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Grouper selon ce champ"
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Montrer en groupe"
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colonnes"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Presence obligatoire'
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: "Ce format n'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: "N'est pas une adresse email valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: "N'est pas un numéro de téléphone valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: "N'est pas un nombre valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: "N'est pas un URL valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Doit être un chiffre',
+        minOnlyMessage: 'Doit être au moins {0}',
+        maxOnlyMessage: 'Ne doit pas être plus que {0}',
+        bothMessage: 'Doit être entre {0} Et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Presence obligatoire',
+        minOnlyMessage: 'La valeur doit être supérieure à {0}',
+        maxOnlyMessage: 'La valeur doit être inférieure à {0}',
+        bothMessage: 'La valeur doit être comprise entre {0} et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: "N'est pas un bloc CIDR valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: "N'est pas un bloc CIDR valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: "N'est pas un montant devises valide"
+    }
+
+});
+
+Ext.define('Ext.locale.fr.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: "N'est pas une heure et date valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Est une valeur qui a été exclue'
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: "N'est pas une adresse IP valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: "N'est pas dans la liste de valeurs acceptables"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: "N'est pas un moment valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "N'est pas une date valide"
+    }
+});
+
+Ext.define('Ext.locale.fr.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'La longueur doit être au moins {0}',
+        maxOnlyMessage: 'La longueur ne doit pas être plus que {0}',
+        bothMessage: 'La longueur doit être entre {0} Et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Annuler'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.fr.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.fr.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "filtre"
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Région'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Fermé à clef (Gauche)'
+            },
+            center: {
+                menuLabel: 'Débloqué'
+            },
+            right: {
+                menuLabel: 'Fermé à clef (Droite)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.fr.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} ligne{1} sélectionnée{1}"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-fr.js


+ 506 - 0
assets/ext-7.4/modern/locale/locale-fr_CA-debug.js

@@ -0,0 +1,506 @@
+/**
+ * France (Canadian) translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.shortMonthNames = [
+            "Janv", "Févr", "Mars", "Avr", "Mai", "Juin", "Juil", "Août", "Sept", "Oct", "Nov",
+            "Déc"
+        ];
+
+        Ext.Date.defaultFormat = 'd/m/Y';
+        Ext.Date.defaultTimeFormat = 'h:i A';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.shortMonthNames[month];
+        };
+
+        Ext.Date.monthNames = [
+            "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre",
+            "Octobre", "Novembre", "Décembre"
+        ];
+
+        Ext.Date.monthNumbers = {
+            "Janvier": 0,
+            "Janv": 0,
+            "Février": 1,
+            "Févr": 1,
+            "Mars": 2,
+            "Avril": 3,
+            "Avr": 3,
+            "Mai": 4,
+            "Juin": 5,
+            "Juillet": 6,
+            "Juil": 6,
+            "Août": 7,
+            "Septembre": 8,
+            "Sept": 8,
+            "Octobre": 9,
+            "Oct": 9,
+            "Novembre": 10,
+            "Nov": 10,
+            "Décembre": 11,
+            "Déc": 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[Ext.util.Format.capitalize(name)];
+        };
+
+        Ext.Date.dayNames = [
+            "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
+        ];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '$',
+            // Canadian Dollar
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+// Update with French Canadian text TODO
+Ext.define('Ext.locale.fr_CA.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'Ok'
+            },
+            abort: {
+                text: 'Arrêter'
+            },
+            retry: {
+                text: 'Re-essayer'
+            },
+            ignore: {
+                text: 'Ignorer'
+            },
+            yes: {
+                text: 'Oui'
+            },
+            no: {
+                text: 'Non'
+            },
+            cancel: {
+                text: 'Annuler'
+            },
+            apply: {
+                text: 'Appliquer'
+            },
+            save: {
+                text: 'Sauvegarder'
+            },
+            submit: {
+                text: 'Soumettre'
+            },
+            help: {
+                text: 'Aide'
+            },
+            close: {
+                text: 'Fermer'
+            }
+        },
+        closeToolText: 'Fermer la fenêtre'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Prêt',
+        monthText: 'Mois',
+        dayText: 'Jour',
+        yearText: 'Année'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Terminé',
+        cancelButton: 'Annuler'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Mois prochain (Control + droite)',
+        prevText: 'Mois précédent (Control +gauche)',
+        buttons: {
+            footerTodayButton: {
+                text: "Aujourd'hui"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Réduire la fenêtre",
+        expandToolText: "Elargir la fenêtre"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Ce champ est obligatoire',
+        validationMessage: "Ce format N'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Le nombre maximum de décimales est de  {0}',
+    minValueText: 'La valeur minimale de ce champ est de {0}',
+    maxValueText: 'La valeur maximale de ce champ est de {0}',
+    badFormatMessage: 'La valeur ne correspond pas au format requis'
+});
+
+Ext.define('Ext.locale.fr_CA.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'La valeur ne correspond pas au format requis',
+    config: {
+        requiredMessage: 'Ce champ est obligatoire',
+        validationMessage: "Ce format N'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Agrandir en plein écran"
+        },
+        restoreTool: {
+            tooltip: "Restaurer à la taille d'origine"
+        }
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Feuilleter...'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Chargement...'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Pas de date à afficher'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Chargement...'
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Chargement...'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: "Telecharger plus..",
+        noMoreRecordsText: 'Plus de dossiers'
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'La date indiquée dans ce champ doit être égale à ou après {0}',
+    maxDateMessage: 'La date indiquée dans ce champ doit être égale à ou avant {0}'
+});
+
+Ext.define("Ext.locale.fr_CA.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Trier en ordre croissant"
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Trier en ordre décroissant"
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Grouper selon ce champ"
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Montrer en groupe"
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colonnes"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Presence obligatoire'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: "Ce format N'est pas le bon"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: "N'est pas une adresse email valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: "N'est pas un numéro de téléphone valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: "N'est pas un nombre valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: "N'est pas un URL valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Doit être un chiffre',
+        minOnlyMessage: 'Doit être au moins {0}',
+        maxOnlyMessage: 'Ne doit pas être plus que {0}',
+        bothMessage: 'Doit être entre {0} Et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Presence obligatoire',
+        minOnlyMessage: 'La valeur doit être supérieure à {0}',
+        maxOnlyMessage: 'La valeur doit être inférieure à {0}',
+        bothMessage: 'La valeur doit être comprise entre {0} et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: "N'est pas un bloc CIDR valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: "N'est pas un bloc CIDR valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: "N'est pas un montant devises valide"
+    }
+
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: "N'est pas une heure et date valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Est une valeur qui a été exclue'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: "N'est pas une adresse IP valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: "N'est pas dans la liste de valeurs acceptables"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: "N'est pas un moment valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "N'est pas une date valide"
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'La longueur doit être au moins {0}',
+        maxOnlyMessage: 'La longueur ne doit pas être plus que {0}',
+        bothMessage: 'La longueur doit être entre {0} Et {1}'
+    }
+});
+
+Ext.define('Ext.locale.fr_CA.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Annuler'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.fr_CA.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.fr_CA.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "filtre"
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Région'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Fermé à clef (Gauche)'
+            },
+            center: {
+                menuLabel: 'Débloqué'
+            },
+            right: {
+                menuLabel: 'Fermé à clef (Droite)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.fr_CA.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} ligne(s) sélectionné(s)"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-fr_CA.js


+ 448 - 0
assets/ext-7.4/modern/locale/locale-it-debug.js

@@ -0,0 +1,448 @@
+Ext.define('Ext.locale.it.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Annulla'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.it.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.it.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maksimer til fuldskærm"
+        },
+        restoreTool: {
+            tooltip: "Gendan til originalstørrelse"
+        }
+    }
+});
+Ext.define("Ext.locale.it.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Caricamento...'
+    }
+});
+Ext.define('Ext.locale.it.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'Ok'
+            },
+            abort: {
+                text: 'Interrompere'
+            },
+            retry: {
+                text: 'Riprovare'
+            },
+            ignore: {
+                text: 'Ignora'
+            },
+            yes: {
+                text: 'Si'
+            },
+            no: {
+                text: 'No'
+            },
+            cancel: {
+                text: 'Cancella'
+            },
+            apply: {
+                text: 'Applica'
+            },
+            save: {
+                text: 'Salva'
+            },
+            submit: {
+                text: 'Invia'
+            },
+            help: {
+                text: 'Aiuto'
+            },
+            close: {
+                text: 'Chiudi'
+            }
+        },
+        closeToolText: 'Chiudi pannello'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Deve essere disponibile',
+        minOnlyMessage: 'Il valore deve essere maggiore di {0}',
+        maxOnlyMessage: 'Il valore deve essere inferiore a {0}',
+        bothMessage: 'Il valore deve essere compreso tra {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Non è un CIDR block valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Non è un CIDR block valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Importo valuta non valido'
+    }
+
+});
+Ext.define('Ext.locale.it.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Data non valida"
+    }
+});
+Ext.define('Ext.locale.it.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Data e orario non valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Non è un indirizzo email valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'È un valore che è stato escluso'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'È nel formato sbagliato'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Non è un indirizzo IP valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Non sta nella lista dei valori validi'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'La lunghezza deve essere almeno {0}',
+        maxOnlyMessage: 'La lunghezza deve essere inferiore a {0}',
+        bothMessage: 'La lunghezza deve essere tra {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Non è un numero valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Non è un numero di telefono valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Deve essere presente'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Deve essere un valore numerico',
+        minOnlyMessage: 'Deve essere almeno {0}',
+        maxOnlyMessage: 'Non deve essere più di {0}',
+        bothMessage: 'Deve essere tra {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Non è un tempo valido'
+    }
+});
+Ext.define('Ext.locale.it.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Non è un url valido'
+    }
+});
+Ext.define('Ext.locale.it.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Caricamento...'
+    }
+});
+Ext.define("Ext.locale.it.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "nessun dato da visualizzare"
+    }
+});
+Ext.define('Ext.locale.it.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Nessun dato da visualizzare'
+    }
+});
+Ext.define('Ext.locale.it.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Caricamento...'
+    }
+});
+Ext.define('Ext.locale.it.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Carica di più...',
+        noMoreRecordsText: 'Nessun dato'
+    }
+});
+/**
+ * Italian translation
+ */
+Ext.onReady(function() {
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto",
+            "Settembre", "Ottobre", "Novembre", "Dicembre"
+        ];
+
+        Ext.Date.defaultFormat = 'd/m/Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Gen: 0,
+            Feb: 1,
+            Mar: 2,
+            Apr: 3,
+            Mag: 4,
+            Giu: 5,
+            Lug: 6,
+            Ago: 7,
+            Set: 8,
+            Ott: 9,
+            Nov: 10,
+            Dic: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+                .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = [
+            "Domenica", "Lunedi", "Martedi", "Mercoledi", "Giovedi", "Venerdi", "Sabato"
+        ];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac', // Euro
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.it.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'La data in questo campo deve essere uguale o successivo a {0}',
+    maxDateMessage: 'La data in questo campo deve essere uguale o precedente a {0}'
+});
+Ext.define('Ext.locale.it.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Questo campo è obbligatorio',
+        validationMessage: 'È nel formato sbagliato'
+    }
+});
+Ext.define("Ext.locale.it.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Navigare...'
+    }
+});
+Ext.define('Ext.locale.it.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'El número máximo de decimales es  {0}',
+    minValueText: 'Il valore minimo per questo campo è {0}',
+    maxValueText: 'Il valore massimo per questo campo è {0}',
+    badFormatMessage: 'Il valore non è un numero valido'
+});
+Ext.define('Ext.locale.it.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Il valore non corrisponde al formato richiesto',
+    config: {
+        requiredMessage: 'Questo campo è obbligatorio',
+        validationMessage: 'È nel formato sbagliato'
+    }
+});
+Ext.define("Ext.locale.it.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filtro"
+    }
+});
+Ext.define("Ext.locale.it.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Regione'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Bloccato (Sinistra)'
+            },
+            center: {
+                menuLabel: 'Sbloccato'
+            },
+            right: {
+                menuLabel: 'Bloccato (Destra)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.it.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colonne"
+    }
+});
+Ext.define("Ext.locale.it.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Raggruppa per questo campo"
+    }
+});
+Ext.define("Ext.locale.it.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Mostra in gruppi"
+    }
+});
+Ext.define("Ext.locale.it.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Ordine crescente"
+    }
+});
+Ext.define("Ext.locale.it.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Ordine decrescente"
+    }
+});
+Ext.define("Ext.locale.it.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} Righe selezionate"
+});
+Ext.define('Ext.locale.it.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Riduci pannello",
+        expandToolText: "Espandi pannello"
+    }
+});
+Ext.define('Ext.locale.it.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Mese successivo (control+destra)',
+        prevText: 'Mese precedente (control+sinistra)',
+        buttons: {
+            footerTodayButton: {
+                text: "Oggi"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.it.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Pronto',
+        monthText: 'Mese',
+        dayText: 'Giorno',
+        yearText: 'Anno'
+    }
+});
+Ext.define('Ext.locale.it.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Fatto',
+        cancelButton: 'Cancella'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-it.js


+ 460 - 0
assets/ext-7.4/modern/locale/locale-ja-debug.js

@@ -0,0 +1,460 @@
+Ext.define('Ext.locale.ja.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'キャンセル'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.ja.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.ja.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "全画面表示に最大化"
+        },
+        restoreTool: {
+            tooltip: "元のサイズに復元"
+        }
+    }
+});
+Ext.define("Ext.locale.ja.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: '読み込み中...'
+    }
+});
+Ext.define('Ext.locale.ja.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'やめる'
+            },
+            retry: {
+                text: 'リトライ'
+            },
+            ignore: {
+                text: '無視する'
+            },
+            yes: {
+                text: 'はい'
+            },
+            no: {
+                text: 'いいえ'
+            },
+            cancel: {
+                text: 'キャンセル'
+            },
+            apply: {
+                text: '適用する'
+            },
+            save: {
+                text: '保存する'
+            },
+            submit: {
+                text: '提出する'
+            },
+            help: {
+                text: '助けて'
+            },
+            close: {
+                text: '閉じる'
+            }
+        },
+        closeToolText: 'Panel 閉じる'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: '存在する必要があります',
+        minOnlyMessage: '少なくとも{0}にする必要があります',
+        maxOnlyMessage: '{0}以下にする必要があります',
+        bothMessage: '値は{0}と{1}の間になければなりません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: '有効なCIDRブロックではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: '有効なCIDRブロックではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: '有効な通貨金額ではありません'
+    }
+
+});
+Ext.define('Ext.locale.ja.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "有効な日付ではありません"
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: '有効な日時ではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: '有効なメールアドレスではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: '除外された値です'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'フォーマットが違います'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: '有効なIPアドレスではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: '許容値のリストに含まれていません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: '長さは少なくとも{0}でなければなりません',
+        maxOnlyMessage: '長さは{0}を超えてはいけません',
+        bothMessage: '長さは{0}と{1}の間でなければなりません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: '数字ではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: '有効な電話番号ではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: '存在している必要があります'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: '数値でなければなりません',
+        minOnlyMessage: '少なくとも{0}にする必要があります',
+        maxOnlyMessage: '{0}以下にする必要があります',
+        bothMessage: '値は{0}と{1}の間になければなりません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: '有効な時間ではありません'
+    }
+});
+Ext.define('Ext.locale.ja.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: '有効なURLではありません'
+    }
+});
+Ext.define('Ext.locale.ja.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: '読み込み中...'
+    }
+});
+Ext.define("Ext.locale.ja.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "表示するデータがありません"
+    }
+});
+Ext.define('Ext.locale.ja.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: '表示するデータがありません'
+    }
+});
+Ext.define('Ext.locale.ja.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: '読み込み中...'
+    }
+});
+Ext.define('Ext.locale.ja.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'さらに読み込む...',
+        noMoreRecordsText: 'これ以上レコードがない'
+    }
+});
+/**
+ * Japanese translation
+ */
+Ext.onReady(function() {
+    var parseCodes;
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月',
+                               '10月', '11月', '12月'];
+
+        Ext.Date.defaultFormat = 'd.m.Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return "" + (month + 1);
+        };
+
+        Ext.Date.monthNumbers = {
+            "1": 0,
+            "2": 1,
+            "3": 2,
+            "4": 3,
+            "5": 4,
+            "6": 5,
+            "7": 6,
+            "8": 7,
+            "9": 8,
+            "10": 9,
+            "11": 10,
+            "12": 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, name.length - 1)];
+            // or simply parseInt(name.substring(0, name.length - 1)) - 1
+        };
+
+        Ext.Date.dayNames = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 1); // just remove "曜日" suffix
+        };
+
+        Ext.Date.formatCodes.a = "(this.getHours() < 12 ? '午前' : '午後')";
+        Ext.Date.formatCodes.A = "(this.getHours() < 12 ? '午前' : '午後')"; // no case difference
+
+        parseCodes = {
+            g: 1,
+            c: "if (/(午前)/i.test(results[{0}])) {\n" +
+                "if (!h || h == 12) { h = 0; }\n" +
+                "} else { if (!h || h < 12) { h = (h || 0) + 12; }}",
+            s: "(午前|午後)",
+            calcAtEnd: true
+        };
+
+        Ext.Date.parseCodes.a = Ext.Date.parseCodes.A = parseCodes;
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: ',',
+            decimalSeparator: '.',
+            currencySign: '\u00a5',
+            // Japanese Yen
+            dateFormat: 'Y/m/d'
+        });
+    }
+});
+Ext.define('Ext.locale.ja.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'このフィールドの日付は、 {0} 以降の日付に設定してください。',
+    maxDateMessage: 'このフィールドの日付は、 {0} 以前の日付に設定してください。'
+});
+Ext.define('Ext.locale.ja.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'このフィールドは必須です',
+        validationMessage: '形式が間違っています'
+    }
+});
+Ext.define("Ext.locale.ja.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: '参照...'
+    }
+});
+Ext.define('Ext.locale.ja.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'このフィールドの最小値は {0} です。',
+    minValueText: 'このフィールドの最小値は {0} です。',
+    maxValueText: 'このフィールドの最大値は {0} です。',
+    badFormatMessage: '{0} は数値ではありません。'
+});
+Ext.define('Ext.locale.ja.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: '値が必要なフォーマットと一致しません',
+    config: {
+        requiredMessage: 'このフィールドは必須です',
+        validationMessage: '形式が間違っています'
+    }
+});
+Ext.define("Ext.locale.ja.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "フィルタ"
+    }
+});
+Ext.define("Ext.locale.ja.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: '領域'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'ロック(左)'
+            },
+            center: {
+                menuLabel: 'ロック解除'
+            },
+            right: {
+                menuLabel: 'ロック(右)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.ja.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "カラム"
+    }
+});
+Ext.define("Ext.locale.ja.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "これでグループ化する"
+    }
+});
+Ext.define("Ext.locale.ja.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "グループで表示"
+    }
+});
+Ext.define("Ext.locale.ja.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "昇順"
+    }
+});
+Ext.define("Ext.locale.ja.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "降順"
+    }
+});
+Ext.define("Ext.locale.ja.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} 行選択"
+});
+Ext.define('Ext.locale.ja.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "パネルを閉じる",
+        expandToolText: "パネルを開く"
+    }
+});
+Ext.define('Ext.locale.ja.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: '次月へ (コントロール+右)',
+        prevText: '前月へ (コントロール+左)',
+        buttons: {
+            footerTodayButton: {
+                text: "今日"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.ja.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'done',
+        monthText: '月',
+        dayText: '日',
+        yearText: '年'
+    }
+});
+Ext.define('Ext.locale.ja.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'done',
+        cancelButton: 'キャンセル'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-ja.js


+ 413 - 0
assets/ext-7.4/modern/locale/locale-ko-debug.js

@@ -0,0 +1,413 @@
+Ext.define('Ext.locale.ko.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: '확인',
+    cancelButtonText: '취소'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.ko.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.ko.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "전체 화면으로 최대화"
+        },
+        restoreTool: {
+            tooltip: "원래 크기로 복원 "
+        }
+    }
+});
+Ext.define("Ext.locale.ko.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: '로딩중...'
+    }
+});
+Ext.define('Ext.locale.ko.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: '중단'
+            },
+            retry: {
+                text: '다시 해 보다'
+            },
+            ignore: {
+                text: '무시'
+            },
+            yes: {
+                text: '예'
+            },
+            no: {
+                text: '아니오'
+            },
+            cancel: {
+                text: '취소'
+            },
+            apply: {
+                text: '적용'
+            },
+            save: {
+                text: '저장'
+            },
+            submit: {
+                text: '제출'
+            },
+            help: {
+                text: '도와'
+            },
+            close: {
+                text: '閉じる'
+            }
+        },
+        closeToolText: 'Panel 閉じる'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: '存在する必要があります',
+        minOnlyMessage: '적어도 {0} 이상이어야합니다.',
+        maxOnlyMessage: '{0}보다 크지 않아야합니다.',
+        bothMessage: '값은 {0}에서 {1} 사이에 해야 합니다 '
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: '유효한 CIDR 블록이 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: '유효한 CIDR 블록이 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: '유효한 통화 금액이 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "유효한 날짜가 아닙니다."
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: '유효한 날짜 및 시간이 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: '유효한 이메일 주소가 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: '제외 된 가치인가요?'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: '형식이 다릅니다'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: '유효한 IP 주소가 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: '허용 되는 값 목록에 포함 되어 있지 않습니다. '
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: '길이는 적어도 {0} 이상이어야합니다.',
+        maxOnlyMessage: '길이는 {0}보다 커야합니다.',
+        bothMessage: '길이는 {0}에서 {1} 사이 여야합니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: '숫자가 아닙니다'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: '올바른 전화 번호가 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: '반드시 존재해야합니다'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: '숫자로 해야 합니다 ',
+        minOnlyMessage: '적어도 {0} 이상이어야합니다.',
+        maxOnlyMessage: '{0}보다 크지 않아야합니다.',
+        bothMessage: '값은 {0}에서 {1} 사이에 해야 합니다 '
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: '유효한 시간이 아닙니다'
+    }
+});
+Ext.define('Ext.locale.ko.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: '유효한 URL이 아닙니다.'
+    }
+});
+Ext.define('Ext.locale.ko.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: '로딩중...'
+    }
+});
+Ext.define("Ext.locale.ko.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "표시 할 데이터가 없습니다"
+    }
+});
+Ext.define('Ext.locale.ko.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: '표시 할 내용이 없습니다'
+    }
+});
+Ext.define('Ext.locale.ko.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: '로딩중...'
+    }
+});
+Ext.define('Ext.locale.ko.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: '추가로드 ...',
+        noMoreRecordsText: '더 이상 레코드 없음'
+    }
+});
+/**
+ * Korean translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월",
+                               "10월", "11월", "12월"];
+
+        Ext.Date.dayNames = ["일", "월", "화", "수", "목", "금", "토"];
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: ',',
+            decimalSeparator: '.',
+            currencySign: '\u20a9',
+            // Korean Won
+            dateFormat: 'm/d/Y'
+        });
+    }
+});
+Ext.define('Ext.locale.ko.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: '이 필드의 날짜는 {0} 이후 날짜로 설정하십시오.',
+    maxDateMessage: '이 필드의 날짜는 {0} 이전 날짜로 설정하십시오.'
+});
+Ext.define('Ext.locale.ko.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: '이 필드는 필수입니다',
+        validationMessage: '형식이 잘못되었습니다'
+    }
+});
+Ext.define('Ext.locale.ko.field.FileButton', {
+    override: 'Ext.field.FileButton',
+
+    config: {
+        text: '리뷰 ...'
+    }
+});
+Ext.define('Ext.locale.ko.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: '이 필드의 최소값은 {0}입니다.',
+    minValueText: '최소값은 {0}입니다.',
+    maxValueText: '최대값은 {0}입니다.',
+    badFormatMessage: '{0}는 올바른 숫자가 아닙니다.'
+});
+Ext.define('Ext.locale.ko.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: '값이 필요한 형식과 일치하지 않습니다',
+    config: {
+        requiredMessage: '이 필드는 필수입니다',
+        validationMessage: '형식이 잘못되었습니다'
+    }
+});
+Ext.define("Ext.locale.ko.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "필터"
+    }
+});
+Ext.define('Ext.locale.ko.grid.locked.Grid', {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: '부위'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: '잠김 (왼쪽)'
+            },
+            center: {
+                menuLabel: '잠김 해제'
+            },
+            right: {
+                menuLabel: '잠김 (오른쪽)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.ko.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "칼럼 목록"
+    }
+});
+Ext.define("Ext.locale.ko.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "이 항목별로 그룹화"
+    }
+});
+Ext.define("Ext.locale.ko.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "그룹으로 표시"
+    }
+});
+Ext.define("Ext.locale.ko.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "오름차순 정렬"
+    }
+});
+Ext.define("Ext.locale.ko.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "내림차순 정렬"
+    }
+});
+Ext.define("Ext.locale.ko.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} 개가 선택되었습니다."
+});
+Ext.define('Ext.locale.ko.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "패널 닫기",
+        expandToolText: "패널 열기"
+    }
+});
+Ext.define('Ext.locale.ko.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: '다음달(컨트롤키+오른쪽 화살표)',
+        prevText: '이전달 (컨트롤키+왼족 화살표)',
+        buttons: {
+            footerTodayButton: {
+                text: "오늘"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.ko.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'done',
+        monthText: '월',
+        dayText: '일',
+        yearText: '년'
+    }
+});
+Ext.define('Ext.locale.ko.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'done',
+        cancelButton: '취소'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-ko.js


+ 455 - 0
assets/ext-7.4/modern/locale/locale-nl-debug.js

@@ -0,0 +1,455 @@
+Ext.define('Ext.locale.nl.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Annuleren'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.nl.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.nl.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximaliseren naar volledig scherm"
+        },
+        restoreTool: {
+            tooltip: "herstellen naar origineel formaat"
+        }
+    }
+});
+Ext.define("Ext.locale.nl.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Bezig met laden...'
+    }
+});
+Ext.define('Ext.locale.nl.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Afbreken'
+            },
+            retry: {
+                text: 'opnieuw proberen'
+            },
+            ignore: {
+                text: 'Negeren'
+            },
+            yes: {
+                text: 'Ja'
+            },
+            no: {
+                text: 'Nee'
+            },
+            cancel: {
+                text: 'annuleren'
+            },
+            apply: {
+                text: 'Van toepassing zijn'
+            },
+            save: {
+                text: 'Opslaan'
+            },
+            submit: {
+                text: 'voorleggen'
+            },
+            help: {
+                text: 'Helpen'
+            },
+            close: {
+                text: 'Sluiten'
+            }
+        },
+        closeToolText: 'Sluiten Panel'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Moet aanwezig zijn',
+        minOnlyMessage: 'Moet ten minste {0} zijn',
+        maxOnlyMessage: 'Moet niet meer zijn dan {0}',
+        bothMessage: 'Moet tussen {0} en {1} liggen'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Is geen geldig CIDR-blok'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Is geen geldig CIDR-blok'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Is geen geldig valutabedrag'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Is geen geldige datum"
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Is geen geldige datum en tijd'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Is geen geldig e-mailadres'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Is een waarde die is uitgesloten'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Het heeft de verkeerde indeling'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Is geen geldig IP-adres'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Het staat niet in de lijst met aanvaardbare waarden'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'De lengte moet ten minste {0} zijn',
+        maxOnlyMessage: 'Lengte mag niet meer zijn dan {0}',
+        bothMessage: 'De lengte moet liggen tussen {0} en {1}'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Is geen geldig nummer'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Is geen geldig telefoonnummer'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Moet aanwezig zijn'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Het moet numeriek zijn',
+        minOnlyMessage: 'Moet ten minste {0} zijn',
+        maxOnlyMessage: 'Moet niet meer zijn dan {0}',
+        bothMessage: 'Moet tussen {0} en {1} liggen'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Is geen geldige tijd'
+    }
+});
+Ext.define('Ext.locale.nl.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Is geen geldige URL'
+    }
+});
+Ext.define('Ext.locale.nl.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Bezig met laden...'
+    }
+});
+Ext.define("Ext.locale.nl.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "geen gegevens om weer te geven"
+    }
+});
+Ext.define('Ext.locale.nl.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'geen gegevens om weer te geven'
+    }
+});
+Ext.define('Ext.locale.nl.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Bezig met laden...'
+    }
+});
+Ext.define('Ext.locale.nl.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Meer laden',
+        noMoreRecordsText: 'geen records meer opnemen'
+    }
+});
+/**
+ * Dutch Translations
+ */
+
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
+                               'juli', 'augustus', 'september', 'oktober', 'november', 'december'];
+
+        Ext.Date.getShortMonthName = function(month) {
+            // eslint-disable-next-line eqeqeq
+            if (month == 2) {
+                return 'mrt';
+            }
+
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            jan: 0,
+            feb: 1,
+            mrt: 2,
+            apr: 3,
+            mei: 4,
+            jun: 5,
+            jul: 6,
+            aug: 7,
+            sep: 8,
+            okt: 9,
+            nov: 10,
+            dec: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            var sname = name.substring(0, 3).toLowerCase();
+
+            if (sname === 'maa') {
+                return 2;
+            }
+
+            return Ext.Date.monthNumbers[sname];
+        };
+
+        Ext.Date.dayNames = ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag',
+                             'zaterdag'];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+
+        Ext.Date.parseCodes.S.s = "(?:ste|e)";
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // Dutch Euro
+            dateFormat: 'j-m-Y'
+        });
+    }
+});
+Ext.define('Ext.locale.nl.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'De datum in dit veld moet na {0} liggen',
+    maxDateMessage: 'De datum in dit veld moet voor {0} liggen'
+});
+Ext.define('Ext.locale.nl.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Dit veld is verplicht',
+        validationMessage: 'heeft de verkeerde indeling'
+    }
+});
+Ext.define("Ext.locale.nl.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Archief...'
+    }
+});
+Ext.define('Ext.locale.nl.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Het maximale decimale getal is (0)',
+    minValueText: 'De minimale waarde van dit veld is {0}',
+    maxValueText: 'De maximale cijfers achter de komma is {0}',
+    badFormatMessage: '{0} is geen geldig getal'
+});
+Ext.define('Ext.locale.nl.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Waarde komt niet overeen met het vereiste formaat',
+    config: {
+        requiredMessage: 'Dit veld is mogelijk niet leeg',
+        validationMessage: 'heeft de verkeerde indeling'
+    }
+});
+Ext.define("Ext.locale.nl.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filter"
+    }
+});
+Ext.define('Ext.locale.nl.grid.locked.Grid', {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Regio'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Vergrendeld (Links)'
+            },
+            center: {
+                menuLabel: 'Ontgrendeld'
+            },
+            right: {
+                menuLabel: 'Vergrendeld (Rechts)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.nl.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Kolommen"
+    }
+});
+Ext.define("Ext.locale.nl.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Groepeer op deze manier"
+    }
+});
+Ext.define("Ext.locale.nl.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Weergeven in groepen"
+    }
+});
+Ext.define("Ext.locale.nl.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Sorteer oplopend"
+    }
+});
+Ext.define("Ext.locale.nl.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Sorteer aflopend"
+    }
+});
+Ext.define("Ext.locale.nl.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: '{0} geselecteerde rij(en)'
+});
+Ext.define('Ext.locale.nl.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Venster sluiten",
+        expandToolText: "paneel Uitvouwen"
+    }
+});
+Ext.define('Ext.locale.nl.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Volgende maand (Ctrl+rechts)',
+        prevText: 'Vorige maand (Ctrl+links)',
+        buttons: {
+            footerTodayButton: {
+                text: "Vandaag"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.nl.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Gedaan',
+        monthText: 'Maand',
+        dayText: 'Dag',
+        yearText: 'Jaar'
+    }
+});
+Ext.define('Ext.locale.nl.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Gedaan',
+        cancelButton: 'Annuleren'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-nl.js


+ 442 - 0
assets/ext-7.4/modern/locale/locale-no_NB-debug.js

@@ -0,0 +1,442 @@
+Ext.define('Ext.locale.no_NB.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Avbryt'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.no_NB.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.no_NB.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maksimer til fullskjerm"
+        },
+        restoreTool: {
+            tooltip: "Gjenopprett til originalstørrelse"
+        }
+    }
+});
+Ext.define("Ext.locale.no_NB.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Laster...'
+    }
+});
+Ext.define('Ext.locale.no_NB.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Avbryte'
+            },
+            retry: {
+                text: 'Prøv på nytt'
+            },
+            ignore: {
+                text: 'Overse'
+            },
+            yes: {
+                text: 'Ja'
+            },
+            no: {
+                text: 'Nei'
+            },
+            cancel: {
+                text: 'Avbryt'
+            },
+            apply: {
+                text: 'Søke om'
+            },
+            save: {
+                text: 'Lagre'
+            },
+            submit: {
+                text: 'Sende inn'
+            },
+            help: {
+                text: 'Hjelp'
+            },
+            close: {
+                text: 'Lukk'
+            }
+        },
+        closeToolText: 'Lukk Panel'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Må være tilstede',
+        minOnlyMessage: 'Må være minst {0}',
+        maxOnlyMessage: 'Må ikke være mer enn {0}',
+        bothMessage: 'Må være mellom {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Er ikke en gyldig CIDR-blokk'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Er ikke en gyldig CIDR-blokk'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Er ikke et gyldig valuta beløp'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Er ikke en gyldig dato"
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Er ikke gyldig dato og klokkeslett'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Er ikke en gyldig e-postadresse'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Er en verdi som er utelukket'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Den har feil format'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Er ikke en gyldig IP-adresse'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Det er ikke på listen over akseptable verdier'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Lengden må være minst {0}',
+        maxOnlyMessage: 'Lengden må ikke være mer enn {0}',
+        bothMessage: 'Lengden må være mellom {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Er ikke et gyldig nummer'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Er ikke et gyldig telefonnummer'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Må være tilstede'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Det må være numerisk',
+        minOnlyMessage: 'Må være minst {0}',
+        maxOnlyMessage: 'Må verdien være mindre enn {0}',
+        bothMessage: 'Må være mellom {0} og {1}'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Er ikke en gyldig klokkeslett'
+    }
+});
+Ext.define('Ext.locale.no_NB.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Er ikke en gyldig nettadresse'
+    }
+});
+Ext.define('Ext.locale.no_NB.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Laster...'
+    }
+});
+Ext.define("Ext.locale.no_NB.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "ingen data som skal vises"
+    }
+});
+Ext.define('Ext.locale.no_NB.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'ingen data å vise'
+    }
+});
+Ext.define('Ext.locale.no_NB.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Laster...'
+    }
+});
+Ext.define('Ext.locale.no_NB.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Legg inn mer ...',
+        noMoreRecordsText: 'Ingen flere poster'
+    }
+});
+/**
+ * Norwegian Translations
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli",
+                               "August", "September", "Oktober", "November", "Desember"];
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Jan: 0,
+            Feb: 1,
+            Mar: 2,
+            Apr: 3,
+            Mai: 4,
+            Jun: 5,
+            Jul: 6,
+            Aug: 7,
+            Sep: 8,
+            Okt: 9,
+            Nov: 10,
+            Des: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+            .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag",
+                             "Lørdag"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: 'kr',
+            // Norwegian Krone
+            dateFormat: 'd.m.Y'
+        });
+    }
+});
+Ext.define('Ext.locale.no_NB.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Datoen i dette feltet må være etter {0}',
+    maxDateMessage: 'Datoen i dette feltet må være før {0}'
+});
+Ext.define('Ext.locale.no_NB.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Dette feltet er påkrevd',
+        validationMessage: 'Er i feil format'
+    }
+});
+Ext.define("Ext.locale.no_NB.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Arkiv ...'
+    }
+});
+Ext.define('Ext.locale.no_NB.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Maksimal desimaltall er (0)',
+    minValueText: 'Den minste verdien for dette feltet er {0}',
+    maxValueText: 'Den største verdien for dette feltet er {0}',
+    badFormatMessage: '{0} er ikke et gyldig nummer'
+});
+Ext.define('Ext.locale.no_NB.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Verdi stemmer ikke overens med det nødvendige formatet',
+    config: {
+        requiredMessage: 'Dette feltet er påkrevd',
+        validationMessage: 'Er i feil format'
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filter"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Region'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Låst (Venstre)'
+            },
+            center: {
+                menuLabel: 'Låst'
+            },
+            right: {
+                menuLabel: 'Låst (Høyre)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Kolonner"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Gruppe av dette"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Vis i grupper"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Sorter stigende"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Sorter synkende"
+    }
+});
+Ext.define("Ext.locale.no_NB.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} markert(e) rad(er)"
+});
+Ext.define('Ext.locale.no_NB.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Lukk panel",
+        expandToolText: "Utvid panel"
+    }
+});
+Ext.define('Ext.locale.no_NB.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Neste måned (Control+Pil Høyre)',
+        prevText: 'Forrige måned (Control+Pil Venstre)',
+        buttons: {
+            footerTodayButton: {
+                text: "I dag"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.no_NB.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'done',
+        monthText: 'Måned',
+        dayText: 'Dag',
+        yearText: 'ar'
+    }
+});
+Ext.define('Ext.locale.no_NB.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'done',
+        cancelButton: 'Avbryt'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-no_NB.js


+ 463 - 0
assets/ext-7.4/modern/locale/locale-pt-debug.js

@@ -0,0 +1,463 @@
+/**
+ * Portuguese/Brazil Translation
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Janeiro", "Fevereiro", "Mar&ccedil;o", "Abril", "Maio", "Junho", "Julho", "Agosto",
+            "Setembro", "Outubro", "Novembro", "Dezembro"
+        ];
+
+        Ext.Date.dayNames = [
+            "Domingo", "Segunda", "Ter&ccedil;a", "Quarta", "Quinta", "Sexta", "S&aacute;bado"
+        ];
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // Portugese Euro
+            dateFormat: 'd/m/Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.pt.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abortar'
+            },
+            retry: {
+                text: 'Tentar novamente'
+            },
+            ignore: {
+                text: 'Ignorar'
+            },
+            yes: {
+                text: 'Sim'
+            },
+            no: {
+                text: 'Não'
+            },
+            cancel: {
+                text: 'Cancelar'
+            },
+            apply: {
+                text: 'Aplicar'
+            },
+            save: {
+                text: 'Salvar'
+            },
+            submit: {
+                text: 'Enviar'
+            },
+            help: {
+                text: 'Ajuda'
+            },
+            close: {
+                text: 'Fechar'
+            }
+        },
+        closeToolText: 'Fechar Painel'
+    }
+});
+
+Ext.define('Ext.locale.pt.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Disponível',
+        monthText: 'Mês',
+        dayText: 'Dia',
+        yearText: 'Ano'
+    }
+});
+
+Ext.define('Ext.locale.pt.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Completo',
+        cancelButton: 'Cancelar'
+    }
+});
+
+Ext.define('Ext.locale.pt.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Proximo Mês (Control+Direita)',
+        prevText: 'Mês Anterior (Control+Esquerda)',
+        buttons: {
+            footerTodayButton: {
+                text: "Hoje"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.pt.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Recolher painel",
+        expandToolText: "Expandir painel"
+    }
+});
+
+Ext.define('Ext.locale.pt.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'O valor máximo de decimais é {0}',
+    minValueText: 'O valor mínimo para esse campo é {0}',
+    maxValueText: 'O valor máximo para esse campo é {0}',
+    badFormatMessage: 'Valor não é um número válido'
+});
+
+Ext.define('Ext.locale.pt.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Valor não está no formato desejado',
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximizar para tela cheia"
+        },
+        restoreTool: {
+            tooltip: "Restaurar para o tamanho original"
+        }
+    }
+});
+
+Ext.define("Ext.locale.pt.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Squeaky toy...'
+    }
+});
+
+Ext.define('Ext.locale.pt.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+
+Ext.define('Ext.locale.pt.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Sem dados para mostrar'
+    }
+});
+
+Ext.define('Ext.locale.pt.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+
+Ext.define("Ext.locale.pt.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Carregando...'
+    }
+});
+
+Ext.define('Ext.locale.pt.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Carregar mais...',
+        noMoreRecordsText: 'Sem mais dados'
+    }
+});
+
+Ext.define("Ext.locale.pt.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.pt.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'A data neste campo deve ser igual ou posterior à {0}',
+    maxDateMessage: 'A data neste campo deve ser igual ou anterior à {0}'
+});
+
+Ext.define("Ext.locale.pt.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Ordenar crescente"
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Ordenar decrescente"
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Agrupar por este campo"
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Mostrar em grupos"
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colunas"
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Deve estar presente'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Não é um e-mail válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Não é um telefone válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Não é um número válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Não é uma URL válida'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Deve ser numérico',
+        minOnlyMessage: 'Deve ser pelo menos {0}',
+        maxOnlyMessage: 'Não deve ser mais que {0}',
+        bothMessage: 'Deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Deve estar presente',
+        minOnlyMessage: 'O valor deve ser maior do que {0}',
+        maxOnlyMessage: 'O valor deve ser inferior a {0}',
+        bothMessage: 'O valor deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Não é um valor monetário válido'
+    }
+
+});
+
+Ext.define('Ext.locale.pt.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Não é uma data e hora válida'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'É um valor que foi excluído'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Não é um endereço IP válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Não está na lista de valores válidos'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Não é um momento válido'
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Não é uma data válida"
+    }
+});
+
+Ext.define('Ext.locale.pt.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Tamanho deve ser pelo menos {0}',
+        maxOnlyMessage: 'Tamanho deve ser menor que {0}',
+        bothMessage: 'Tamanho deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Cancelar'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.pt.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.pt.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filtro"
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Região'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Bloqueado (Esquerda)'
+            },
+            center: {
+                menuLabel: 'Desbloqueado'
+            },
+            right: {
+                menuLabel: 'Bloqueado (Direita)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} linha(s) seleccionada(s)"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-pt.js


+ 454 - 0
assets/ext-7.4/modern/locale/locale-pt_BR-debug.js

@@ -0,0 +1,454 @@
+Ext.define('Ext.locale.pt.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Cancelar'
+});
+Ext.define("Ext.locale.pt_BR.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.pt_BR.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximizar para tela cheia"
+        },
+        restoreTool: {
+            tooltip: "Restaurar para o tamanho original"
+        }
+    }
+});
+Ext.define("Ext.locale.pt_BR.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Carregando...'
+    }
+});
+Ext.define('Ext.locale.pt_BR.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abortar'
+            },
+            retry: {
+                text: 'Repetir'
+            },
+            ignore: {
+                text: 'Ignorar'
+            },
+            yes: {
+                text: 'Sim'
+            },
+            no: {
+                text: 'Não'
+            },
+            cancel: {
+                text: 'Cancelar'
+            },
+            apply: {
+                text: 'Aplicar'
+            },
+            save: {
+                text: 'Salvar'
+            },
+            submit: {
+                text: 'Enviar'
+            },
+            help: {
+                text: 'Ajuda'
+            },
+            close: {
+                text: 'Fechar'
+            }
+        },
+        closeToolText: 'Fechar Painel'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Deve estar presente',
+        minOnlyMessage: 'O valor deve ser maior do que {0}',
+        maxOnlyMessage: 'O valor deve ser inferior a {0}',
+        bothMessage: 'O valor deve estar entre {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Não é um valor monetário válido'
+    }
+
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Não é uma data válida"
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Não é uma data e hora válida'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Não é um e-mail válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'É um valor que foi excluído'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Está no formato incorreto'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Não é um endereço IP válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Não está na lista de valores válidos'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Tamanho deve ser pelo menos {0}',
+        maxOnlyMessage: 'Tamanho deve ser menor que {0}',
+        bothMessage: 'Tamanho deve estar entre {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Não é um número válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Não é um telefone válido'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Este campo é necessário'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'O valor deve ser numérico',
+        minOnlyMessage: 'O valor deve ser maior do que {0}',
+        maxOnlyMessage: 'O valor deve ser inferior a {0}',
+        bothMessage: 'O valor deve estar entre {0} e {1}'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Não é uma hora válida'
+    }
+});
+Ext.define('Ext.locale.pt_BR.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Não é uma URL válida'
+    }
+});
+Ext.define('Ext.locale.pt_BR.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+Ext.define("Ext.locale.pt_BR.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+Ext.define('Ext.locale.pt_BR.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Sem dados para exibir'
+    }
+});
+Ext.define('Ext.locale.pt_BR.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+Ext.define('Ext.locale.pt_BR.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Carregar mais...',
+        noMoreRecordsText: 'Não há mais registros'
+    }
+});
+/**
+ * Portuguese/Brazil Translation by Weber Souza
+ * 08 April 2007
+ * Updated by Allan Brazute Alves (EthraZa)
+ * 06 September 2007
+ * Updated by Leonardo Lima
+ * 05 March 2008
+ * Updated by Juliano Tarini (jtarini)
+ * 22 April 2008
+ * Update by Guilherme Portela
+ * 04 May 2015
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
+            "Setembro", "Outubro", "Novembro", "Dezembro"
+        ];
+
+        Ext.Date.defaultFormat = 'd/m/Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Jan: 0,
+            Fev: 1,
+            Mar: 2,
+            Abr: 3,
+            Mai: 4,
+            Jun: 5,
+            Jul: 6,
+            Ago: 7,
+            Set: 8,
+            Out: 9,
+            Nov: 10,
+            Dez: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+                .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"];
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: 'R$',
+            // Brazilian Real
+            dateFormat: 'd/m/Y'
+        });
+        Ext.util.Format.brMoney = Ext.util.Format.currency;
+    }
+});
+
+Ext.define("Ext.locale.pt.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filtro"
+    }
+});
+
+Ext.define("Ext.locale.pt_BR.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Região'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Bloqueado (Esquerda)'
+            },
+            center: {
+                menuLabel: 'Desbloqueado'
+            },
+            right: {
+                menuLabel: 'Bloqueado (Direita)'
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.pt_BR.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'A data deste campo deve ser igual ou posterior à {0}',
+    maxDateMessage: 'A data deste campo deve ser igual ou anterior à {0}'
+});
+Ext.define('Ext.locale.pt_BR.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está no formato incorreto'
+    }
+});
+Ext.define("Ext.locale.pt_BR.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Arquivo...'
+    }
+});
+Ext.define('Ext.locale.pt_BR.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'O valor máximo de decimais é {0}',
+    minValueText: 'O valor mínimo para este campo é {0}',
+    maxValueText: 'O valor máximo para este campo é {0}',
+    badFormatMessage: 'Valor não é um número válido'
+});
+Ext.define('Ext.locale.pt_BR.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Valor não está no formato desejado',
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está no formato incorreto'
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colunas"
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Agrupar por este campo"
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Mostrar em grupos"
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Ordenar crescente"
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Ordenar decrescente"
+    }
+});
+Ext.define("Ext.locale.pt_BR.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} linha(s) selecionada(s)"
+});
+Ext.define('Ext.locale.pt_BR.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Recolher painel",
+        expandToolText: "Expandir painel"
+    }
+});
+Ext.define('Ext.locale.pt_BR.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Proximo Mês (Ctrl+Direita)',
+        prevText: 'Mês Anterior (Ctrl+Esquerda)',
+        buttons: {
+            footerTodayButton: {
+                text: "Hoje"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.pt_BR.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Concluído',
+        monthText: 'Mês',
+        dayText: 'Dia',
+        yearText: 'Ano'
+    }
+});
+Ext.define('Ext.locale.pt_BR.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Concluído',
+        cancelButton: 'Cancelar'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-pt_BR.js


+ 494 - 0
assets/ext-7.4/modern/locale/locale-pt_PT-debug.js

@@ -0,0 +1,494 @@
+/**
+ * Portuguese/Portugal (pt_PT) Translation
+ * by Nuno Franco da Costa - francodacosta.com
+ * translated from ext-lang-en.js
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = [
+            "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto",
+            "Setembro", "Outubro", "Novembro", "Dezembro"
+        ];
+
+        Ext.Date.defaultFormat = 'Y/m/d';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            Jan: 0,
+            Feb: 1,
+            Mar: 2,
+            Apr: 3,
+            May: 4,
+            Jun: 5,
+            Jul: 6,
+            Aug: 7,
+            Sep: 8,
+            Oct: 9,
+            Nov: 10,
+            Dec: 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+                .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"];
+
+        Ext.Date.getShortDayName = function(day) {
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u20ac',
+            // Portugese Euro
+            dateFormat: 'Y/m/d'
+        });
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: 'Abortar'
+            },
+            retry: {
+                text: 'Tentar novamente'
+            },
+            ignore: {
+                text: 'Ignorar'
+            },
+            yes: {
+                text: 'Sim'
+            },
+            no: {
+                text: 'Não'
+            },
+            cancel: {
+                text: 'Cancelar'
+            },
+            apply: {
+                text: 'Aplicar'
+            },
+            save: {
+                text: 'Salvar'
+            },
+            submit: {
+                text: 'Enviar'
+            },
+            help: {
+                text: 'Ajuda'
+            },
+            close: {
+                text: 'Fechar'
+            }
+        },
+        closeToolText: 'Fechar Painel'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Disponível',
+        monthText: 'Mês',
+        dayText: 'Dia',
+        yearText: 'Ano'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Completo',
+        cancelButton: 'Cancelar'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Proximo Mês (Control+Direita)',
+        prevText: 'Mês Anterior (Control+Esquerda)',
+        buttons: {
+            footerTodayButton: {
+                text: "Hoje"
+            }
+        }
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "Recolher painel",
+        expandToolText: "Expandir painel"
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'O valor máximo de decimais é {0}',
+    minValueText: 'O valor mínimo para esse campo é {0}',
+    maxValueText: 'O valor máximo para esse campo é {0}',
+    badFormatMessage: 'Valor não é um número válido'
+});
+
+Ext.define('Ext.locale.pt_PT.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Valor não está no formato desejado',
+    config: {
+        requiredMessage: 'Este campo é necessário',
+        validationMessage: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "Maximizar para tela cheia"
+        },
+        restoreTool: {
+            tooltip: "Restaurar para o tamanho original"
+        }
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: 'Squeaky toy...'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Sem dados para mostrar'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Carregando...'
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: 'Carregando...'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Carregar mais...',
+        noMoreRecordsText: 'Sem mais dados'
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: ""
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'A data neste campo deve ser igual ou posterior à {0}',
+    maxDateMessage: 'A data neste campo deve ser igual ou anterior à {0}'
+});
+
+Ext.define("Ext.locale.pt_PT.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        text: "Ordenar crescente"
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        text: "Ordenar decrescente"
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "Agrupar por este campo"
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "Mostrar em grupos"
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        text: "Colunas"
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Este campo é necessário'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Está com formato errado'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Não é um e-mail válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Não é um telefone válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Não é um número válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Não é uma URL válida'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Deve ser numérico',
+        minOnlyMessage: 'Deve ser pelo menos {0}',
+        maxOnlyMessage: 'Não deve ser mais que {0}',
+        bothMessage: 'Deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Deve estar presente',
+        minOnlyMessage: 'O valor deve ser maior do que {0}',
+        maxOnlyMessage: 'O valor deve ser inferior a {0}',
+        bothMessage: 'O valor deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Não é um bloco CIDR válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Não é um valor monetário válido'
+    }
+
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Não é uma data e hora válida'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'É um valor que foi excluído'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Não é um endereço IP válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Não está na lista de valores válidos'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Não é um momento válido'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "Não é uma data válida"
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Tamanho deve ser pelo menos {0}',
+        maxOnlyMessage: 'Tamanho deve ser menor que {0}',
+        bothMessage: 'Tamanho deve estar entre {0} e {1}'
+    }
+});
+
+Ext.define('Ext.locale.pt_PT.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'Cancelar'
+});
+
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.pt_PT.Component", {
+    override: "Ext.Component"
+});
+
+Ext.define("Ext.locale.pt_PT.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Filtro"
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'Região'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Bloqueado (Esquerda)'
+            },
+            center: {
+                menuLabel: 'Desbloqueado'
+            },
+            right: {
+                menuLabel: 'Bloqueado (Direita)'
+            }
+        }
+    }
+});
+
+Ext.define("Ext.locale.pt_PT.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} linha(s) seleccionada(s)"
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-pt_PT.js


+ 456 - 0
assets/ext-7.4/modern/locale/locale-ru-debug.js

@@ -0,0 +1,456 @@
+Ext.define('Ext.locale.ru.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: 'OK',
+    cancelButtonText: 'отменить'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.ru.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.ru.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: 'Развернуть на весь экран'
+        },
+        restoreTool: {
+            tooltip: 'Восстановить исходный размер'
+        }
+    }
+});
+Ext.define('Ext.locale.ru.LoadMask', {
+    override: 'Ext.LoadMask',
+
+    config: {
+        message: 'Загрузка...'
+    }
+});
+Ext.define('Ext.locale.ru.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'ОК'
+            },
+            abort: {
+                text: 'Прервать'
+            },
+            retry: {
+                text: 'Повторить'
+            },
+            ignore: {
+                text: 'Пропустить'
+            },
+            yes: {
+                text: 'Да'
+            },
+            no: {
+                text: 'Нет'
+            },
+            cancel: {
+                text: 'Отмена'
+            },
+            apply: {
+                text: 'Применить'
+            },
+            save: {
+                text: 'Сохранить'
+            },
+            submit: {
+                text: 'Отправить'
+            },
+            help: {
+                text: 'Справка'
+            },
+            close: {
+                text: 'Закрыть'
+            }
+        },
+        closeToolText: 'Закрыть панель'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: 'Обязательно к заполнению',
+        minOnlyMessage: 'Значение должно быть больше {0}',
+        maxOnlyMessage: 'Значение должно быть меньше {0}',
+        bothMessage: 'Значение должно быть между {0} и {1}'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: 'Недопустимый формат блока CIDR'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: 'Недопустимый формат блока CIDR'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: 'Недопустимая денежная сумма'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: 'Некорректный формат даты'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: 'Недопустимые дата и время'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: 'Недопустимый адрес электронной почты'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: 'Значение является исключенным'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: 'Недопустимый формат'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: 'Некорректный IP-адрес'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: 'Значение отсутствует в списке допустимых'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: 'Длина не может быть меньше {0}',
+        maxOnlyMessage: 'Длина не может быть больше {0}',
+        bothMessage: 'Длина должна быть между {0} и {1}'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: 'Недопустимый формат числа'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: 'Недопустимый номер телефона'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: 'Обязательно к заполнению'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: 'Значение должно быть числовым',
+        minOnlyMessage: 'Значение не может быть меньше {0}',
+        maxOnlyMessage: 'Значение не может быть больше {0}',
+        bothMessage: 'Значение должно быть между {0} и {1}'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: 'Некорректный формат времени'
+    }
+});
+Ext.define('Ext.locale.ru.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: 'Недопустимый URL-адрес'
+    }
+});
+Ext.define('Ext.locale.ru.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: 'Загрузка...'
+    }
+});
+Ext.define('Ext.locale.ru.dataview.DataView', {
+    override: 'Ext.dataview.DataView',
+
+    config: {
+        emptyText: ''
+    }
+});
+Ext.define('Ext.locale.ru.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: 'Нет данных'
+    }
+});
+Ext.define('Ext.locale.ru.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: 'Загрузка...'
+    }
+});
+Ext.define('Ext.locale.ru.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: 'Загрузить больше...',
+        noMoreRecordsText: 'Больше нет записей'
+    }
+});
+/**
+ * Russian translation
+ * By Maria Vlasyuk
+ * 03.12.2018
+ */
+Ext.onReady(function() {
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль',
+                               'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
+
+        Ext.Date.defaultFormat = 'd.m.Y';
+        Ext.Date.defaultTimeFormat = 'H:i';
+
+        Ext.Date.getShortMonthName = function(month) {
+            if ([0, 3, 4, 7, 9, 11].indexOf(month)) {
+                return Ext.Date.monthNames[month].substring(0, 2);
+            }
+
+            return Ext.Date.monthNames[month].substring(0, 3);
+        };
+
+        Ext.Date.monthNumbers = {
+            'Янв': 0,
+            'Фев': 1,
+            'Мар': 2,
+            'Апр': 3,
+            'Май': 4,
+            'Июн': 5,
+            'Июл': 6,
+            'Авг': 7,
+            'Сен': 8,
+            'Окт': 9,
+            'Ноя': 10,
+            'Дек': 11
+        };
+
+        Ext.Date.getMonthNumber = function(name) {
+            return Ext.Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3)
+            .toLowerCase()];
+        };
+
+        Ext.Date.dayNames = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница',
+                             'Суббота'];
+
+        Ext.Date.getShortDayName = function(day) {
+            if (day === 1) {
+                return "Пон";
+            }
+
+            return Ext.Date.dayNames[day].substring(0, 3);
+        };
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: '.',
+            decimalSeparator: ',',
+            currencySign: '\u0440\u0443\u0431',
+            // Russian Ruble
+            dateFormat: 'd.m.Y'
+        });
+    }
+});
+
+Ext.define('Ext.locale.ru.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: 'Дата в этом поле должна быть равна или позже {0}',
+    maxDateMessage: 'Дата в этом поле должна быть равна или раньше {0}'
+});
+Ext.define('Ext.locale.ru.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: 'Это поле обязательно для заполнения',
+        validationMessage: 'Недопустимый формат'
+    }
+});
+Ext.define('Ext.locale.ru.field.FileButton', {
+    override: 'Ext.field.FileButton',
+
+    config: {
+        text: 'Обзор...'
+    }
+});
+Ext.define('Ext.locale.ru.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: 'Максимальное количество знаков после запятой: {0}',
+    minValueText: 'Значение этого поля не может быть меньше {0}',
+    maxValueText: 'Значение этого поля не может быть больше {0}',
+    badFormatMessage: 'Недопустимый формат числа'
+});
+Ext.define('Ext.locale.ru.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: 'Недопустимый формат значения',
+    config: {
+        requiredMessage: 'Это поле обязательно для заполнения',
+        validationMessage: 'Недопустимый формат'
+    }
+});
+Ext.define("Ext.locale.ru.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "Фильтр"
+    }
+});
+Ext.define("Ext.locale.ru.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: 'область'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: 'Заблокировано (слева)'
+            },
+            center: {
+                menuLabel: 'разблокирована'
+            },
+            right: {
+                menuLabel: 'Заблокировано (справа)'
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.ru.grid.menu.Columns', {
+    override: 'Ext.grid.menu.Columns',
+
+    config: {
+        text: 'Столбцы'
+    }
+});
+Ext.define('Ext.locale.ru.grid.menu.GroupByThis', {
+    override: 'Ext.grid.menu.GroupByThis',
+
+    config: {
+        text: 'Группировать по этому полю'
+    }
+});
+Ext.define('Ext.locale.ru.grid.menu.ShowInGroups', {
+    override: 'Ext.grid.menu.ShowInGroups',
+
+    config: {
+        text: 'Показать в группах'
+    }
+});
+Ext.define('Ext.locale.ru.grid.menu.SortAsc', {
+    override: 'Ext.grid.menu.SortAsc',
+
+    config: {
+        text: 'Сортировать по возрастанию'
+    }
+});
+Ext.define('Ext.locale.ru.grid.menu.SortDesc', {
+    override: 'Ext.grid.menu.SortDesc',
+
+    config: {
+        text: 'Сортировать по убыванию'
+    }
+});
+Ext.define("Ext.locale.ru.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "{0} выбранных строк"
+});
+Ext.define('Ext.locale.ru.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: 'Свернуть панель',
+        expandToolText: 'Развернуть панель'
+    }
+});
+Ext.define('Ext.locale.ru.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: 'Следующий месяц (Control + Вправо)',
+        prevText: 'Предыдущий месяц (Control + Влево)',
+        buttons: {
+            footerTodayButton: {
+                text: 'Сегодня'
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.ru.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'Готово',
+        monthText: 'Месяц',
+        dayText: 'День',
+        yearText: 'Год'
+    }
+});
+Ext.define('Ext.locale.ru.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'Выполнить',
+        cancelButton: 'Отмена'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-ru.js


+ 431 - 0
assets/ext-7.4/modern/locale/locale-zh_CN-debug.js

@@ -0,0 +1,431 @@
+Ext.define('Ext.locale.zh_CN.ux.colorpick.Selector', {
+    override: 'Ext.ux.colorpick.Selector',
+
+    okButtonText: '确定',
+    cancelButtonText: '取消'
+});
+// This is needed until we can refactor all of the locales into individual files
+Ext.define("Ext.locale.zh_CN.Component", {
+    override: "Ext.Component"
+});
+Ext.define('Ext.locale.zh_CN.Dialog', {
+    override: 'Ext.Dialog',
+
+    config: {
+        maximizeTool: {
+            tooltip: "最大化到全屏"
+        },
+        restoreTool: {
+            tooltip: "恢复到原始大小"
+        }
+    }
+});
+Ext.define("Ext.locale.zh_CN.LoadMask", {
+    override: "Ext.LoadMask",
+
+    config: {
+        message: '读取中...'
+    }
+});
+Ext.define('Ext.locale.zh_CN.Panel', {
+    override: 'Ext.Panel',
+
+    config: {
+        standardButtons: {
+            ok: {
+                text: 'OK'
+            },
+            abort: {
+                text: '退出'
+            },
+            retry: {
+                text: '重试'
+            },
+            ignore: {
+                text: '忽视'
+            },
+            yes: {
+                text: '是'
+            },
+            no: {
+                text: '没有'
+            },
+            cancel: {
+                text: '取消'
+            },
+            apply: {
+                text: '应用'
+            },
+            save: {
+                text: '保存'
+            },
+            submit: {
+                text: '提交'
+            },
+            help: {
+                text: '救命'
+            },
+            close: {
+                text: '关闭'
+            }
+        },
+        closeToolText: '关闭面板'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Bound', {
+    override: 'Ext.data.validator.Bound',
+
+    config: {
+        emptyMessage: '必须存在',
+        minOnlyMessage: '必须至少为{0}',
+        maxOnlyMessage: '必须不超过{0}',
+        bothMessage: '必须在 {0} 和 {1} 之间'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.CIDRv4', {
+    override: 'Ext.data.validator.CIDRv4',
+
+    config: {
+        message: '不是有效的CIDR块'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.CIDRv6', {
+    override: 'Ext.data.validator.CIDRv6',
+
+    config: {
+        message: '不是有效的CIDR块'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Currency', {
+    override: 'Ext.data.validator.Currency',
+
+    config: {
+        message: '不是有效的货币金额'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Date', {
+    override: 'Ext.data.validator.Date',
+
+    config: {
+        message: "不是有效日期"
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.DateTime', {
+    override: 'Ext.data.validator.DateTime',
+
+    config: {
+        message: '不是有效的日期和时间'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Email', {
+    override: 'Ext.data.validator.Email',
+
+    config: {
+        message: '不是有效的电子邮件地址'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Exclusion', {
+    override: 'Ext.data.validator.Exclusion',
+
+    config: {
+        message: '是已排除的值'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Format', {
+    override: 'Ext.data.validator.Format',
+
+    config: {
+        message: '它的格式不对'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.IPAddress', {
+    override: 'Ext.data.validator.IPAddress',
+
+    config: {
+        message: '不是有效的IP地址'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Inclusion', {
+    override: 'Ext.data.validator.Inclusion',
+
+    config: {
+        message: '它不在可接受值的列表中'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Length', {
+    override: 'Ext.data.validator.Length',
+
+    config: {
+        minOnlyMessage: '长度必须至少为{0}',
+        maxOnlyMessage: '长度不得超过{0}',
+        bothMessage: '长度必须介于{0}和{1}之间'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Number', {
+    override: 'Ext.data.validator.Number',
+
+    config: {
+        message: '不是有效的数字'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Phone', {
+    override: 'Ext.data.validator.Phone',
+
+    config: {
+        message: '不是有效的电话号码'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Presence', {
+    override: 'Ext.data.validator.Presence',
+
+    config: {
+        message: '必须在场'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Range', {
+    override: 'Ext.data.validator.Range',
+
+    config: {
+        nanMessage: '它必须是数字',
+        minOnlyMessage: '必须至少为{0}',
+        maxOnlyMessage: '必须不超过{0}',
+        bothMessage: '必须在 {0} 和 {1} 之间'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Time', {
+    override: 'Ext.data.validator.Time',
+
+    config: {
+        message: '不是有效的时间'
+    }
+});
+Ext.define('Ext.locale.zh_CN.data.validator.Url', {
+    override: 'Ext.data.validator.Url',
+
+    config: {
+        message: '不是有效的URL'
+    }
+});
+Ext.define('Ext.locale.zh_CN.dataview.Abstract', {
+    override: 'Ext.dataview.Abstract',
+
+    config: {
+        loadingText: '读取中...'
+    }
+});
+Ext.define("Ext.locale.zh_CN.dataview.DataView", {
+    override: "Ext.dataview.DataView",
+
+    config: {
+        emptyText: "没有要显示的数据"
+    }
+});
+Ext.define('Ext.locale.zh_CN.dataview.EmptyText', {
+    override: 'Ext.dataview.EmptyText',
+
+    config: {
+        html: '没有数据显示'
+    }
+});
+Ext.define('Ext.locale.zh_CN.dataview.List', {
+    override: 'Ext.dataview.List',
+
+    config: {
+        loadingText: '读取中...'
+    }
+});
+Ext.define('Ext.locale.zh_CN.dataview.plugin.ListPaging', {
+    override: 'Ext.dataview.plugin.ListPaging',
+
+    config: {
+        loadMoreText: '加载更多...',
+        noMoreRecordsText: '没有更多记录'
+    }
+});
+/**
+ * Simplified Chinese translation
+ */
+Ext.onReady(function() {
+    var parseCodes;
+
+    if (Ext.Date) {
+        Ext.Date.monthNames = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
+                               "九月", "十月", "十一月", "十二月"];
+
+        Ext.Date.dayNames = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+
+        Ext.Date.formatCodes.a = "(this.getHours() < 12 ? '上午' : '下午')";
+        Ext.Date.formatCodes.A = "(this.getHours() < 12 ? '上午' : '下午')";
+
+        parseCodes = {
+            g: 1,
+            c: "if (/(上午)/i.test(results[{0}])) {\n" +
+                "if (!h || h == 12) { h = 0; }\n" +
+                "} else { if (!h || h < 12) { h = (h || 0) + 12; }}",
+            s: "(上午|下午)",
+            calcAtEnd: true
+        };
+
+        Ext.Date.parseCodes.a = Ext.Date.parseCodes.A = parseCodes;
+    }
+
+    if (Ext.util && Ext.util.Format) {
+        Ext.apply(Ext.util.Format, {
+            thousandSeparator: ',',
+            decimalSeparator: '.',
+            currencySign: '\u00a5',
+            // Chinese Yuan
+            dateFormat: 'y年m月d日'
+        });
+    }
+});
+Ext.define('Ext.locale.zh_CN.field.Date', {
+    override: 'Ext.field.Date',
+
+    minDateMessage: '此字段中的日期必须在 {0} 之后',
+    maxDateMessage: '此字段中的日期必须为 {0}'
+});
+Ext.define('Ext.locale.zh_CN.field.Field', {
+    override: 'Ext.field.Field',
+
+    config: {
+        requiredMessage: '此字段是必填字段',
+        validationMessage: '格式错误'
+    }
+});
+Ext.define("Ext.locale.zh_CN.field.FileButton", {
+    override: "Ext.field.FileButton",
+
+    config: {
+        text: '评论......'
+    }
+});
+Ext.define('Ext.locale.zh_CN.field.Number', {
+    override: 'Ext.field.Number',
+
+    decimalsText: '最大十进制数 (0)',
+    minValueText: '该输入项的最小值是 {0}',
+    maxValueText: '该输入项的最大值是 {0}',
+    badFormatMessage: '{0} 不是有效数值'
+});
+Ext.define('Ext.locale.zh_CN.field.Text', {
+    override: 'Ext.field.Text',
+
+    badFormatMessage: '值与所需格式不匹配',
+    config: {
+        requiredMessage: '此字段是必填字段',
+        validationMessage: '格式错误'
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.filters.menu.Base", {
+    override: "Ext.grid.filters.menu.Base",
+
+    config: {
+        text: "过滤器"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.locked.Grid", {
+    override: 'Ext.grid.locked.Grid',
+
+    config: {
+        columnMenu: {
+            items: {
+                region: {
+                    text: '区域'
+                }
+            }
+        },
+        regions: {
+            left: {
+                menuLabel: '锁定(左)'
+            },
+            center: {
+                menuLabel: '解锁'
+            },
+            right: {
+                menuLabel: '锁定(右)'
+            }
+        }
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.menu.Columns", {
+    override: "Ext.grid.menu.Columns",
+
+    config: {
+        // update
+        text: "列"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.menu.GroupByThis", {
+    override: "Ext.grid.menu.GroupByThis",
+
+    config: {
+        text: "由此分组"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.menu.ShowInGroups", {
+    override: "Ext.grid.menu.ShowInGroups",
+
+    config: {
+        text: "分组显示"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.menu.SortAsc", {
+    override: "Ext.grid.menu.SortAsc",
+
+    config: {
+        // update
+        text: "正序"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.menu.SortDesc", {
+    override: "Ext.grid.menu.SortDesc",
+
+    config: {
+        // update
+        text: "倒序"
+    }
+});
+Ext.define("Ext.locale.zh_CN.grid.plugin.RowDragDrop", {
+    override: "Ext.grid.plugin.RowDragDrop",
+    dragText: "选择了 {0} 行"
+});
+Ext.define('Ext.locale.zh_CN.panel.Collapser', {
+    override: 'Ext.panel.Collapser',
+
+    config: {
+        collapseToolText: "关闭面板",
+        expandToolText: "展开面板"
+    }
+});
+Ext.define('Ext.locale.zh_CN.panel.Date', {
+    override: 'Ext.panel.Date',
+
+    config: {
+        nextText: '下个月 (Ctrl+Right)',
+        prevText: '上个月 (Ctrl+Left',
+        buttons: {
+            footerTodayButton: {
+                text: "今天"
+            }
+        }
+    }
+});
+Ext.define('Ext.locale.zh_CN.picker.Date', {
+    override: 'Ext.picker.Date',
+
+    config: {
+        doneButton: 'done',
+        monthText: '月',
+        dayText: '日',
+        yearText: '年'
+    }
+});
+Ext.define('Ext.locale.zh_CN.picker.Picker', {
+    override: 'Ext.picker.Picker',
+
+    config: {
+        doneButton: 'done',
+        cancelButton: '取消'
+    }
+});

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/locale/locale-zh_CN.js


+ 1 - 0
assets/ext-7.4/modern/theme-ios/config.rb

@@ -0,0 +1 @@
+Compass.add_project_configuration('..\..\..\modern\theme-ios\sass\config.rb')

+ 2 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug.css

@@ -0,0 +1,2 @@
+@import 'theme-ios-all-debug_1.css';
+@import 'theme-ios-all-debug_2.css';

File diff suppressed because it is too large
+ 16246 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug_1.css


File diff suppressed because it is too large
+ 3929 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-debug_2.css


+ 2 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug.css

@@ -0,0 +1,2 @@
+@import 'theme-ios-all-rtl-debug_1.css';
+@import 'theme-ios-all-rtl-debug_2.css';

File diff suppressed because it is too large
+ 16246 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug_1.css


File diff suppressed because it is too large
+ 3929 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl-debug_2.css


+ 2 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl.css

@@ -0,0 +1,2 @@
+@import 'theme-ios-all-rtl_1.css';
+@import 'theme-ios-all-rtl_2.css';

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl_1.css


File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all-rtl_2.css


+ 2 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all.css

@@ -0,0 +1,2 @@
+@import 'theme-ios-all_1.css';
+@import 'theme-ios-all_2.css';

File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all_1.css


File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/theme-ios/resources/theme-ios-all_2.css


File diff suppressed because it is too large
+ 1454 - 0
assets/ext-7.4/modern/theme-ios/theme-ios-all-debug.scss


File diff suppressed because it is too large
+ 1454 - 0
assets/ext-7.4/modern/theme-ios/theme-ios-all-rtl-debug.scss


File diff suppressed because it is too large
+ 2090 - 0
assets/ext-7.4/modern/theme-ios/theme-ios-debug.js


File diff suppressed because it is too large
+ 1 - 0
assets/ext-7.4/modern/theme-ios/theme-ios.js


+ 1 - 0
assets/ext-7.4/modern/theme-material/config.rb

@@ -0,0 +1 @@
+Compass.add_project_configuration('..\..\..\modern\theme-material\sass\config.rb')

+ 3 - 0
assets/ext-7.4/modern/theme-material/resources/Readme.md

@@ -0,0 +1,3 @@
+# theme-neptune/resources
+
+This folder contains static resources (typically an `"images"` folder as well).

File diff suppressed because it is too large
+ 5644 - 0
assets/ext-7.4/modern/theme-material/resources/css-vars.js


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.eot


File diff suppressed because it is too large
+ 1260 - 0
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.svg


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.woff


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-brands-400.woff2


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.eot


File diff suppressed because it is too large
+ 471 - 0
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.svg


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.woff


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-regular-400.woff2


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.eot


File diff suppressed because it is too large
+ 2763 - 0
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.svg


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.woff


BIN
assets/ext-7.4/modern/theme-material/resources/font-awesome/fonts/fa-solid-900.woff2


BIN
assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.eot


File diff suppressed because it is too large
+ 62 - 0
assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.svg


BIN
assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/font-ext/fonts/ExtJS.woff


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/MaterialIcons-Regular.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Bold.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Italic.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Light.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Medium.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/fonts/roboto/Roboto-Regular.ttf


BIN
assets/ext-7.4/modern/theme-material/resources/images/check.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/clear_icon.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/disclosure.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/disclosure2.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/dotgrid.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/loading.gif


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/action.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/add.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/add1.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/add_black.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/address_book.png


BIN
assets/ext-7.4/modern/theme-material/resources/images/pictos/arrow_down.png


+ 0 - 0
assets/ext-7.4/modern/theme-material/resources/images/pictos/arrow_left.png


Some files were not shown because too many files changed in this diff