alchemy_cms 3.1.0.beta1 → 3.1.0.beta2

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +4 -2
  4. data/README.md +9 -1
  5. data/alchemy_cms.gemspec +24 -13
  6. data/app/assets/javascripts/alchemy/alchemy.autocomplete.js.coffee +1 -1
  7. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
  8. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +9 -0
  9. data/app/assets/javascripts/alchemy/alchemy.js +4 -0
  10. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +3 -2
  11. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +2 -0
  12. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +43 -1
  13. data/app/assets/stylesheets/alchemy/_mixins.scss +1 -2
  14. data/app/assets/stylesheets/alchemy/archive.scss +1 -1
  15. data/app/assets/stylesheets/alchemy/base.scss +18 -1
  16. data/app/assets/stylesheets/alchemy/buttons.scss +5 -0
  17. data/app/assets/stylesheets/alchemy/dialogs.scss +0 -1
  18. data/app/assets/stylesheets/alchemy/frame.scss +17 -10
  19. data/app/assets/stylesheets/alchemy/menubar.css.scss +3 -0
  20. data/app/assets/stylesheets/alchemy/tables.scss +30 -8
  21. data/app/controllers/alchemy/admin/attachments_controller.rb +9 -1
  22. data/app/controllers/alchemy/admin/essence_files_controller.rb +3 -4
  23. data/app/controllers/alchemy/pages_controller.rb +20 -2
  24. data/app/models/alchemy/content.rb +2 -1
  25. data/app/models/alchemy/element.rb +1 -1
  26. data/app/views/alchemy/admin/attachments/_files_list.html.erb +22 -18
  27. data/app/views/alchemy/admin/attachments/index.html.erb +1 -1
  28. data/app/views/alchemy/admin/languages/_table.html.erb +29 -25
  29. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  30. data/app/views/alchemy/admin/pictures/info.html.erb +3 -2
  31. data/app/views/alchemy/admin/resources/_table.html.erb +17 -13
  32. data/app/views/alchemy/admin/resources/index.html.erb +1 -1
  33. data/app/views/alchemy/admin/sites/index.html.erb +1 -1
  34. data/app/views/alchemy/admin/tags/edit.html.erb +1 -1
  35. data/app/views/alchemy/admin/tags/index.html.erb +14 -10
  36. data/app/views/alchemy/essences/_essence_file_editor.html.erb +20 -24
  37. data/app/views/alchemy/messages/contact_form_mail.es.text.erb +12 -0
  38. data/app/views/layouts/alchemy/admin.html.erb +2 -0
  39. data/bin/alchemy +58 -26
  40. data/config/locales/alchemy.en.yml +2 -1
  41. data/config/locales/alchemy.es.yml +958 -0
  42. data/config/locales/alchemy.fr.yml +1 -1
  43. data/config/locales/alchemy.ru.yml +837 -0
  44. data/config/locales/simple_form.es.yml +6 -0
  45. data/config/locales/simple_form.ru.yml +25 -0
  46. data/lib/alchemy/engine.rb +11 -0
  47. data/lib/alchemy/essence.rb +12 -1
  48. data/lib/alchemy/resources_helper.rb +3 -1
  49. data/lib/alchemy/test_support/essence_shared_examples.rb +37 -0
  50. data/lib/alchemy/test_support/factories.rb +2 -0
  51. data/lib/alchemy/version.rb +1 -1
  52. data/lib/rails/generators/alchemy/module/templates/module_config.rb.tt +4 -2
  53. data/lib/rails/generators/alchemy/scaffold/files/alchemy.es.yml +31 -0
  54. data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +1 -0
  55. data/lib/rails/templates/alchemy.rb +2 -0
  56. data/lib/tasks/alchemy/install.rake +11 -7
  57. data/spec/controllers/admin/attachments_controller_spec.rb +21 -0
  58. data/spec/controllers/admin/essence_files_controller_spec.rb +13 -12
  59. data/spec/controllers/alchemy/api/contents_controller_spec.rb +4 -4
  60. data/spec/controllers/attachments_controller_spec.rb +18 -0
  61. data/spec/controllers/pages_controller_spec.rb +20 -3
  62. data/spec/dummy/db/migrate/20121026104128_create_events.rb +2 -0
  63. data/spec/dummy/db/schema.rb +5 -3
  64. data/spec/features/admin/resources_integration_spec.rb +5 -0
  65. data/spec/features/page_feature_spec.rb +20 -0
  66. data/spec/models/content_spec.rb +24 -2
  67. data/spec/models/element_spec.rb +11 -0
  68. data/spec/views/essences/essence_file_editor_spec.rb +61 -0
  69. data/vendor/assets/javascripts/jquery_plugins/jquery.floatThead.min.js +3 -0
  70. data/vendor/assets/javascripts/tinymce/langs/es.js +197 -0
  71. data/vendor/assets/javascripts/tinymce/langs/ru.js +197 -0
  72. metadata +53 -38
@@ -279,12 +279,14 @@ ActiveRecord::Schema.define(version: 20140701160225) do
279
279
  t.string "hidden_name"
280
280
  t.datetime "starts_at"
281
281
  t.datetime "ends_at"
282
+ t.time "lunch_starts_at"
283
+ t.time "lunch_ends_at"
282
284
  t.text "description"
283
- t.decimal "entrance_fee", precision: 6, scale: 2
285
+ t.decimal "entrance_fee", precision: 6, scale: 2
284
286
  t.boolean "published"
285
287
  t.integer "location_id"
286
- t.datetime "created_at", null: false
287
- t.datetime "updated_at", null: false
288
+ t.datetime "created_at", null: false
289
+ t.datetime "updated_at", null: false
288
290
  end
289
291
 
290
292
  create_table "locations", force: true do |t|
@@ -37,6 +37,11 @@ describe "Resources" do
37
37
  expect(page).to have_selector('input#event_starts_at[type="date"]')
38
38
  expect(page).to have_selector('textarea#event_description')
39
39
  expect(page).to have_selector('input#event_published[type="checkbox"]')
40
+ expect(page).to have_selector('input#event_lunch_starts_at_1i[type="hidden"]')
41
+ expect(page).to have_selector('input#event_lunch_starts_at_2i[type="hidden"]')
42
+ expect(page).to have_selector('input#event_lunch_starts_at_3i[type="hidden"]')
43
+ expect(page).to have_selector('select#event_lunch_starts_at_4i')
44
+ expect(page).to have_selector('select#event_lunch_starts_at_5i')
40
45
  end
41
46
 
42
47
  it "should have a select box for associated models" do
@@ -33,6 +33,16 @@ module Alchemy
33
33
  allow_any_instance_of(PagesController).to receive(:multi_language?).and_return(true)
34
34
  end
35
35
 
36
+ let(:second_page) { FactoryGirl.create(:public_page, name: 'Second Page') }
37
+ let(:legacy_url) { LegacyPageUrl.create(urlname: 'index.php?option=com_content&view=article&id=48&Itemid=69', page: second_page) }
38
+
39
+ it "should redirect legacy url with unknown format & query string" do
40
+ visit "/#{legacy_url.urlname}"
41
+ uri = URI.parse(page.current_url)
42
+ expect(uri.query).to be_nil
43
+ expect(uri.request_uri).to eq("/en/#{second_page.urlname}")
44
+ end
45
+
36
46
  context "if no language params are given" do
37
47
  it "should redirect to url with nested language code" do
38
48
  visit "/#{public_page_1.urlname}"
@@ -110,6 +120,16 @@ module Alchemy
110
120
  allow(Config).to receive(:get) { |arg| arg == :url_nesting ? false : Config.parameter(arg) }
111
121
  end
112
122
 
123
+ let(:second_page) { FactoryGirl.create(:public_page, name: 'Second Page') }
124
+ let(:legacy_url) { LegacyPageUrl.create(urlname: 'index.php?option=com_content&view=article&id=48&Itemid=69', page: second_page) }
125
+
126
+ it "should redirect legacy url with unknown format & query string" do
127
+ visit "/#{legacy_url.urlname}"
128
+ uri = URI.parse(page.current_url)
129
+ expect(uri.query).to be_nil
130
+ expect(uri.request_uri).to eq("/#{second_page.urlname}")
131
+ end
132
+
113
133
  it "should redirect from nested language code url to normal url" do
114
134
  visit "/en/#{public_page_1.urlname}"
115
135
  expect(page.current_path).to eq("/#{public_page_1.urlname}")
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
 
3
3
  module Alchemy
4
4
  describe Content do
5
- let(:element) { create(:element, name: 'headline', :create_contents_after_create => true) }
6
- let(:content) { element.contents.find_by_essence_type('Alchemy::EssenceText') }
5
+ let(:element) { create(:element, name: 'headline', create_contents_after_create: true) }
6
+ let(:content) { element.contents.find_by(essence_type: 'Alchemy::EssenceText') }
7
7
 
8
8
  it "should return the ingredient from its essence" do
9
9
  content.essence.update_attributes(:body => "Hello")
@@ -372,5 +372,27 @@ module Alchemy
372
372
  end
373
373
  end
374
374
 
375
+ context 'delegations' do
376
+ let(:page) { create(:restricted_page) }
377
+
378
+ it "delegates restricted? to page" do
379
+ element.update!(page: page)
380
+ expect(page.restricted?).to be true
381
+ expect(content.page).to eq page
382
+ expect(content.restricted?).to be true
383
+ end
384
+
385
+ it "delegates trashed? to element" do
386
+ element.update!(position: nil)
387
+ expect(element.trashed?).to be true
388
+ expect(content.trashed?).to be true
389
+ end
390
+
391
+ it "delegates public? to element" do
392
+ element.update!(public: false)
393
+ expect(element.public?).to be false
394
+ expect(content.public?).to be false
395
+ end
396
+ end
375
397
  end
376
398
  end
@@ -242,6 +242,17 @@ module Alchemy
242
242
  end
243
243
  end
244
244
 
245
+ describe '#essence_error_messages' do
246
+ let(:element) { Element.new(name: 'article') }
247
+ it "should return the translation with the translated content label" do
248
+ I18n.should_receive(:t).with('content_names.content', default: 'Content').and_return('Content')
249
+ I18n.should_receive(:t).with('content', scope: "content_names.article", default: 'Content').and_return('Contenido')
250
+ I18n.should_receive(:t).with('article.content.invalid', {:scope=>"content_validations", :default=>[:"fields.content.invalid", :"errors.invalid"], :field=>"Contenido"})
251
+ element.should_receive(:essence_errors).and_return({'content' => [:invalid]})
252
+ element.essence_error_messages
253
+ end
254
+ end
255
+
245
256
  describe '#display_name_with_preview_text' do
246
257
  let(:element) { FactoryGirl.build_stubbed(:element, name: 'Foo') }
247
258
 
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'alchemy/essences/_essence_editor_view' do
4
+ let(:file) { File.new(File.expand_path('../../../fixtures/image with spaces.png', __FILE__)) }
5
+ let(:attachment) { mock_model('Attachment', file: file, name: 'image', file_name: 'Image', icon_css_class: 'image') }
6
+ let(:essence) { mock_model('EssenceFile', attachment: attachment) }
7
+ let(:content) { mock_model('Content', essence: essence, settings: {}, dom_id: 'essence_file_1', form_field_name: '"contents[1][attachment_id]"') }
8
+
9
+ subject do
10
+ render partial: "alchemy/essences/essence_file_editor", locals: {content: content}
11
+ rendered
12
+ end
13
+
14
+ before do
15
+ view.class.send :include, Alchemy::Admin::BaseHelper
16
+ allow(view).to receive(:_t).and_return('')
17
+ allow(view).to receive(:label_and_remove_link).and_return('')
18
+ end
19
+
20
+ context 'with ingredient present' do
21
+ before do
22
+ allow(content).to receive(:ingredient).and_return(attachment)
23
+ end
24
+
25
+ it "renders a hidden field with attachment id" do
26
+ is_expected.to have_selector("input[type='hidden'][value='#{attachment.id}']")
27
+ end
28
+
29
+ it "renders a link to open the attachment library overlay" do
30
+ is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}&options=%7B%7D']")
31
+ end
32
+
33
+ it "renders a link to edit the essence" do
34
+ is_expected.to have_selector("a.edit_file[href='/admin/essence_files/#{essence.id}/edit?options=%7B%7D']")
35
+ end
36
+
37
+ context 'with content settings `only`' do
38
+ it "renders a link to open the attachment library overlay with only pdfs" do
39
+ expect(content).to receive(:settings).at_least(:once).and_return({only: 'pdf'})
40
+ is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}&only=pdf&options=%7B%7D']")
41
+ end
42
+ end
43
+
44
+ context 'with content settings `except`' do
45
+ it "renders a link to open the attachment library overlay without pdfs" do
46
+ expect(content).to receive(:settings).at_least(:once).and_return({except: 'pdf'})
47
+ is_expected.to have_selector("a.assign_file[href='/admin/attachments?content_id=#{content.id}&except=pdf&options=%7B%7D']")
48
+ end
49
+ end
50
+ end
51
+
52
+ context 'without ingredient present' do
53
+ before do
54
+ allow(content).to receive(:ingredient).and_return(nil)
55
+ end
56
+
57
+ it "does not render a hidden field with attachment id" do
58
+ is_expected.to_not have_selector("input[type='hidden']")
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ // @preserve jQuery.floatThead 1.2.9 - http://mkoryak.github.io/floatThead/ - Copyright (c) 2012 - 2014 Misha Koryak
2
+ // @license MIT
3
+ !function(a){function b(a,b,c){if(8==g){var d=j.width(),e=f.debounce(function(){var a=j.width();d!=a&&(d=a,c())},a);j.on(b,e)}else j.on(b,f.debounce(c,a))}function c(a){window.console&&window.console&&window.console.log&&window.console.log(a)}function d(){var b=a('<div style="width:50px;height:50px;overflow-y:scroll;position:absolute;top:-200px;left:-200px;"><div style="height:100px;width:100%"></div>');a("body").append(b);var c=b.innerWidth(),d=a("div",b).innerWidth();return b.remove(),c-d}function e(a){if(a.dataTableSettings)for(var b=0;b<a.dataTableSettings.length;b++){var c=a.dataTableSettings[b].nTable;if(a[0]==c)return!0}return!1}a.floatThead=a.floatThead||{},a.floatThead.defaults={cellTag:null,headerCellSelector:"tr:first>th:visible",zIndex:1001,debounceResizeMs:10,useAbsolutePositioning:!0,scrollingTop:0,scrollingBottom:0,scrollContainer:function(){return a([])},getSizingRow:function(a){return a.find("tbody tr:visible:first>*")},floatTableClass:"floatThead-table",floatWrapperClass:"floatThead-wrapper",floatContainerClass:"floatThead-container",copyTableClass:!0,debug:!1};var f=window._,g=function(){for(var a=3,b=document.createElement("b"),c=b.all||[];a=1+a,b.innerHTML="<!--[if gt IE "+a+"]><i><![endif]-->",c[0];);return a>4?a:document.documentMode}(),h=null,i=function(){if(g)return!1;var b=a("<table><colgroup><col></colgroup><tbody><tr><td style='width:10px'></td></tbody></table>");a("body").append(b);var c=b.find("col").width();return b.remove(),0==c},j=a(window),k=0;a.fn.floatThead=function(l){if(l=l||{},!f&&(f=window._||a.floatThead._,!f))throw new Error("jquery.floatThead-slim.js requires underscore. You should use the non-lite version since you do not have underscore.");if(8>g)return this;if(null==h&&(h=i(),h&&(document.createElement("fthtr"),document.createElement("fthtd"),document.createElement("fthfoot"))),f.isString(l)){var m=l,n=this;return this.filter("table").each(function(){var b=a(this).data("floatThead-attached");if(b&&f.isFunction(b[m])){var c=b[m]();"undefined"!=typeof c&&(n=c)}}),n}var o=a.extend({},a.floatThead.defaults||{},l);return a.each(l,function(b){b in a.floatThead.defaults||!o.debug||c("jQuery.floatThead: used ["+b+"] key to init plugin, but that param is not an option for the plugin. Valid options are: "+f.keys(a.floatThead.defaults).join(", "))}),this.filter(":not(."+o.floatTableClass+")").each(function(){function c(a){return a+".fth-"+y+".floatTHead"}function i(){var b=0;A.find("tr:visible").each(function(){b+=a(this).outerHeight(!0)}),Z.outerHeight(b),$.outerHeight(b)}function l(){var a=z.outerWidth(),b=I.width()||a;if(X.width(b-F.vertical),O){var c=100*a/(b-F.vertical);S.css("width",c+"%")}else S.outerWidth(a)}function m(){C=(f.isFunction(o.scrollingTop)?o.scrollingTop(z):o.scrollingTop)||0,D=(f.isFunction(o.scrollingBottom)?o.scrollingBottom(z):o.scrollingBottom)||0}function n(){var b,c;if(V)b=U.find("col").length;else{var d;d=null==o.cellTag&&o.headerCellSelector?o.headerCellSelector:"tr:first>"+o.cellTag,c=A.find(d),b=0,c.each(function(){b+=parseInt(a(this).attr("colspan")||1,10)})}if(b!=H){H=b;for(var e=[],f=[],g=[],i=0;b>i;i++)e.push('<th class="floatThead-col"/>'),f.push("<col/>"),g.push("<fthtd style='display:table-cell;height:0;width:auto;'/>");f=f.join(""),e=e.join(""),h&&(g=g.join(""),W.html(g),bb=W.find("fthtd")),Z.html(e),$=Z.find("th"),V||U.html(f),_=U.find("col"),T.html(f),ab=T.find("col")}return b}function p(){if(!E){if(E=!0,J){var a=z.width(),b=Q.width();a>b&&z.css("minWidth",a)}z.css(db),S.css(db),S.append(A),B.before(Y),i()}}function q(){E&&(E=!1,J&&z.width(fb),Y.detach(),z.prepend(A),z.css(eb),S.css(eb))}function r(a){J!=a&&(J=a,X.css({position:J?"absolute":"fixed"}))}function s(a,b,c,d){return h?c:d?o.getSizingRow(a,b,c):b}function t(){var a,b=n();return function(){var c=s(z,_,bb,g);if(c.length==b&&b>0){if(!V)for(a=0;b>a;a++)_.eq(a).css("width","");q();var d=[];for(a=0;b>a;a++)d[a]=c.get(a).offsetWidth;for(a=0;b>a;a++)ab.eq(a).width(d[a]),_.eq(a).width(d[a]);p()}else S.append(A),z.css(eb),S.css(eb),i()}}function u(a){var b=I.css("border-"+a+"-width"),c=0;return b&&~b.indexOf("px")&&(c=parseInt(b,10)),c}function v(){var a,b=I.scrollTop(),c=0,d=L?K.outerHeight(!0):0,e=M?d:-d,f=X.height(),g=z.offset(),i=0;if(O){var k=I.offset();c=g.top-k.top+b,L&&M&&(c+=d),c-=u("top"),i=u("left")}else a=g.top-C-f+D+F.horizontal;var l=j.scrollTop(),m=j.scrollLeft(),n=I.scrollLeft();return b=I.scrollTop(),function(k){if("windowScroll"==k?(l=j.scrollTop(),m=j.scrollLeft()):"containerScroll"==k?(b=I.scrollTop(),n=I.scrollLeft()):"init"!=k&&(l=j.scrollTop(),m=j.scrollLeft(),b=I.scrollTop(),n=I.scrollLeft()),!h||!(0>l||0>m)){if(R)r("windowScrollDone"==k?!0:!1);else if("windowScrollDone"==k)return null;g=z.offset(),L&&M&&(g.top+=d);var o,s,t=z.outerHeight();if(O&&J){if(c>=b){var u=c-b;o=u>0?u:0}else o=P?0:b;s=i}else!O&&J?(l>a+t+e?o=t-f+e:g.top>l+C?(o=0,q()):(o=C+l-g.top+c+(M?d:0),p()),s=0):O&&!J?(c>b||b-c>t?(o=g.top-l,q()):(o=g.top+b-l-c,p()),s=g.left+n-m):O||J||(l>a+t+e?o=t+C-l+a+e:g.top>l+C?(o=g.top-l,p()):o=C,s=g.left-m);return{top:o,left:s}}}}function w(){var a=null,b=null,c=null;return function(d,e,f){null==d||a==d.top&&b==d.left||(X.css({top:d.top,left:d.left}),a=d.top,b=d.left),e&&l(),f&&i();var g=I.scrollLeft();J&&c==g||(X.scrollLeft(g),c=g)}}function x(){if(I.length){var a=I.width(),b=I.height(),c=z.height(),d=z.width(),e=d>a?G:0,f=c>b?G:0;F.horizontal=d>a-f?G:0,F.vertical=c>b-e?G:0}}var y=k,z=a(this);if(z.data("floatThead-attached"))return!0;if(!z.is("table"))throw new Error('jQuery.floatThead must be run on a table element. ex: $("table").floatThead();');var A=z.find("thead:first"),B=z.find("tbody:first");if(0==A.length)throw new Error("jQuery.floatThead must be run on a table that contains a <thead> element");var C,D,E=!1,F={vertical:0,horizontal:0},G=d(),H=0,I=o.scrollContainer(z)||a([]),J=o.useAbsolutePositioning;null==J&&(J=o.scrollContainer(z).length);var K=z.find("caption"),L=1==K.length;if(L)var M="top"===(K.css("caption-side")||K.attr("align")||"top");var N=a('<fthfoot style="display:table-footer-group;"/>'),O=I.length>0,P=!1,Q=a([]),R=9>=g&&!O&&J,S=a("<table/>"),T=a("<colgroup/>"),U=z.find("colgroup:first"),V=!0;0==U.length&&(U=a("<colgroup/>"),V=!1);var W=a('<fthrow style="display:table-row;height:0;"/>'),X=a('<div style="overflow: hidden;"></div>'),Y=a("<thead/>"),Z=a('<tr class="size-row"/>'),$=a([]),_=a([]),ab=a([]),bb=a([]);if(Y.append(Z),z.prepend(U),h&&(N.append(W),z.append(N)),S.append(T),X.append(S),o.copyTableClass&&S.attr("class",z.attr("class")),S.attr({cellpadding:z.attr("cellpadding"),cellspacing:z.attr("cellspacing"),border:z.attr("border")}),S.css({borderCollapse:z.css("borderCollapse"),border:z.css("border")}),S.addClass(o.floatTableClass).css("margin",0),J){var cb=function(a,b){var c=a.css("position"),d="relative"==c||"absolute"==c;if(!d||b){var e={paddingLeft:a.css("paddingLeft"),paddingRight:a.css("paddingRight")};X.css(e),a=a.wrap("<div class='"+o.floatWrapperClass+"' style='position: relative; clear:both;'></div>").parent(),P=!0}return a};O?(Q=cb(I,!0),Q.append(X)):(Q=cb(z),z.after(X))}else z.after(X);X.css({position:J?"absolute":"fixed",marginTop:0,top:J?0:"auto",zIndex:o.zIndex}),X.addClass(o.floatContainerClass),m();var db={"table-layout":"fixed"},eb={"table-layout":z.css("tableLayout")||"auto"},fb=z[0].style.width||"";x();var gb,hb=function(){(gb=t())()};hb();var ib=v(),jb=w();jb(ib("init"),!0);var kb=f.debounce(function(){jb(ib("windowScrollDone"),!1)},300),lb=function(){jb(ib("windowScroll"),!1),kb()},mb=function(){jb(ib("containerScroll"),!1)},nb=function(){m(),x(),hb(),ib=v(),(jb=w())(ib("resize"),!0,!0)},ob=f.debounce(function(){x(),m(),hb(),ib=v(),jb(ib("reflow"),!0)},1);O?J?I.on(c("scroll"),mb):(I.on(c("scroll"),mb),j.on(c("scroll"),lb)):j.on(c("scroll"),lb),j.on(c("load"),ob),b(o.debounceResizeMs,c("resize"),nb),z.on("reflow",ob),e(z)&&z.on("filter",ob).on("sort",ob).on("page",ob),z.data("floatThead-attached",{destroy:function(){var a=".fth-"+y;q(),z.css(eb),U.remove(),h&&N.remove(),Y.parent().length&&Y.replaceWith(A),z.off("reflow"),I.off(a),P&&(I.length?I.unwrap():z.unwrap()),J&&z.css("minWidth",""),X.remove(),z.data("floatThead-attached",!1),j.off(a)},reflow:function(){ob()},setHeaderHeight:function(){i()},getFloatContainer:function(){return X},getRowGroups:function(){return E?X.find("thead").add(z.find("tbody,tfoot")):z.find("thead,tbody,tfoot")}}),k++}),this}}(jQuery),function(a){a.floatThead=a.floatThead||{},a.floatThead._=window._||function(){var b={},c=Object.prototype.hasOwnProperty,d=["Arguments","Function","String","Number","Date","RegExp"];return b.has=function(a,b){return c.call(a,b)},b.keys=function(a){if(a!==Object(a))throw new TypeError("Invalid object");var c=[];for(var d in a)b.has(a,d)&&c.push(d);return c},a.each(d,function(){var a=this;b["is"+a]=function(b){return Object.prototype.toString.call(b)=="[object "+a+"]"}}),b.debounce=function(a,b,c){var d,e,f,g,h;return function(){f=this,e=arguments,g=new Date;var i=function(){var j=new Date-g;b>j?d=setTimeout(i,b-j):(d=null,c||(h=a.apply(f,e)))},j=c&&!d;return d||(d=setTimeout(i,b)),j&&(h=a.apply(f,e)),h}},b}()}(jQuery);
@@ -0,0 +1,197 @@
1
+ tinymce.addI18n('es',{
2
+ "Cut": "Cortar",
3
+ "Heading 5": "Encabezado 5",
4
+ "Header 2": "Encabezado 2 ",
5
+ "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "Tu navegador no soporta acceso directo al portapapeles. Por favor usa las teclas Crtl+X\/C\/V de tu teclado",
6
+ "Heading 4": "Encabezado 4",
7
+ "Div": "Capa",
8
+ "Heading 2": "Encabezado 2",
9
+ "Paste": "Pegar",
10
+ "Close": "Cerrar",
11
+ "Font Family": "Familia de fuentes",
12
+ "Pre": "Pre",
13
+ "Align right": "Alinear a la derecha",
14
+ "New document": "Nuevo documento",
15
+ "Blockquote": "Bloque de cita",
16
+ "Numbered list": "Lista numerada",
17
+ "Heading 1": "Encabezado 1",
18
+ "Headings": "Encabezados",
19
+ "Increase indent": "Incrementar sangr\u00eda",
20
+ "Formats": "Formatos",
21
+ "Headers": "Encabezados",
22
+ "Select all": "Seleccionar todo",
23
+ "Header 3": "Encabezado 3",
24
+ "Blocks": "Bloques",
25
+ "Undo": "Deshacer",
26
+ "Strikethrough": "Tachado",
27
+ "Bullet list": "Lista de vi\u00f1etas",
28
+ "Header 1": "Encabezado 1",
29
+ "Superscript": "Super\u00edndice",
30
+ "Clear formatting": "Limpiar formato",
31
+ "Font Sizes": "Tama\u00f1os de fuente",
32
+ "Subscript": "Sub\u00edndice",
33
+ "Header 6": "Encabezado 6",
34
+ "Redo": "Rehacer",
35
+ "Paragraph": "P\u00e1rrafo",
36
+ "Ok": "Ok",
37
+ "Bold": "Negrita",
38
+ "Code": "C\u00f3digo",
39
+ "Italic": "It\u00e1lica",
40
+ "Align center": "Alinear al centro",
41
+ "Header 5": "Encabezado 5 ",
42
+ "Heading 6": "Encabezado 6",
43
+ "Heading 3": "Encabezado 3",
44
+ "Decrease indent": "Disminuir sangr\u00eda",
45
+ "Header 4": "Encabezado 4",
46
+ "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.",
47
+ "Underline": "Subrayado",
48
+ "Cancel": "Cancelar",
49
+ "Justify": "Justificar",
50
+ "Inline": "en l\u00ednea",
51
+ "Copy": "Copiar",
52
+ "Align left": "Alinear a la izquierda",
53
+ "Visual aids": "Ayudas visuales",
54
+ "Lower Greek": "Inferior Griega",
55
+ "Square": "Cuadrado",
56
+ "Default": "Por defecto",
57
+ "Lower Alpha": "Inferior Alfa",
58
+ "Circle": "C\u00edrculo",
59
+ "Disc": "Disco",
60
+ "Upper Alpha": "Superior Alfa",
61
+ "Upper Roman": "Superior Romana",
62
+ "Lower Roman": "Inferior Romana",
63
+ "Name": "Nombre",
64
+ "Anchor": "Ancla",
65
+ "You have unsaved changes are you sure you want to navigate away?": "Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?",
66
+ "Restore last draft": "Restaurar el \u00faltimo borrador",
67
+ "Special character": "Car\u00e1cter especial",
68
+ "Source code": "C\u00f3digo fuente",
69
+ "Color": "Color",
70
+ "Right to left": "De derecha a izquierda",
71
+ "Left to right": "De izquierda a derecha",
72
+ "Emoticons": "Emoticonos",
73
+ "Robots": "Robots",
74
+ "Document properties": "Propiedades del documento",
75
+ "Title": "T\u00edtulo",
76
+ "Keywords": "Palabras clave",
77
+ "Encoding": "Codificaci\u00f3n",
78
+ "Description": "Descripci\u00f3n",
79
+ "Author": "Autor",
80
+ "Fullscreen": "Pantalla completa",
81
+ "Horizontal line": "L\u00ednea horizontal",
82
+ "Horizontal space": "Espacio horizontal",
83
+ "Insert\/edit image": "Insertar\/editar imagen",
84
+ "General": "General",
85
+ "Advanced": "Avanzado",
86
+ "Source": "Fuente",
87
+ "Border": "Borde",
88
+ "Constrain proportions": "Restringir proporciones",
89
+ "Vertical space": "Espacio vertical",
90
+ "Image description": "Descripci\u00f3n de la imagen",
91
+ "Style": "Estilo",
92
+ "Dimensions": "Dimensiones",
93
+ "Insert image": "Insertar imagen",
94
+ "Insert date\/time": "Insertar fecha\/hora",
95
+ "Remove link": "Quitar enlace",
96
+ "Url": "URL",
97
+ "Text to display": "Texto para mostrar",
98
+ "Anchors": "Anclas",
99
+ "Insert link": "Insertar enlace",
100
+ "New window": "Nueva ventana",
101
+ "None": "Ninguno",
102
+ "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "El enlace que has introducido no parece ser una enlace externo. Quieres a\u00f1adir el prefijo necesario http:\/\/ ?",
103
+ "Target": "Destino",
104
+ "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "El enlace que has introducido no parece ser una direcci\u00f3n de correo electr\u00f3nico. Quieres a\u00f1adir el prefijo necesario mailto: ?",
105
+ "Insert\/edit link": "Insertar\/editar enlace",
106
+ "Insert\/edit video": "Insertar\/editar video",
107
+ "Poster": "Miniatura",
108
+ "Alternative source": "Fuente alternativa",
109
+ "Paste your embed code below:": "Pega tu c\u00f3digo embebido debajo",
110
+ "Insert video": "Insertar video",
111
+ "Embed": "Incrustado",
112
+ "Nonbreaking space": "Espacio fijo",
113
+ "Page break": "Salto de p\u00e1gina",
114
+ "Paste as text": "Pegar como texto",
115
+ "Preview": "Previsualizar",
116
+ "Print": "Imprimir",
117
+ "Save": "Guardar",
118
+ "Could not find the specified string.": "No se encuentra la cadena de texto especificada",
119
+ "Replace": "Reemplazar",
120
+ "Next": "Siguiente",
121
+ "Whole words": "Palabras completas",
122
+ "Find and replace": "Buscar y reemplazar",
123
+ "Replace with": "Reemplazar con",
124
+ "Find": "Buscar",
125
+ "Replace all": "Reemplazar todo",
126
+ "Match case": "Coincidencia exacta",
127
+ "Prev": "Anterior",
128
+ "Spellcheck": "Corrector ortogr\u00e1fico",
129
+ "Finish": "Finalizar",
130
+ "Ignore all": "Ignorar todos",
131
+ "Ignore": "Ignorar",
132
+ "Add to Dictionary": "A\u00f1adir al Diccionario",
133
+ "Insert row before": "Insertar fila antes",
134
+ "Rows": "Filas",
135
+ "Height": "Alto",
136
+ "Paste row after": "Pegar la fila despu\u00e9s",
137
+ "Alignment": "Alineaci\u00f3n",
138
+ "Border color": "Color del borde",
139
+ "Column group": "Grupo de columnas",
140
+ "Row": "Fila",
141
+ "Insert column before": "Insertar columna antes",
142
+ "Split cell": "Dividir celdas",
143
+ "Cell padding": "Relleno de celda",
144
+ "Cell spacing": "Espacio entre celdas",
145
+ "Row type": "Tipo de fila",
146
+ "Insert table": "Insertar tabla",
147
+ "Body": "Cuerpo",
148
+ "Caption": "Subt\u00edtulo",
149
+ "Footer": "Pie de p\u00e1gina",
150
+ "Delete row": "Eliminar fila",
151
+ "Paste row before": "Pegar la fila antes",
152
+ "Scope": "\u00c1mbito",
153
+ "Delete table": "Eliminar tabla",
154
+ "H Align": "Alineamiento Horizontal",
155
+ "Top": "Arriba",
156
+ "Header cell": "Celda de la cebecera",
157
+ "Column": "Columna",
158
+ "Row group": "Grupo de filas",
159
+ "Cell": "Celda",
160
+ "Middle": "Centro",
161
+ "Cell type": "Tipo de celda",
162
+ "Copy row": "Copiar fila",
163
+ "Row properties": "Propiedades de la fila",
164
+ "Table properties": "Propiedades de la tabla",
165
+ "Bottom": "Abajo",
166
+ "V Align": "Alineamiento Vertical",
167
+ "Header": "Cabecera",
168
+ "Right": "Derecha",
169
+ "Insert column after": "Insertar columna despu\u00e9s",
170
+ "Cols": "Columnas",
171
+ "Insert row after": "Insertar fila despu\u00e9s ",
172
+ "Width": "Ancho",
173
+ "Cell properties": "Propiedades de la celda",
174
+ "Left": "Izquierda",
175
+ "Cut row": "Cortar fila",
176
+ "Delete column": "Eliminar columna",
177
+ "Center": "Centrado",
178
+ "Merge cells": "Combinar celdas",
179
+ "Insert template": "Insertar plantilla",
180
+ "Templates": "Plantillas",
181
+ "Background color": "Color de fondo",
182
+ "Custom...": "Personalizar...",
183
+ "Custom color": "Color personalizado",
184
+ "No color": "Sin color",
185
+ "Text color": "Color del texto",
186
+ "Show blocks": "Mostrar bloques",
187
+ "Show invisible characters": "Mostrar caracteres invisibles",
188
+ "Words: {0}": "Palabras: {0}",
189
+ "Insert": "Insertar",
190
+ "File": "Archivo",
191
+ "Edit": "Editar",
192
+ "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda",
193
+ "Tools": "Herramientas",
194
+ "View": "Ver",
195
+ "Table": "Tabla",
196
+ "Format": "Formato"
197
+ });
@@ -0,0 +1,197 @@
1
+ tinymce.addI18n('ru',{
2
+ "Cut": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c",
3
+ "Heading 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
4
+ "Header 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
5
+ "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443 \u043e\u0431\u043c\u0435\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u043a\u043b\u0430\u0432\u0438\u0448: Ctrl+X\/C\/V.",
6
+ "Heading 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
7
+ "Div": "\u0411\u043b\u043e\u043a",
8
+ "Heading 2": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 2",
9
+ "Paste": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
10
+ "Close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
11
+ "Font Family": "\u0428\u0440\u0438\u0444\u0442",
12
+ "Pre": "\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435",
13
+ "Align right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
14
+ "New document": "\u041d\u043e\u0432\u044b\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442",
15
+ "Blockquote": "\u0426\u0438\u0442\u0430\u0442\u0430",
16
+ "Numbered list": "\u041d\u0443\u043c\u0435\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
17
+ "Heading 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
18
+ "Headings": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
19
+ "Increase indent": "\u0423\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
20
+ "Formats": "\u0424\u043e\u0440\u043c\u0430\u0442",
21
+ "Headers": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
22
+ "Select all": "\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u0441\u0435",
23
+ "Header 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
24
+ "Blocks": "\u0411\u043b\u043e\u043a\u0438",
25
+ "Undo": "\u0412\u0435\u0440\u043d\u0443\u0442\u044c",
26
+ "Strikethrough": "\u0417\u0430\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
27
+ "Bullet list": "\u041c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a",
28
+ "Header 1": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 1",
29
+ "Superscript": "\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
30
+ "Clear formatting": "\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442",
31
+ "Font Sizes": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430",
32
+ "Subscript": "\u041d\u0438\u0436\u043d\u0438\u0439 \u0438\u043d\u0434\u0435\u043a\u0441",
33
+ "Header 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
34
+ "Redo": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
35
+ "Paragraph": "\u041f\u0430\u0440\u0430\u0433\u0440\u0430\u0444",
36
+ "Ok": "\u041e\u043a",
37
+ "Bold": "\u041f\u043e\u043b\u0443\u0436\u0438\u0440\u043d\u044b\u0439",
38
+ "Code": "\u041a\u043e\u0434",
39
+ "Italic": "\u041a\u0443\u0440\u0441\u0438\u0432",
40
+ "Align center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
41
+ "Header 5": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 5",
42
+ "Heading 6": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 6",
43
+ "Heading 3": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 3",
44
+ "Decrease indent": "\u0423\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f",
45
+ "Header 4": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a 4",
46
+ "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u0412\u0441\u0442\u0430\u0432\u043a\u0430 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u043e\u043f\u0446\u0438\u044e.",
47
+ "Underline": "\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u043d\u0443\u0442\u044b\u0439",
48
+ "Cancel": "\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c",
49
+ "Justify": "\u041f\u043e \u0448\u0438\u0440\u0438\u043d\u0435",
50
+ "Inline": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435",
51
+ "Copy": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
52
+ "Align left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
53
+ "Visual aids": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0443\u0440\u044b",
54
+ "Lower Greek": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
55
+ "Square": "\u041a\u0432\u0430\u0434\u0440\u0430\u0442\u044b",
56
+ "Default": "\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439",
57
+ "Lower Alpha": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
58
+ "Circle": "\u041e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438",
59
+ "Disc": "\u041a\u0440\u0443\u0433\u0438",
60
+ "Upper Alpha": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0435 \u0431\u0443\u043a\u0432\u044b",
61
+ "Upper Roman": "\u0417\u0430\u0433\u043b\u0430\u0432\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
62
+ "Lower Roman": "\u0421\u0442\u0440\u043e\u0447\u043d\u044b\u0435 \u0440\u0438\u043c\u0441\u043a\u0438\u0435 \u0446\u0438\u0444\u0440\u044b",
63
+ "Name": "\u0418\u043c\u044f",
64
+ "Anchor": "\u042f\u043a\u043e\u0440\u044c",
65
+ "You have unsaved changes are you sure you want to navigate away?": "\u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0439\u0442\u0438?",
66
+ "Restore last draft": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430",
67
+ "Special character": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
68
+ "Source code": "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434",
69
+ "Color": "\u0426\u0432\u0435\u0442",
70
+ "Right to left": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e",
71
+ "Left to right": "\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e",
72
+ "Emoticons": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043c\u0430\u0439\u043b",
73
+ "Robots": "\u0420\u043e\u0431\u043e\u0442\u044b",
74
+ "Document properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430",
75
+ "Title": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
76
+ "Keywords": "\u041a\u043b\u044e\u0447\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430",
77
+ "Encoding": "\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
78
+ "Description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
79
+ "Author": "\u0410\u0432\u0442\u043e\u0440",
80
+ "Fullscreen": "\u041f\u043e\u043b\u043d\u043e\u044d\u043a\u0440\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c",
81
+ "Horizontal line": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f",
82
+ "Horizontal space": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
83
+ "Insert\/edit image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
84
+ "General": "\u041e\u0431\u0449\u0435\u0435",
85
+ "Advanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435",
86
+ "Source": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
87
+ "Border": "\u0420\u0430\u043c\u043a\u0430",
88
+ "Constrain proportions": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u043e\u0440\u0446\u0438\u0438",
89
+ "Vertical space": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b",
90
+ "Image description": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
91
+ "Style": "\u0421\u0442\u0438\u043b\u044c",
92
+ "Dimensions": "\u0420\u0430\u0437\u043c\u0435\u0440",
93
+ "Insert image": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
94
+ "Insert date\/time": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u0442\u0443\/\u0432\u0440\u0435\u043c\u044f",
95
+ "Remove link": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
96
+ "Url": "\u0410\u0434\u0440\u0435\u0441 \u0441\u0441\u044b\u043b\u043a\u0438",
97
+ "Text to display": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442",
98
+ "Anchors": "\u042f\u043a\u043e\u0440\u044f",
99
+ "Insert link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
100
+ "New window": "\u0412 \u043d\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435",
101
+ "None": "\u041d\u0435\u0442",
102
+ "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0441\u044b\u043b\u043a\u043e\u0439. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abhttp:\/\/\u00bb?",
103
+ "Target": "\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
104
+ "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u0412\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 URL \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u043c \u0430\u0434\u0440\u0435\u0441\u043e\u043c \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u044b. \u0412\u044b \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u00abmailto:\u00bb?",
105
+ "Insert\/edit link": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443",
106
+ "Insert\/edit video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
107
+ "Poster": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
108
+ "Alternative source": "\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a",
109
+ "Paste your embed code below:": "\u0412\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0430\u0448 \u043a\u043e\u0434 \u043d\u0438\u0436\u0435:",
110
+ "Insert video": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e",
111
+ "Embed": "\u041a\u043e\u0434 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438",
112
+ "Nonbreaking space": "\u041d\u0435\u0440\u0430\u0437\u0440\u044b\u0432\u043d\u044b\u0439 \u043f\u0440\u043e\u0431\u0435\u043b",
113
+ "Page break": "\u0420\u0430\u0437\u0440\u044b\u0432 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b",
114
+ "Paste as text": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u043a \u0442\u0435\u043a\u0441\u0442",
115
+ "Preview": "\u041f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440",
116
+ "Print": "\u041f\u0435\u0447\u0430\u0442\u044c",
117
+ "Save": "\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c",
118
+ "Could not find the specified string.": "\u0417\u0430\u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
119
+ "Replace": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c",
120
+ "Next": "\u0412\u043d\u0438\u0437",
121
+ "Whole words": "\u0421\u043b\u043e\u0432\u043e \u0446\u0435\u043b\u0438\u043a\u043e\u043c",
122
+ "Find and replace": "\u041f\u043e\u0438\u0441\u043a \u0438 \u0437\u0430\u043c\u0435\u043d\u0430",
123
+ "Replace with": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430",
124
+ "Find": "\u041d\u0430\u0439\u0442\u0438",
125
+ "Replace all": "\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435",
126
+ "Match case": "\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440",
127
+ "Prev": "\u0412\u0432\u0435\u0440\u0445",
128
+ "Spellcheck": "\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435",
129
+ "Finish": "\u0417\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u044c",
130
+ "Ignore all": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435",
131
+ "Ignore": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
132
+ "Add to Dictionary": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u044c",
133
+ "Insert row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
134
+ "Rows": "\u0421\u0442\u0440\u043e\u043a\u0438",
135
+ "Height": "\u0412\u044b\u0441\u043e\u0442\u0430",
136
+ "Paste row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
137
+ "Alignment": "\u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
138
+ "Border color": "\u0426\u0432\u0435\u0442 \u0440\u0430\u043c\u043a\u0438",
139
+ "Column group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u043a\u043e\u043b\u043e\u043d\u043e\u043a",
140
+ "Row": "\u0421\u0442\u0440\u043e\u043a\u0430",
141
+ "Insert column before": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043b\u0435\u0432\u0430",
142
+ "Split cell": "\u0420\u0430\u0437\u0431\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0443",
143
+ "Cell padding": "\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
144
+ "Cell spacing": "\u0412\u043d\u0435\u0448\u043d\u0438\u0439 \u043e\u0442\u0441\u0442\u0443\u043f",
145
+ "Row type": "\u0422\u0438\u043f \u0441\u0442\u0440\u043e\u043a\u0438",
146
+ "Insert table": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
147
+ "Body": "\u0422\u0435\u043b\u043e",
148
+ "Caption": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
149
+ "Footer": "\u041d\u0438\u0437",
150
+ "Delete row": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
151
+ "Paste row before": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u0432\u0435\u0440\u0445\u0443",
152
+ "Scope": "Scope",
153
+ "Delete table": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443",
154
+ "H Align": "\u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
155
+ "Top": "\u041f\u043e \u0432\u0435\u0440\u0445\u0443",
156
+ "Header cell": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
157
+ "Column": "\u0421\u0442\u043e\u043b\u0431\u0435\u0446",
158
+ "Row group": "\u0413\u0440\u0443\u043f\u043f\u0430 \u0441\u0442\u0440\u043e\u043a",
159
+ "Cell": "\u042f\u0447\u0435\u0439\u043a\u0430",
160
+ "Middle": "\u041f\u043e \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435",
161
+ "Cell type": "\u0422\u0438\u043f \u044f\u0447\u0435\u0439\u043a\u0438",
162
+ "Copy row": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
163
+ "Row properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0440\u043e\u043a\u0438",
164
+ "Table properties": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b",
165
+ "Bottom": "\u041f\u043e \u043d\u0438\u0437\u0443",
166
+ "V Align": "\u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435",
167
+ "Header": "\u0428\u0430\u043f\u043a\u0430",
168
+ "Right": "\u041f\u043e \u043f\u0440\u0430\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
169
+ "Insert column after": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0441\u043f\u0440\u0430\u0432\u0430",
170
+ "Cols": "\u0421\u0442\u043e\u043b\u0431\u0446\u044b",
171
+ "Insert row after": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043d\u0438\u0437\u0443",
172
+ "Width": "\u0428\u0438\u0440\u0438\u043d\u0430",
173
+ "Cell properties": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044f\u0447\u0435\u0439\u043a\u0438",
174
+ "Left": "\u041f\u043e \u043b\u0435\u0432\u043e\u043c\u0443 \u043a\u0440\u0430\u044e",
175
+ "Cut row": "\u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443",
176
+ "Delete column": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446",
177
+ "Center": "\u041f\u043e \u0446\u0435\u043d\u0442\u0440\u0443",
178
+ "Merge cells": "\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u044f\u0447\u0435\u0439\u043a\u0438",
179
+ "Insert template": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0448\u0430\u0431\u043b\u043e\u043d",
180
+ "Templates": "\u0428\u0430\u0431\u043b\u043e\u043d\u044b",
181
+ "Background color": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430",
182
+ "Custom...": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c\u2026",
183
+ "Custom color": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0446\u0432\u0435\u0442",
184
+ "No color": "\u0411\u0435\u0437 \u0446\u0432\u0435\u0442\u0430",
185
+ "Text color": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430",
186
+ "Show blocks": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0431\u043b\u043e\u043a\u0438",
187
+ "Show invisible characters": "\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b",
188
+ "Words: {0}": "\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u043b\u043e\u0432: {0}",
189
+ "Insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
190
+ "File": "\u0424\u0430\u0439\u043b",
191
+ "Edit": "\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c",
192
+ "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 ALT-F9 \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u043d\u044e, ALT-F10 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, ALT-0 \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043f\u043e\u043c\u043e\u0449\u0438.",
193
+ "Tools": "\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b",
194
+ "View": "\u0412\u0438\u0434",
195
+ "Table": "\u0422\u0430\u0431\u043b\u0438\u0446\u0430",
196
+ "Format": "\u0424\u043e\u0440\u043c\u0430\u0442"
197
+ });