tinymce-rails-webmely 5.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +19 -0
  3. data/README.md +181 -0
  4. data/Rakefile +55 -0
  5. data/app/assets/javascripts/tinymce-jquery.js +2 -0
  6. data/app/assets/javascripts/tinymce.js +3 -0
  7. data/app/assets/javascripts/tinymce/preinit.js.erb +4 -0
  8. data/app/assets/javascripts/tinymce/rails.js +51 -0
  9. data/app/assets/source/tinymce/tinymce.js +28251 -0
  10. data/lib/tasks/tinymce-assets.rake +16 -0
  11. data/lib/tinymce-rails.rb +1 -0
  12. data/lib/tinymce/rails.rb +27 -0
  13. data/lib/tinymce/rails/asset_installer.rb +64 -0
  14. data/lib/tinymce/rails/asset_installer/compile.rb +44 -0
  15. data/lib/tinymce/rails/asset_installer/copy.rb +54 -0
  16. data/lib/tinymce/rails/asset_installer/copy_no_preserve.rb +14 -0
  17. data/lib/tinymce/rails/asset_manifest.rb +141 -0
  18. data/lib/tinymce/rails/configuration.rb +157 -0
  19. data/lib/tinymce/rails/configuration_file.rb +49 -0
  20. data/lib/tinymce/rails/engine.rb +76 -0
  21. data/lib/tinymce/rails/environment.rb +23 -0
  22. data/lib/tinymce/rails/helper.rb +75 -0
  23. data/lib/tinymce/rails/version.rb +6 -0
  24. data/vendor/assets/images/fa-utube.svg +1 -0
  25. data/vendor/assets/javascripts/tinymce/jquery.tinymce.js +91 -0
  26. data/vendor/assets/javascripts/tinymce/langs/ar.js +178 -0
  27. data/vendor/assets/javascripts/tinymce/langs/az.js +177 -0
  28. data/vendor/assets/javascripts/tinymce/langs/be.js +177 -0
  29. data/vendor/assets/javascripts/tinymce/langs/bg_BG.js +177 -0
  30. data/vendor/assets/javascripts/tinymce/langs/bs.js +177 -0
  31. data/vendor/assets/javascripts/tinymce/langs/ca.js +177 -0
  32. data/vendor/assets/javascripts/tinymce/langs/cs.js +177 -0
  33. data/vendor/assets/javascripts/tinymce/langs/cy.js +177 -0
  34. data/vendor/assets/javascripts/tinymce/langs/da.js +177 -0
  35. data/vendor/assets/javascripts/tinymce/langs/de.js +177 -0
  36. data/vendor/assets/javascripts/tinymce/langs/de_AT.js +177 -0
  37. data/vendor/assets/javascripts/tinymce/langs/dv.js +177 -0
  38. data/vendor/assets/javascripts/tinymce/langs/el.js +177 -0
  39. data/vendor/assets/javascripts/tinymce/langs/en_CA.js +177 -0
  40. data/vendor/assets/javascripts/tinymce/langs/en_GB.js +177 -0
  41. data/vendor/assets/javascripts/tinymce/langs/es.js +177 -0
  42. data/vendor/assets/javascripts/tinymce/langs/et.js +177 -0
  43. data/vendor/assets/javascripts/tinymce/langs/eu.js +176 -0
  44. data/vendor/assets/javascripts/tinymce/langs/fa.js +178 -0
  45. data/vendor/assets/javascripts/tinymce/langs/fi.js +177 -0
  46. data/vendor/assets/javascripts/tinymce/langs/fo.js +156 -0
  47. data/vendor/assets/javascripts/tinymce/langs/fr_FR.js +177 -0
  48. data/vendor/assets/javascripts/tinymce/langs/gl.js +177 -0
  49. data/vendor/assets/javascripts/tinymce/langs/he_IL.js +178 -0
  50. data/vendor/assets/javascripts/tinymce/langs/hr.js +175 -0
  51. data/vendor/assets/javascripts/tinymce/langs/hu_HU.js +177 -0
  52. data/vendor/assets/javascripts/tinymce/langs/hy.js +177 -0
  53. data/vendor/assets/javascripts/tinymce/langs/id.js +71 -0
  54. data/vendor/assets/javascripts/tinymce/langs/is_IS.js +177 -0
  55. data/vendor/assets/javascripts/tinymce/langs/it.js +176 -0
  56. data/vendor/assets/javascripts/tinymce/langs/ja.js +174 -0
  57. data/vendor/assets/javascripts/tinymce/langs/ka_GE.js +172 -0
  58. data/vendor/assets/javascripts/tinymce/langs/kk.js +177 -0
  59. data/vendor/assets/javascripts/tinymce/langs/km_KH.js +177 -0
  60. data/vendor/assets/javascripts/tinymce/langs/ko_KR.js +175 -0
  61. data/vendor/assets/javascripts/tinymce/langs/lb.js +175 -0
  62. data/vendor/assets/javascripts/tinymce/langs/lt.js +83 -0
  63. data/vendor/assets/javascripts/tinymce/langs/lv.js +175 -0
  64. data/vendor/assets/javascripts/tinymce/langs/ml_IN.js +177 -0
  65. data/vendor/assets/javascripts/tinymce/langs/nb_NO.js +177 -0
  66. data/vendor/assets/javascripts/tinymce/langs/nl.js +177 -0
  67. data/vendor/assets/javascripts/tinymce/langs/pl.js +177 -0
  68. data/vendor/assets/javascripts/tinymce/langs/pt_BR.js +177 -0
  69. data/vendor/assets/javascripts/tinymce/langs/pt_PT.js +173 -0
  70. data/vendor/assets/javascripts/tinymce/langs/readme.md +3 -0
  71. data/vendor/assets/javascripts/tinymce/langs/ro.js +177 -0
  72. data/vendor/assets/javascripts/tinymce/langs/ru.js +177 -0
  73. data/vendor/assets/javascripts/tinymce/langs/si_LK.js +156 -0
  74. data/vendor/assets/javascripts/tinymce/langs/sk.js +177 -0
  75. data/vendor/assets/javascripts/tinymce/langs/sl_SI.js +177 -0
  76. data/vendor/assets/javascripts/tinymce/langs/sr.js +177 -0
  77. data/vendor/assets/javascripts/tinymce/langs/sv_SE.js +177 -0
  78. data/vendor/assets/javascripts/tinymce/langs/ta.js +177 -0
  79. data/vendor/assets/javascripts/tinymce/langs/ta_IN.js +177 -0
  80. data/vendor/assets/javascripts/tinymce/langs/tg.js +177 -0
  81. data/vendor/assets/javascripts/tinymce/langs/th_TH.js +177 -0
  82. data/vendor/assets/javascripts/tinymce/langs/tr_TR.js +177 -0
  83. data/vendor/assets/javascripts/tinymce/langs/ug.js +159 -0
  84. data/vendor/assets/javascripts/tinymce/langs/uk.js +177 -0
  85. data/vendor/assets/javascripts/tinymce/langs/uk_UA.js +177 -0
  86. data/vendor/assets/javascripts/tinymce/langs/vi.js +137 -0
  87. data/vendor/assets/javascripts/tinymce/langs/vi_VN.js +173 -0
  88. data/vendor/assets/javascripts/tinymce/langs/zh_CN.js +177 -0
  89. data/vendor/assets/javascripts/tinymce/langs/zh_TW.js +177 -0
  90. data/vendor/assets/javascripts/tinymce/license.txt +504 -0
  91. data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +9 -0
  92. data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +9 -0
  93. data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +9 -0
  94. data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +9 -0
  95. data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +9 -0
  96. data/vendor/assets/javascripts/tinymce/plugins/bbcode/plugin.js +9 -0
  97. data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +9 -0
  98. data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +9 -0
  99. data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +9 -0
  100. data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +9 -0
  101. data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +9 -0
  102. data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +9 -0
  103. data/vendor/assets/javascripts/tinymce/plugins/emoticons/js/emojis.js +2 -0
  104. data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +9 -0
  105. data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +9 -0
  106. data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +9 -0
  107. data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +9 -0
  108. data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +9 -0
  109. data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2453 -0
  110. data/vendor/assets/javascripts/tinymce/plugins/image/plugin.min.js +9 -0
  111. data/vendor/assets/javascripts/tinymce/plugins/image/styles.css +27 -0
  112. data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +9 -0
  113. data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +9 -0
  114. data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +9 -0
  115. data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +9 -0
  116. data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +9 -0
  117. data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +9 -0
  118. data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +9 -0
  119. data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +9 -0
  120. data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +9 -0
  121. data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +9 -0
  122. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +9 -0
  123. data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +9 -0
  124. data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +9 -0
  125. data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +9 -0
  126. data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +9 -0
  127. data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +9 -0
  128. data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +9 -0
  129. data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +9 -0
  130. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +9 -0
  131. data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +9 -0
  132. data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +9 -0
  133. data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +9 -0
  134. data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +9 -0
  135. data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +9 -0
  136. data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +9 -0
  137. data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +9 -0
  138. data/vendor/assets/javascripts/tinymce/plugins/yt-upload/plugin.js +722 -0
  139. data/vendor/assets/javascripts/tinymce/skins/content/dark/content.css +7 -0
  140. data/vendor/assets/javascripts/tinymce/skins/content/dark/content.min.css +7 -0
  141. data/vendor/assets/javascripts/tinymce/skins/content/default/content.css +7 -0
  142. data/vendor/assets/javascripts/tinymce/skins/content/default/content.min.css +7 -0
  143. data/vendor/assets/javascripts/tinymce/skins/content/document/content.css +7 -0
  144. data/vendor/assets/javascripts/tinymce/skins/content/document/content.min.css +7 -0
  145. data/vendor/assets/javascripts/tinymce/skins/content/writer/content.css +7 -0
  146. data/vendor/assets/javascripts/tinymce/skins/content/writer/content.min.css +7 -0
  147. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +7 -0
  148. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +7 -0
  149. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
  150. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
  151. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.mobile.css +7 -0
  152. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
  153. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  154. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +7 -0
  155. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
  156. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.mobile.css +7 -0
  157. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
  158. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +7 -0
  159. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +7 -0
  160. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
  161. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +7 -0
  162. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.mobile.css +7 -0
  163. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
  164. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  165. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +7 -0
  166. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +7 -0
  167. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.mobile.css +7 -0
  168. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
  169. data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +9 -0
  170. data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +9 -0
  171. data/vendor/assets/javascripts/tinymce/tinymce.js +9 -0
  172. metadata +227 -0
@@ -0,0 +1,49 @@
1
+ module TinyMCE::Rails
2
+ class ConfigurationFile
3
+ attr_reader :path
4
+
5
+ def initialize(path)
6
+ @path = path
7
+ end
8
+
9
+ def configuration
10
+ @configuration = load_configuration if reload?
11
+ @configuration
12
+ end
13
+
14
+ def reload?
15
+ @configuration.nil? || (reloadable? && changed?)
16
+ end
17
+
18
+ def changed?
19
+ @last_loaded != last_updated
20
+ end
21
+
22
+ private
23
+ def reloadable?
24
+ !::Rails.application.config.cache_classes
25
+ end
26
+
27
+ def last_updated
28
+ File.exists?(path) && File.mtime(path)
29
+ end
30
+
31
+ def load_configuration
32
+ @last_loaded = last_updated
33
+
34
+ return Configuration.new_with_defaults if !File.exists?(path)
35
+
36
+ options = load_yaml(path)
37
+
38
+ if options && options.has_key?('default')
39
+ MultipleConfiguration.new(options)
40
+ else
41
+ Configuration.new_with_defaults(options)
42
+ end
43
+ end
44
+
45
+ def load_yaml(path)
46
+ YAML::load(ERB.new(IO.read(path)).result)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,76 @@
1
+ module TinyMCE::Rails
2
+ class Engine < ::Rails::Engine
3
+ config.tinymce = ActiveSupport::OrderedOptions.new
4
+
5
+ # Set an explicit base path for TinyMCE assets (usually defaults to /assets/tinymce)
6
+ config.tinymce.base = nil
7
+
8
+ # Set default configuration file path (defaults to config/tinymce.yml within the Rails root if unset)
9
+ config.tinymce.config_path = nil
10
+
11
+ # Set default installation method (:compile or :copy) for TinyMCE assets
12
+ # :compile - adds TinyMCE to the Sprockets load paths and creates non-digested symlinks to the digested versions
13
+ # :copy - copies across the TinyMCE assets statically
14
+ config.tinymce.install = :compile
15
+
16
+ initializer "precompile", :group => :all do |app|
17
+ app.config.assets.precompile << "tinymce/*" if config.tinymce.install == :compile
18
+ app.config.assets.precompile << "tinymce.js"
19
+ end
20
+
21
+ initializer "helper" do |app|
22
+ ActiveSupport.on_load(:action_view) do
23
+ include Helper
24
+ end
25
+ end
26
+
27
+ def self.base
28
+ config.tinymce.base || default_base
29
+ end
30
+
31
+ def self.default_base
32
+ File.join(asset_host || "", relative_url_root || "",
33
+ Rails.application.config.assets.prefix || "/",
34
+ "tinymce")
35
+ end
36
+
37
+ def self.relative_url_root
38
+ config = Rails.application.config
39
+
40
+ if config.respond_to?(:relative_url_root)
41
+ config.relative_url_root
42
+ else
43
+ # Fallback for Rails 3.1
44
+ config.action_controller.relative_url_root
45
+ end
46
+ end
47
+
48
+ def self.asset_host
49
+ host = Rails.application.config.action_controller.asset_host
50
+
51
+ if host.respond_to?(:call)
52
+ # Callable asset hosts cannot be supported during
53
+ # precompilation as there is no request object
54
+ nil
55
+ elsif host =~ /%d/
56
+ # Load all TinyMCE assets from the first asset host
57
+ normalize_host(host % 0)
58
+ else
59
+ normalize_host(host)
60
+ end
61
+ end
62
+
63
+ def self.normalize_host(host)
64
+ if host =~ /^https?:\/\// || host =~ /^\/\//
65
+ host
66
+ else
67
+ # Use a protocol-relative URL if not otherwise specified
68
+ "//#{host}"
69
+ end
70
+ end
71
+
72
+ def self.config_path
73
+ Rails.application.config.tinymce.config_path || ::Rails.root.join("config/tinymce.yml")
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,23 @@
1
+ #
2
+ # Rails 4.2 and sprockets-rails 3.0.0 introduces behaviour whereby asset
3
+ # digests are enabled by default in development mode and any requests to
4
+ # undigested assets raise a NoDigestError.
5
+ #
6
+ # Since tinymce-rails uses undigested assets for dynamically loaded TinyMCE
7
+ # assets, we need to bypass this behaviour by returning an empty fingerprint
8
+ # for assets beneath tinymce/ that don't already have one.
9
+ #
10
+ # This module extends the Sprockets::Rails::Environment class defined at:
11
+ # https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/rails/environment.rb
12
+ #
13
+ module TinyMCE::Rails::Environment
14
+ def path_fingerprint(path)
15
+ fingerprint = super
16
+ return fingerprint if fingerprint
17
+ return "" if path =~ /^tinymce\//
18
+ end
19
+ end
20
+
21
+ Sprockets::Rails::Environment.class_eval do
22
+ include TinyMCE::Rails::Environment
23
+ end
@@ -0,0 +1,75 @@
1
+ require 'active_support/core_ext/hash/keys'
2
+
3
+ module TinyMCE::Rails
4
+ module Helper
5
+ # Initializes TinyMCE on the current page based on the global configuration.
6
+ #
7
+ # Custom options can be set via the options hash, which will be passed to
8
+ # the TinyMCE init function.
9
+ #
10
+ # By default, all textareas with a class of "tinymce" will have the TinyMCE
11
+ # editor applied. The current locale will also be used as the language when
12
+ # TinyMCE language files are available, falling back to English if not
13
+ # available. The :editor_selector and :language options can be used to
14
+ # override these defaults.
15
+ #
16
+ # @example
17
+ # <%= tinymce(selector: "editorClass", theme: "inlite") %>
18
+ def tinymce(config=:default, options={})
19
+ javascript_tag(nonce: true) do
20
+ unless @_tinymce_configurations_added
21
+ concat tinymce_configurations_javascript
22
+ concat "\n"
23
+ @_tinymce_configurations_added = true
24
+ end
25
+
26
+ concat tinymce_javascript(config, options)
27
+ end
28
+ end
29
+
30
+ # Returns the JavaScript code required to initialize TinyMCE.
31
+ def tinymce_javascript(config=:default, options={})
32
+ options, config = config, :default if config.is_a?(Hash)
33
+ options = Configuration.new(options)
34
+
35
+ "TinyMCERails.initialize('#{config}', #{options.to_javascript});".html_safe
36
+ end
37
+
38
+ # Returns the JavaScript code for initializing each configuration defined within tinymce.yml.
39
+ def tinymce_configurations_javascript(options={})
40
+ javascript = []
41
+
42
+ TinyMCE::Rails.each_configuration do |name, config|
43
+ config = config.merge(options) if options.present?
44
+ javascript << "TinyMCERails.configuration.#{name} = #{config.to_javascript};".html_safe
45
+ end
46
+
47
+ safe_join(javascript, "\n")
48
+ end
49
+
50
+ # Returns the TinyMCE configuration object.
51
+ # It should be converted to JavaScript (via #to_javascript) for use within JavaScript.
52
+ def tinymce_configuration(config=:default, options={})
53
+ options, config = config, :default if config.is_a?(Hash)
54
+ options.stringify_keys!
55
+
56
+ base_configuration = TinyMCE::Rails.configuration
57
+
58
+ if base_configuration.is_a?(MultipleConfiguration)
59
+ base_configuration = base_configuration.fetch(config)
60
+ end
61
+
62
+ base_configuration.merge(options)
63
+ end
64
+
65
+ # Includes TinyMCE javascript assets via a script tag.
66
+ def tinymce_assets
67
+ javascript_include_tag "tinymce", "data-turbolinks-track" => "reload"
68
+ end
69
+
70
+ # Allow methods to be called as module functions:
71
+ # e.g. TinyMCE::Rails.tinymce_javascript
72
+ module_function :tinymce, :tinymce_javascript, :tinymce_configurations_javascript, :tinymce_configuration
73
+ public :tinymce, :tinymce_javascript, :tinymce_configurations_javascript, :tinymce_configuration
74
+ end
75
+ end
@@ -0,0 +1,6 @@
1
+ module TinyMCE
2
+ module Rails
3
+ VERSION = "5.1.4"
4
+ TINYMCE_VERSION = "5.1.4"
5
+ end
6
+ end
@@ -0,0 +1 @@
1
+ <svg width="24" height="24"><path d="M4 3h16c.6 0 1 .4 1 1v16c0 .6-.4 1-1 1H4a1 1 0 0 1-1-1V4c0-.6.4-1 1-1zm1 2v14h14V5H5zm4.8 2.6l5.6 4a.5.5 0 0 1 0 .8l-5.6 4A.5.5 0 0 1 9 16V8a.5.5 0 0 1 .8-.4z" fill-rule="nonzero"></path></svg>
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
+ * Licensed under the LGPL or a commercial license.
4
+ * For LGPL see License.txt in the project root for license information.
5
+ * For commercial licenses see https://www.tiny.cloud/
6
+ */
7
+ /**
8
+ * Jquery integration plugin.
9
+ *
10
+ * @class tinymce.core.JqueryIntegration
11
+ * @private
12
+ */
13
+ !function(){var f,c,u,p,d,s=[];d="undefined"!=typeof global?global:window,p=d.jQuery;function v(){
14
+ // Reference to tinymce needs to be lazily evaluated since tinymce
15
+ // might be loaded through the compressor or other means
16
+ return d.tinymce}p.fn.tinymce=function(o){var e,t,i,l=this,r="";
17
+ // No match then just ignore the call
18
+ if(!l.length)return l;
19
+ // Get editor instance
20
+ if(!o)return v()?v().get(l[0].id):null;l.css("visibility","hidden");function n(){var a=[],c=0;
21
+ // Apply patches to the jQuery object, only once
22
+ u||(m(),u=!0),
23
+ // Create an editor instance for each matched node
24
+ l.each(function(e,t){var n,i=t.id,r=o.oninit;
25
+ // Generate unique id for target element if needed
26
+ i||(t.id=i=v().DOM.uniqueId()),
27
+ // Only init the editor once
28
+ v().get(i)||(
29
+ // Create editor instance and render it
30
+ n=v().createEditor(i,o),a.push(n),n.on("init",function(){var e,t=r;l.css("visibility",""),
31
+ // Run this if the oninit setting is defined
32
+ // this logic will fire the oninit callback ones each
33
+ // matched editor instance is initialized
34
+ r&&++c==a.length&&("string"==typeof t&&(e=-1===t.indexOf(".")?null:v().resolve(t.replace(/\.\w+$/,"")),t=v().resolve(t)),
35
+ // Call the oninit function with the object
36
+ t.apply(e||v(),a))}))}),
37
+ // Render the editor instances in a separate loop since we
38
+ // need to have the full editors array used in the onInit calls
39
+ p.each(a,function(e,t){t.render()})}
40
+ // Load TinyMCE on demand, if we need to
41
+ if(d.tinymce||c||!(e=o.script_url))
42
+ // Delay the init call until tinymce is loaded
43
+ 1===c?s.push(n):n();else{c=1,t=e.substring(0,e.lastIndexOf("/")),
44
+ // Check if it's a dev/src version they want to load then
45
+ // make sure that all plugins, themes etc are loaded in source mode as well
46
+ -1!=e.indexOf(".min")&&(r=".min"),
47
+ // Setup tinyMCEPreInit object this will later be used by the TinyMCE
48
+ // core script to locate other resources like CSS files, dialogs etc
49
+ // You can also predefined a tinyMCEPreInit object and then it will use that instead
50
+ d.tinymce=d.tinyMCEPreInit||{base:t,suffix:r},
51
+ // url contains gzip then we assume it's a compressor
52
+ -1!=e.indexOf("gzip")&&(i=o.language||"en",e=e+(/\?/.test(e)?"&":"?")+"js=true&core=true&suffix="+escape(r)+"&themes="+escape(o.theme||"modern")+"&plugins="+escape(o.plugins||"")+"&languages="+(i||""),
53
+ // Check if compressor script is already loaded otherwise setup a basic one
54
+ d.tinyMCE_GZ||(d.tinyMCE_GZ={start:function(){function n(e){v().ScriptLoader.markDone(v().baseURI.toAbsolute(e))}
55
+ // Add core languages
56
+ n("langs/"+i+".js"),
57
+ // Add themes with languages
58
+ n("themes/"+o.theme+"/theme"+r+".js"),n("themes/"+o.theme+"/langs/"+i+".js"),
59
+ // Add plugins with languages
60
+ p.each(o.plugins.split(","),function(e,t){t&&(n("plugins/"+t+"/plugin"+r+".js"),n("plugins/"+t+"/langs/"+i+".js"))})},end:function(){}}));var a=document.createElement("script");a.type="text/javascript",a.onload=a.onreadystatechange=function(e){e=e||window.event,2===c||"load"!=e.type&&!/complete|loaded/.test(a.readyState)||(v().dom.Event.domLoaded=1,c=2,
61
+ // Execute callback after mainscript has been loaded and before the initialization occurs
62
+ o.script_loaded&&o.script_loaded(),n(),p.each(s,function(e,t){t()}))},a.src=e,document.body.appendChild(a)}return l},
63
+ // Add :tinymce pseudo selector this will select elements that has been converted into editor instances
64
+ // it's now possible to use things like $('*:tinymce') to get all TinyMCE bound elements.
65
+ p.extend(p.expr[":"],{tinymce:function(e){var t;return!!(e.id&&"tinymce"in d&&(t=v().get(e.id))&&t.editorManager===v())}});
66
+ // This function patches internal jQuery functions so that if
67
+ // you for example remove an div element containing an editor it's
68
+ // automatically destroyed by the TinyMCE API
69
+ var m=function(){function r(e){
70
+ // If the function is remove
71
+ "remove"===e&&this.each(function(e,t){var n=u(t);n&&n.remove()}),this.find("span.mceEditor,div.mceEditor").each(function(e,t){var n=v().get(t.id.replace(/_parent$/,""));n&&n.remove()})}function o(i){var e,t=this;
72
+ // Handle set value
73
+ /*jshint eqnull:true */if(null!=i)r.call(t),
74
+ // Saves the contents before get/set value of textarea/div
75
+ t.each(function(e,t){var n;(n=v().get(t.id))&&n.setContent(i)});else if(0<t.length&&(e=v().get(t[0].id)))return e.getContent()}function l(e){return!!(e&&e.length&&d.tinymce&&e.is(":tinymce"))}
76
+ // Removes any child editor instances by looking for editor wrapper elements
77
+ var u=function(e){var t=null;return e&&e.id&&d.tinymce&&(t=v().get(e.id)),t},s={};
78
+ // Loads or saves contents from/to textarea if the value
79
+ // argument is defined it will set the TinyMCE internal contents
80
+ // Patch some setter/getter functions these will
81
+ // now be able to set/get the contents of editor instances for
82
+ // example $('#editorid').html('Content'); will update the TinyMCE iframe instance
83
+ p.each(["text","html","val"],function(e,t){var a=s[t]=p.fn[t],c="text"===t;p.fn[t]=function(e){var t=this;if(!l(t))return a.apply(t,arguments);if(e!==f)return o.call(t.filter(":tinymce"),e),a.apply(t.not(":tinymce"),arguments),t;// return original set for chaining
84
+ var i="",r=arguments;return(c?t:t.eq(0)).each(function(e,t){var n=u(t);i+=n?c?n.getContent().replace(/<(?:"[^"]*"|'[^']*'|[^'">])*>/g,""):n.getContent({save:!0}):a.apply(p(t),r)}),i}}),
85
+ // Makes it possible to use $('#id').append("content"); to append contents to the TinyMCE editor iframe
86
+ p.each(["append","prepend"],function(e,t){var n=s[t]=p.fn[t],r="prepend"===t;p.fn[t]=function(i){var e=this;return l(e)?i!==f?("string"==typeof i&&e.filter(":tinymce").each(function(e,t){var n=u(t);n&&n.setContent(r?i+n.getContent():n.getContent()+i)}),n.apply(e.not(":tinymce"),arguments),e):void 0:n.apply(e,arguments)}}),
87
+ // Makes sure that the editor instance gets properly destroyed when the parent element is removed
88
+ p.each(["remove","replaceWith","replaceAll","empty"],function(e,t){var n=s[t]=p.fn[t];p.fn[t]=function(){return r.call(this,t),n.apply(this,arguments)}}),s.attr=p.fn.attr,
89
+ // Makes sure that $('#tinymce_id').attr('value') gets the editors current HTML contents
90
+ p.fn.attr=function(e,t){var n=this,i=arguments;if(!e||"value"!==e||!l(n))return s.attr.apply(n,i);if(t!==f)return o.call(n.filter(":tinymce"),t),s.attr.apply(n.not(":tinymce"),i),n;// return original set for chaining
91
+ var r=n[0],a=u(r);return a?a.getContent({save:!0}):s.attr.apply(p(r),i)}}}();
@@ -0,0 +1,178 @@
1
+ tinymce.addI18n('ar',{
2
+ "Cut": "\u0642\u0635",
3
+ "Header 2": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 2",
4
+ "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0645\u062a\u0635\u0641\u062d\u0643 \u0644\u0627 \u064a\u062f\u0639\u0645 \u0627\u0644\u0648\u0635\u0648\u0644 \u0627\u0644\u0645\u0628\u0627\u0634\u0631 \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0641\u0638\u0629. \u0627\u0644\u0631\u062c\u0627\u0621 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u062e\u062a\u0635\u0627\u0631\u0627\u062a \u0644\u0648\u062d\u0629 \u0627\u0644\u0645\u0641\u0627\u062a\u064a\u062d Ctrl+X\/C\/V \u0628\u062f\u0644\u0627 \u0645\u0646 \u0630\u0644\u0643.",
5
+ "Div": "Div",
6
+ "Paste": "\u0644\u0635\u0642",
7
+ "Close": "\u0625\u063a\u0644\u0627\u0642",
8
+ "Font Family": "\u0639\u0627\u0626\u0644\u0629 \u0627\u0644\u062e\u0637",
9
+ "Pre": "\u0628\u0627\u062f\u0626\u0629",
10
+ "Align right": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0645\u064a\u0646",
11
+ "New document": "\u0645\u0633\u062a\u0646\u062f \u062c\u062f\u064a\u062f",
12
+ "Blockquote": "\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0627\u0642\u062a\u0628\u0627\u0633",
13
+ "Numbered list": "\u062a\u0631\u0642\u064a\u0645",
14
+ "Increase indent": "\u0632\u064a\u0627\u062f\u0629 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
15
+ "Formats": "\u0627\u0644\u062a\u0646\u0633\u064a\u0642\u0627\u062a",
16
+ "Headers": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646",
17
+ "Select all": "\u062a\u062d\u062f\u064a\u062f \u0627\u0644\u0643\u0644",
18
+ "Header 3": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 3",
19
+ "Blocks": "\u0627\u0644\u0623\u0642\u0633\u0627\u0645",
20
+ "Undo": "\u062a\u0631\u0627\u062c\u0639",
21
+ "Strikethrough": "\u064a\u062a\u0648\u0633\u0637 \u062e\u0637",
22
+ "Bullet list": "\u062a\u0639\u062f\u0627\u062f \u0646\u0642\u0637\u064a",
23
+ "Header 1": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 1",
24
+ "Superscript": "\u0645\u0631\u062a\u0641\u0639",
25
+ "Clear formatting": "\u0645\u0633\u062d \u0627\u0644\u062a\u0646\u0633\u064a\u0642",
26
+ "Font Sizes": "\u062d\u062c\u0645 \u0627\u0644\u062e\u0637",
27
+ "Subscript": "\u0645\u0646\u062e\u0641\u0636",
28
+ "Header 6": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 6",
29
+ "Redo": "\u0625\u0639\u0627\u062f\u0629",
30
+ "Paragraph": "\u0641\u0642\u0631\u0629",
31
+ "Ok": "\u0645\u0648\u0627\u0641\u0642",
32
+ "Bold": "\u063a\u0627\u0645\u0642",
33
+ "Code": "\u0643\u0648\u062f",
34
+ "Italic": "\u0645\u0627\u0626\u0644",
35
+ "Align center": "\u062a\u0648\u0633\u064a\u0637",
36
+ "Header 5": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 5",
37
+ "Decrease indent": "\u0625\u0646\u0642\u0627\u0635 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0627\u0644\u0628\u0627\u062f\u0626\u0629",
38
+ "Header 4": "\u0627\u0644\u0639\u0646\u0627\u0648\u064a\u0646 4",
39
+ "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u0635\u0642 \u0645\u0646 \u062d\u0627\u0644\u064a\u0627 \u0628\u0637\u0631\u064a\u0642\u0629 \u0627\u0644\u0646\u0635 \u0627\u0644\u0639\u0627\u062f\u064a. \u0633\u064a\u062a\u0645\u0643\u0646 \u0627\u0644\u0622\u0646 \u0645\u0646 \u0644\u0635\u0642 \u0643\u0644 \u0627\u0644\u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0643\u0646\u0635 \u0639\u0627\u062f\u064a \u062d\u062a\u0649 \u062a\u0642\u0648\u0645 \u0628\u062a\u0639\u0637\u064a\u0644 \u0647\u0630\u0627 \u0627\u0644\u062e\u064a\u0627\u0631.",
40
+ "Underline": "\u062a\u0633\u0637\u064a\u0631",
41
+ "Cancel": "\u0625\u0644\u063a\u0627\u0621",
42
+ "Justify": "\u0636\u0628\u0637",
43
+ "Inline": "\u062e\u0644\u0627\u0644",
44
+ "Copy": "\u0646\u0633\u062e",
45
+ "Align left": "\u0645\u062d\u0627\u0630\u0627\u0629 \u0627\u0644\u0646\u0635 \u0644\u0644\u064a\u0633\u0627\u0631",
46
+ "Visual aids": "\u0627\u0644\u0645\u0639\u064a\u0646\u0627\u062a \u0627\u0644\u0628\u0635\u0631\u064a\u0629",
47
+ "Lower Greek": "\u062a\u0631\u0642\u064a\u0645 \u064a\u0648\u0646\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
48
+ "Square": "\u0645\u0631\u0628\u0639",
49
+ "Default": "\u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a",
50
+ "Lower Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062e\u0631\u0641 \u0635\u063a\u064a\u0631\u0629",
51
+ "Circle": "\u062f\u0627\u0626\u0631\u0629",
52
+ "Disc": "\u0642\u0631\u0635",
53
+ "Upper Alpha": "\u062a\u0631\u0642\u064a\u0645 \u0623\u062d\u0631\u0641 \u0643\u0628\u064a\u0631\u0629",
54
+ "Upper Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0643\u0628\u064a\u0631",
55
+ "Lower Roman": "\u062a\u0631\u0642\u064a\u0645 \u0631\u0648\u0645\u0627\u0646\u064a \u0635\u063a\u064a\u0631",
56
+ "Name": "\u0627\u0644\u0627\u0633\u0645",
57
+ "Anchor": "\u0645\u0631\u0633\u0627\u0629",
58
+ "You have unsaved changes are you sure you want to navigate away?": "\u0644\u062f\u064a\u0643 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0644\u0645 \u064a\u062a\u0645 \u062d\u0641\u0638\u0647\u0627 \u0647\u0644 \u0623\u0646\u062a \u0645\u062a\u0623\u0643\u062f \u0623\u0646\u0643 \u062a\u0631\u063a\u0628 \u0641\u064a \u0627\u0644\u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0639\u064a\u062f\u0627\u061f",
59
+ "Restore last draft": "\u0627\u0633\u062a\u0639\u0627\u062f\u0629 \u0623\u062e\u0631 \u0645\u0633\u0648\u062f\u0629",
60
+ "Special character": "\u0631\u0645\u0632",
61
+ "Source code": "\u0634\u0641\u0631\u0629 \u0627\u0644\u0645\u0635\u062f\u0631",
62
+ "Right to left": "\u0645\u0646 \u0627\u0644\u064a\u0645\u064a\u0646 \u0644\u0644\u064a\u0633\u0627\u0631",
63
+ "Left to right": "\u0645\u0646 \u0627\u0644\u064a\u0633\u0627\u0631 \u0644\u0644\u064a\u0645\u064a\u0646",
64
+ "Emoticons": "\u0627\u0644\u0631\u0645\u0648\u0632",
65
+ "Robots": "\u0627\u0644\u0631\u0648\u0628\u0648\u062a\u0627\u062a",
66
+ "Document properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0645\u0633\u062a\u0646\u062f",
67
+ "Title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
68
+ "Keywords": "\u0643\u0644\u0645\u0627\u062a \u0627\u0644\u0628\u062d\u062b",
69
+ "Encoding": "\u0627\u0644\u062a\u0631\u0645\u064a\u0632",
70
+ "Description": "\u0627\u0644\u0648\u0635\u0641",
71
+ "Author": "\u0627\u0644\u0643\u0627\u062a\u0628",
72
+ "Fullscreen": "\u0645\u0644\u0621 \u0627\u0644\u0634\u0627\u0634\u0629",
73
+ "Horizontal line": "\u062e\u0637 \u0623\u0641\u0642\u064a",
74
+ "Horizontal space": "\u0645\u0633\u0627\u0641\u0629 \u0623\u0641\u0642\u064a\u0629",
75
+ "Insert\/edit image": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0635\u0648\u0631\u0629",
76
+ "General": "\u0639\u0627\u0645",
77
+ "Advanced": "\u062e\u0635\u0627\u0626\u0635 \u0645\u062a\u0642\u062f\u0645\u0647",
78
+ "Source": "\u0627\u0644\u0645\u0635\u062f\u0631",
79
+ "Border": "\u062d\u062f\u0648\u062f",
80
+ "Constrain proportions": "\u0627\u0644\u062a\u0646\u0627\u0633\u0628",
81
+ "Vertical space": "\u0645\u0633\u0627\u0641\u0629 \u0639\u0645\u0648\u062f\u064a\u0629",
82
+ "Image description": "\u0648\u0635\u0641 \u0627\u0644\u0635\u0648\u0631\u0629",
83
+ "Style": "\u0627\u0644\u0646\u0645\u0637 \/ \u0627\u0644\u0634\u0643\u0644",
84
+ "Dimensions": "\u0627\u0644\u0623\u0628\u0639\u0627\u062f",
85
+ "Insert image": "\u0625\u062f\u0631\u0627\u062c \u0635\u0648\u0631\u0629",
86
+ "Insert date\/time": "\u0625\u062f\u0631\u0627\u062c \u062a\u0627\u0631\u064a\u062e\/\u0648\u0642\u062a",
87
+ "Remove link": "\u062d\u0630\u0641 \u0627\u0644\u0631\u0627\u0628\u0637",
88
+ "Url": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646",
89
+ "Text to display": "\u0627\u0644\u0646\u0635 \u0627\u0644\u0645\u0637\u0644\u0648\u0628 \u0639\u0631\u0636\u0647",
90
+ "Anchors": "\u0645\u0631\u0633\u0627\u0629",
91
+ "Insert link": "\u0625\u062f\u0631\u0627\u062c \u0631\u0627\u0628\u0637",
92
+ "New window": "\u0646\u0627\u0641\u0630\u0629 \u062c\u062f\u064a\u062f\u0629",
93
+ "None": "\u0628\u0644\u0627",
94
+ "Target": "\u0627\u0644\u0625\u0637\u0627\u0631 \u0627\u0644\u0647\u062f\u0641",
95
+ "Insert\/edit link": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0631\u0627\u0628\u0637",
96
+ "Insert\/edit video": "\u0625\u062f\u0631\u0627\u062c\/\u062a\u062d\u0631\u064a\u0631 \u0641\u064a\u062f\u064a\u0648",
97
+ "Poster": "\u0645\u0644\u0635\u0642",
98
+ "Alternative source": "\u0645\u0635\u062f\u0631 \u0628\u062f\u064a\u0644",
99
+ "Paste your embed code below:": "\u0644\u0635\u0642 \u0643\u0648\u062f \u0627\u0644\u062a\u0636\u0645\u064a\u0646 \u0647\u0646\u0627:",
100
+ "Insert video": "\u0625\u062f\u0631\u0627\u062c \u0641\u064a\u062f\u064a\u0648",
101
+ "Embed": "\u062a\u0636\u0645\u064a\u0646",
102
+ "Nonbreaking space": "\u0645\u0633\u0627\u0641\u0629 \u063a\u064a\u0631 \u0645\u0646\u0642\u0633\u0645\u0629",
103
+ "Page break": "\u0641\u0627\u0635\u0644 \u0644\u0644\u0635\u0641\u062d\u0629",
104
+ "Paste as text": "\u0644\u0635\u0642 \u0643\u0646\u0635",
105
+ "Preview": "\u0645\u0639\u0627\u064a\u0646\u0629",
106
+ "Print": "\u0637\u0628\u0627\u0639\u0629",
107
+ "Save": "\u062d\u0641\u0638",
108
+ "Could not find the specified string.": "\u062a\u0639\u0630\u0631 \u0627\u0644\u0639\u062b\u0648\u0631 \u0639\u0644\u0649 \u0627\u0644\u0643\u0644\u0645\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629",
109
+ "Replace": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
110
+ "Next": "\u0627\u0644\u062a\u0627\u0644\u064a",
111
+ "Whole words": "\u0645\u0637\u0627\u0628\u0642\u0629 \u0627\u0644\u0643\u0644\u0645\u0627\u062a \u0628\u0627\u0644\u0643\u0627\u0645\u0644",
112
+ "Find and replace": "\u0628\u062d\u062b \u0648\u0627\u0633\u062a\u0628\u062f\u0627\u0644",
113
+ "Replace with": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0628\u0640",
114
+ "Find": "\u0628\u062d\u062b",
115
+ "Replace all": "\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0627\u0644\u0643\u0644",
116
+ "Match case": "\u0645\u0637\u0627\u0628\u0642\u0629 \u062d\u0627\u0644\u0629 \u0627\u0644\u0623\u062d\u0631\u0641",
117
+ "Prev": "\u0627\u0644\u0633\u0627\u0628\u0642",
118
+ "Spellcheck": "\u062a\u062f\u0642\u064a\u0642 \u0625\u0645\u0644\u0627\u0626\u064a",
119
+ "Finish": "\u0627\u0646\u062a\u0647\u064a",
120
+ "Ignore all": "\u062a\u062c\u0627\u0647\u0644 \u0627\u0644\u0643\u0644",
121
+ "Ignore": "\u062a\u062c\u0627\u0647\u0644",
122
+ "Insert row before": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
123
+ "Rows": "\u0639\u062f\u062f \u0627\u0644\u0635\u0641\u0648\u0641",
124
+ "Height": "\u0627\u0631\u062a\u0641\u0627\u0639",
125
+ "Paste row after": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
126
+ "Alignment": "\u0645\u062d\u0627\u0630\u0627\u0629",
127
+ "Column group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0639\u0645\u0648\u062f",
128
+ "Row": "\u0635\u0641",
129
+ "Insert column before": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0633\u0627\u0631",
130
+ "Split cell": "\u062a\u0642\u0633\u064a\u0645 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
131
+ "Cell padding": "\u062a\u0628\u0627\u0639\u062f \u0627\u0644\u062e\u0644\u064a\u0629",
132
+ "Cell spacing": "\u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0628\u064a\u0646 \u0627\u0644\u062e\u0644\u0627\u064a\u0627",
133
+ "Row type": "\u0646\u0648\u0639 \u0627\u0644\u0635\u0641",
134
+ "Insert table": "\u0625\u062f\u0631\u0627\u062c \u062c\u062f\u0648\u0644",
135
+ "Body": "\u0647\u064a\u0643\u0644",
136
+ "Caption": "\u0634\u0631\u062d",
137
+ "Footer": "\u062a\u0630\u064a\u064a\u0644",
138
+ "Delete row": "\u062d\u0630\u0641 \u0635\u0641",
139
+ "Paste row before": "\u0644\u0635\u0642 \u0627\u0644\u0635\u0641 \u0644\u0644\u0623\u0639\u0644\u0649",
140
+ "Scope": "\u0627\u0644\u0645\u062c\u0627\u0644",
141
+ "Delete table": "\u062d\u0630\u0641 \u062c\u062f\u0648\u0644",
142
+ "Header cell": "\u0631\u0623\u0633 \u0627\u0644\u062e\u0644\u064a\u0629",
143
+ "Column": "\u0639\u0645\u0648\u062f",
144
+ "Cell": "\u062e\u0644\u064a\u0629",
145
+ "Header": "\u0627\u0644\u0631\u0623\u0633",
146
+ "Cell type": "\u0646\u0648\u0639 \u0627\u0644\u062e\u0644\u064a\u0629",
147
+ "Copy row": "\u0646\u0633\u062e \u0627\u0644\u0635\u0641",
148
+ "Row properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u0635\u0641",
149
+ "Table properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062c\u062f\u0648\u0644",
150
+ "Row group": "\u0645\u062c\u0645\u0648\u0639\u0629 \u0635\u0641",
151
+ "Right": "\u064a\u0645\u064a\u0646",
152
+ "Insert column after": "\u0625\u062f\u0631\u0627\u062c \u0639\u0645\u0648\u062f \u0644\u0644\u064a\u0645\u064a\u0646",
153
+ "Cols": "\u0639\u062f\u062f \u0627\u0644\u0623\u0639\u0645\u062f\u0629",
154
+ "Insert row after": "\u0625\u062f\u0631\u0627\u062c \u0635\u0641 \u0644\u0644\u0623\u0633\u0641\u0644",
155
+ "Width": "\u0639\u0631\u0636",
156
+ "Cell properties": "\u062e\u0635\u0627\u0626\u0635 \u0627\u0644\u062e\u0644\u064a\u0629",
157
+ "Left": "\u064a\u0633\u0627\u0631",
158
+ "Cut row": "\u0642\u0635 \u0627\u0644\u0635\u0641",
159
+ "Delete column": "\u062d\u0630\u0641 \u0639\u0645\u0648\u062f",
160
+ "Center": "\u062a\u0648\u0633\u064a\u0637",
161
+ "Merge cells": "\u062f\u0645\u062c \u062e\u0644\u0627\u064a\u0627",
162
+ "Insert template": "\u0625\u062f\u0631\u0627\u062c \u0642\u0627\u0644\u0628",
163
+ "Templates": "\u0642\u0648\u0627\u0644\u0628",
164
+ "Background color": "\u0644\u0648\u0646 \u0627\u0644\u062e\u0644\u0641\u064a\u0629",
165
+ "Text color": "\u0644\u0648\u0646 \u0627\u0644\u0646\u0635",
166
+ "Show blocks": "\u0645\u0634\u0627\u0647\u062f\u0629 \u0627\u0644\u0643\u062a\u0644",
167
+ "Show invisible characters": "\u0623\u0638\u0647\u0631 \u0627\u0644\u0623\u062d\u0631\u0641 \u0627\u0644\u063a\u064a\u0631 \u0645\u0631\u0626\u064a\u0629",
168
+ "Words: {0}": "\u0627\u0644\u0643\u0644\u0645\u0627\u062a:{0}",
169
+ "Insert": "\u0625\u062f\u0631\u0627\u062c",
170
+ "File": "\u0645\u0644\u0641",
171
+ "Edit": "\u062a\u062d\u0631\u064a\u0631",
172
+ "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0645\u0646\u0637\u0642\u0629 \u0646\u0635 \u0645\u0646\u0633\u0642. \u0627\u0636\u063a\u0637 ALT-F9 \u0644\u0644\u0642\u0627\u0626\u0645\u0629. \u0627\u0636\u063a\u0637 ALT-F10 \u0644\u0634\u0631\u064a\u0637 \u0627\u0644\u0623\u062f\u0648\u0627\u062a. \u0627\u0636\u063a\u0637 ALT-0 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0645\u0633\u0627\u0639\u062f\u0629",
173
+ "Tools": "\u0623\u062f\u0627\u0648\u0627\u062a",
174
+ "View": "\u0639\u0631\u0636",
175
+ "Table": "\u062c\u062f\u0648\u0644",
176
+ "Format": "\u062a\u0646\u0633\u064a\u0642",
177
+ "_dir": "rtl"
178
+ });