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.
- checksums.yaml +7 -0
- data/LICENSE +19 -0
- data/README.md +181 -0
- data/Rakefile +55 -0
- data/app/assets/javascripts/tinymce-jquery.js +2 -0
- data/app/assets/javascripts/tinymce.js +3 -0
- data/app/assets/javascripts/tinymce/preinit.js.erb +4 -0
- data/app/assets/javascripts/tinymce/rails.js +51 -0
- data/app/assets/source/tinymce/tinymce.js +28251 -0
- data/lib/tasks/tinymce-assets.rake +16 -0
- data/lib/tinymce-rails.rb +1 -0
- data/lib/tinymce/rails.rb +27 -0
- data/lib/tinymce/rails/asset_installer.rb +64 -0
- data/lib/tinymce/rails/asset_installer/compile.rb +44 -0
- data/lib/tinymce/rails/asset_installer/copy.rb +54 -0
- data/lib/tinymce/rails/asset_installer/copy_no_preserve.rb +14 -0
- data/lib/tinymce/rails/asset_manifest.rb +141 -0
- data/lib/tinymce/rails/configuration.rb +157 -0
- data/lib/tinymce/rails/configuration_file.rb +49 -0
- data/lib/tinymce/rails/engine.rb +76 -0
- data/lib/tinymce/rails/environment.rb +23 -0
- data/lib/tinymce/rails/helper.rb +75 -0
- data/lib/tinymce/rails/version.rb +6 -0
- data/vendor/assets/images/fa-utube.svg +1 -0
- data/vendor/assets/javascripts/tinymce/jquery.tinymce.js +91 -0
- data/vendor/assets/javascripts/tinymce/langs/ar.js +178 -0
- data/vendor/assets/javascripts/tinymce/langs/az.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/be.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/bg_BG.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/bs.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ca.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/cs.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/cy.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/da.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/de.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/de_AT.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/dv.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/el.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/en_CA.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/en_GB.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/es.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/et.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/eu.js +176 -0
- data/vendor/assets/javascripts/tinymce/langs/fa.js +178 -0
- data/vendor/assets/javascripts/tinymce/langs/fi.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/fo.js +156 -0
- data/vendor/assets/javascripts/tinymce/langs/fr_FR.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/gl.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/he_IL.js +178 -0
- data/vendor/assets/javascripts/tinymce/langs/hr.js +175 -0
- data/vendor/assets/javascripts/tinymce/langs/hu_HU.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/hy.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/id.js +71 -0
- data/vendor/assets/javascripts/tinymce/langs/is_IS.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/it.js +176 -0
- data/vendor/assets/javascripts/tinymce/langs/ja.js +174 -0
- data/vendor/assets/javascripts/tinymce/langs/ka_GE.js +172 -0
- data/vendor/assets/javascripts/tinymce/langs/kk.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/km_KH.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ko_KR.js +175 -0
- data/vendor/assets/javascripts/tinymce/langs/lb.js +175 -0
- data/vendor/assets/javascripts/tinymce/langs/lt.js +83 -0
- data/vendor/assets/javascripts/tinymce/langs/lv.js +175 -0
- data/vendor/assets/javascripts/tinymce/langs/ml_IN.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/nb_NO.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/nl.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/pl.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/pt_BR.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/pt_PT.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/readme.md +3 -0
- data/vendor/assets/javascripts/tinymce/langs/ro.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ru.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/si_LK.js +156 -0
- data/vendor/assets/javascripts/tinymce/langs/sk.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/sl_SI.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/sr.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/sv_SE.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ta.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ta_IN.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/tg.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/th_TH.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/tr_TR.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/ug.js +159 -0
- data/vendor/assets/javascripts/tinymce/langs/uk.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/uk_UA.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/vi.js +137 -0
- data/vendor/assets/javascripts/tinymce/langs/vi_VN.js +173 -0
- data/vendor/assets/javascripts/tinymce/langs/zh_CN.js +177 -0
- data/vendor/assets/javascripts/tinymce/langs/zh_TW.js +177 -0
- data/vendor/assets/javascripts/tinymce/license.txt +504 -0
- data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/bbcode/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/js/emojis.js +2 -0
- data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +2453 -0
- data/vendor/assets/javascripts/tinymce/plugins/image/plugin.min.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/image/styles.css +27 -0
- data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +9 -0
- data/vendor/assets/javascripts/tinymce/plugins/yt-upload/plugin.js +722 -0
- data/vendor/assets/javascripts/tinymce/skins/content/dark/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/dark/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/default/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/default/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/document/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/document/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/writer/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/content/writer/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.mobile.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.mobile.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.mobile.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.mobile.css +7 -0
- data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
- data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +9 -0
- data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +9 -0
- data/vendor/assets/javascripts/tinymce/tinymce.js +9 -0
- 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 @@
|
|
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
|
+
});
|