spina 1.1.1 → 2.0.0.alpha
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spina might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +23 -244
- data/app/assets/fonts/spina/Metropolis-Black.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-BlackItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-Bold.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-BoldItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-ExtraBold.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-ExtraBoldItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-ExtraLight.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-ExtraLightItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-Light.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-LightItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-Medium.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-MediumItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-Regular.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-RegularItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-SemiBold.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-SemiBoldItalic.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-Thin.woff2 +0 -0
- data/app/assets/fonts/spina/Metropolis-ThinItalic.woff2 +0 -0
- data/app/assets/fonts/spina/ics_spina.eot +0 -0
- data/app/assets/fonts/spina/ics_spina.svg +285 -267
- data/app/assets/fonts/spina/ics_spina.ttf +0 -0
- data/app/assets/fonts/spina/ics_spina.woff +0 -0
- data/app/assets/fonts/spina/ics_spina.woff2 +0 -0
- data/app/assets/icons/spina/bold.svg +1 -1
- data/app/assets/icons/spina/code.svg +1 -1
- data/app/assets/icons/spina/image.svg +1 -10
- data/app/assets/icons/spina/indent.svg +1 -0
- data/app/assets/icons/spina/italic.svg +1 -1
- data/app/assets/icons/spina/link.svg +1 -1
- data/app/assets/icons/spina/list-ol.svg +1 -0
- data/app/assets/icons/spina/list.svg +1 -0
- data/app/assets/icons/spina/outdent.svg +1 -0
- data/app/assets/icons/spina/preview/ics_spina-preview.html +121 -1
- data/app/assets/icons/spina/quote-right.svg +1 -0
- data/app/assets/icons/spina/redo.svg +1 -0
- data/app/assets/icons/spina/strikethrough.svg +1 -0
- data/app/assets/icons/spina/undo.svg +1 -0
- data/app/assets/images/spina/favicon.png +0 -0
- data/app/assets/javascripts/spina/admin/application.js +1 -2
- data/app/assets/javascripts/spina/admin/controllers/attachment_picker_controller.js +15 -0
- data/app/assets/javascripts/spina/admin/controllers/image_form_controller.js +5 -4
- data/app/assets/javascripts/spina/admin/controllers/infinite_scroll_controller.js +20 -22
- data/app/assets/javascripts/spina/admin/controllers/media_picker_controller.js +171 -0
- data/app/assets/javascripts/spina/admin/controllers/modal_controller.js +18 -0
- data/app/assets/javascripts/spina/admin/controllers/repeater_form_controller.js +38 -0
- data/app/assets/javascripts/spina/admin/media_gallery.coffee +0 -3
- data/app/assets/javascripts/spina/admin/notifications.coffee +1 -1
- data/app/assets/javascripts/spina/admin/pages.coffee.erb +3 -20
- data/app/assets/javascripts/spina/admin/scaffold.coffee +0 -3
- data/app/assets/javascripts/spina/admin/trix.coffee.erb +14 -18
- data/app/assets/stylesheets/spina.sass +10 -10
- data/app/assets/stylesheets/spina/_buttons.sass +58 -32
- data/app/assets/stylesheets/spina/_configuration.sass.erb +2 -2
- data/app/assets/stylesheets/spina/_fonts.sass +32 -0
- data/app/assets/stylesheets/spina/_forms.sass +65 -76
- data/app/assets/stylesheets/spina/_gallery.sass +22 -4
- data/app/assets/stylesheets/spina/_ics_spina.scss +8 -0
- data/app/assets/stylesheets/spina/_media_picker.sass +133 -0
- data/app/assets/stylesheets/spina/_modal.sass +35 -2
- data/app/assets/stylesheets/spina/_notifications.sass +20 -14
- data/app/assets/stylesheets/spina/_pages.sass +131 -0
- data/app/assets/stylesheets/spina/_sortable_lists.sass +14 -8
- data/app/assets/stylesheets/spina/_tables.sass +7 -4
- data/app/assets/stylesheets/spina/_trix_custom.sass +15 -28
- data/app/controllers/concerns/spina/frontend.rb +9 -0
- data/app/controllers/spina/admin/accounts_controller.rb +9 -13
- data/app/controllers/spina/admin/attachments_controller.rb +0 -22
- data/app/controllers/spina/admin/images_controller.rb +1 -1
- data/app/controllers/spina/admin/media_folders_controller.rb +10 -0
- data/app/controllers/spina/admin/media_picker_controller.rb +18 -19
- data/app/controllers/spina/admin/pages_controller.rb +3 -7
- data/app/controllers/spina/admin/resources_controller.rb +9 -4
- data/app/controllers/spina/application_controller.rb +1 -1
- data/app/helpers/spina/admin/pages_helper.rb +22 -20
- data/app/helpers/spina/{files_helper.rb → attachments_helper.rb} +1 -1
- data/app/helpers/spina/images_helper.rb +14 -0
- data/app/helpers/spina/pages_helper.rb +23 -4
- data/app/models/concerns/spina/partable.rb +19 -7
- data/app/models/concerns/spina/translated_content.rb +19 -0
- data/app/models/spina/account.rb +3 -10
- data/app/models/spina/attachment.rb +0 -4
- data/app/models/spina/current.rb +1 -0
- data/app/models/spina/image.rb +0 -4
- data/app/models/spina/page.rb +19 -20
- data/app/models/spina/parts/attachment.rb +17 -0
- data/app/models/spina/parts/base.rb +12 -0
- data/app/models/spina/parts/image.rb +30 -0
- data/app/models/spina/parts/image_collection.rb +23 -0
- data/app/models/spina/parts/line.rb +7 -0
- data/app/models/spina/parts/option.rb +13 -0
- data/app/models/spina/parts/repeater.rb +10 -0
- data/app/models/spina/parts/repeater_content.rb +15 -0
- data/app/models/spina/parts/text.rb +7 -0
- data/app/models/spina/resource.rb +4 -12
- data/app/presenters/spina/content_presenter.rb +58 -0
- data/app/presenters/spina/menu_presenter.rb +2 -1
- data/app/views/layouts/spina/admin/admin.html.haml +3 -4
- data/app/views/layouts/spina/admin/pages.html.haml +5 -4
- data/app/views/spina/admin/accounts/_form.html.haml +13 -7
- data/app/views/spina/admin/accounts/analytics.html.haml +5 -3
- data/app/views/spina/admin/accounts/style.html.haml +26 -21
- data/app/views/spina/admin/images/index.html.haml +7 -5
- data/app/views/spina/admin/media_folders/_form.html.haml +5 -2
- data/app/views/spina/admin/media_folders/edit.js.erb +1 -0
- data/app/views/spina/admin/media_folders/show.html.haml +2 -1
- data/app/views/spina/admin/media_picker/_image.html.haml +3 -0
- data/app/views/spina/admin/media_picker/_media_picker.html.haml +32 -0
- data/app/views/spina/admin/media_picker/_media_picker_grid.html.haml +25 -0
- data/app/views/spina/admin/media_picker/infinite_scroll.js.erb +4 -4
- data/app/views/spina/admin/media_picker/select.js.erb +2 -0
- data/app/views/spina/admin/media_picker/show.html.haml +1 -0
- data/app/views/spina/admin/media_picker/show.js.erb +1 -1
- data/app/views/spina/admin/pages/_form.html.haml +10 -8
- data/app/views/spina/admin/pages/_form_advanced.html.haml +19 -17
- data/app/views/spina/admin/pages/_form_page_content.html.haml +14 -13
- data/app/views/spina/admin/pages/_form_page_seo.html.haml +15 -4
- data/app/views/spina/admin/pages/_page.html.haml +5 -3
- data/app/views/spina/admin/pages/_page_nested_list.html.haml +2 -3
- data/app/views/spina/admin/pages/index.html.haml +5 -4
- data/app/views/spina/admin/parts/attachments/_form.html.haml +6 -0
- data/app/views/spina/admin/parts/image_collections/_fields.html.haml +7 -0
- data/app/views/spina/admin/parts/image_collections/_form.html.haml +12 -0
- data/app/views/spina/admin/parts/images/_form.html.haml +18 -0
- data/app/views/spina/admin/parts/lines/_form.html.haml +2 -0
- data/app/views/spina/admin/parts/options/_form.html.haml +3 -0
- data/app/views/spina/admin/parts/repeaters/_fields.html.haml +15 -0
- data/app/views/spina/admin/parts/repeaters/_form.html.haml +18 -0
- data/app/views/spina/admin/parts/texts/_form.html.haml +6 -0
- data/app/views/spina/admin/resources/edit.html.haml +28 -12
- data/app/views/spina/admin/resources/show.html.haml +6 -3
- data/app/views/spina/admin/shared/_notifications.html.haml +4 -4
- data/config/locales/TH.yml +220 -205
- data/config/locales/bg.yml +219 -211
- data/config/locales/de.yml +218 -190
- data/config/locales/en.yml +218 -208
- data/config/locales/es.yml +219 -206
- data/config/locales/fr.yml +219 -190
- data/config/locales/id.yml +219 -189
- data/config/locales/it.yml +225 -152
- data/config/locales/nl.yml +220 -197
- data/config/locales/pl.yml +218 -185
- data/config/locales/pt-BR.yml +218 -205
- data/config/locales/ro.yml +258 -225
- data/config/locales/ru.yml +231 -171
- data/config/locales/sv.yml +218 -183
- data/config/locales/tr.yml +224 -151
- data/config/locales/zh-CN.yml +225 -175
- data/db/migrate/11_create_spina_resources.rb +0 -2
- data/db/migrate/12_add_url_title_to_spina_page_translations.rb +5 -0
- data/db/migrate/13_add_json_attributes_to_spina_accounts.rb +5 -0
- data/db/migrate/14_add_json_attributes_to_spina_pages.rb +5 -0
- data/db/migrate/15_add_slug_to_spina_resources.rb +5 -0
- data/lib/generators/spina/templates/app/views/demo/pages/demo.html.haml +13 -21
- data/lib/generators/spina/templates/app/views/demo/pages/homepage.html.haml +1 -1
- data/lib/generators/spina/templates/config/initializers/themes/default.rb +4 -4
- data/lib/generators/spina/templates/config/initializers/themes/demo.rb +32 -44
- data/lib/spina.rb +2 -0
- data/lib/spina/attr_json_spina_parts_model.rb +29 -0
- data/lib/spina/engine.rb +13 -3
- data/lib/spina/part.rb +19 -0
- data/lib/spina/theme.rb +1 -1
- data/lib/spina/version.rb +1 -1
- data/vendor/assets/javascripts/spina/sortable.js +2 -2
- metadata +71 -45
- data/app/assets/javascripts/spina/admin/account.coffee +0 -16
- data/app/models/concerns/spina/image_collectable.rb +0 -23
- data/app/models/concerns/spina/optionable.rb +0 -12
- data/app/models/concerns/spina/part.rb +0 -38
- data/app/models/spina/attachment_collection.rb +0 -20
- data/app/models/spina/image_collection.rb +0 -23
- data/app/models/spina/image_collections_image.rb +0 -6
- data/app/models/spina/layout_part.rb +0 -22
- data/app/models/spina/line.rb +0 -10
- data/app/models/spina/option.rb +0 -17
- data/app/models/spina/page_part.rb +0 -22
- data/app/models/spina/structure.rb +0 -14
- data/app/models/spina/structure_item.rb +0 -22
- data/app/models/spina/structure_part.rb +0 -20
- data/app/models/spina/text.rb +0 -10
- data/app/views/dummy/show.html.haml +0 -1
- data/app/views/spina/admin/attachments/_attachment_collection.html.haml +0 -2
- data/app/views/spina/admin/attachments/_select.html.haml +0 -17
- data/app/views/spina/admin/attachments/_select_collection.html.haml +0 -18
- data/app/views/spina/admin/attachments/insert.js.erb +0 -5
- data/app/views/spina/admin/attachments/insert_collection.js.coffee +0 -7
- data/app/views/spina/admin/attachments/select.js.erb +0 -2
- data/app/views/spina/admin/attachments/select_collection.js.erb +0 -2
- data/app/views/spina/admin/image_collections/_image_collection.html.haml +0 -5
- data/app/views/spina/admin/layout_partables/lines/_form.html.haml +0 -2
- data/app/views/spina/admin/partables/attachment_collections/_form.html.haml +0 -14
- data/app/views/spina/admin/partables/attachments/_form.html.haml +0 -13
- data/app/views/spina/admin/partables/image_collections/_form.html.haml +0 -16
- data/app/views/spina/admin/partables/images/_form.html.haml +0 -21
- data/app/views/spina/admin/partables/lines/_form.html.haml +0 -5
- data/app/views/spina/admin/partables/options/_form.html.haml +0 -7
- data/app/views/spina/admin/partables/photo_collections/_form.html.haml +0 -4
- data/app/views/spina/admin/partables/photos/_form.html.haml +0 -4
- data/app/views/spina/admin/partables/structures/_form.html.haml +0 -21
- data/app/views/spina/admin/partables/texts/_form.html.haml +0 -8
- data/app/views/spina/admin/structure_items/_fields.html.haml +0 -15
- data/app/views/spina/admin/structure_partables/attachment_collections/_form.html.haml +0 -14
- data/app/views/spina/admin/structure_partables/attachments/_form.html.haml +0 -13
@@ -1,5 +1,6 @@
|
|
1
1
|
= link_to spina.edit_admin_page_path(page), class: 'button button-link button-small sortable-link' do
|
2
2
|
= page.menu_title
|
3
|
+
|
3
4
|
- if page.draft?
|
4
5
|
%small (#{t('spina.pages.concept')})
|
5
6
|
- elsif !page.show_in_menu?
|
@@ -9,6 +10,7 @@
|
|
9
10
|
%small (#{raw t('spina.pages.skip_to_first_child')})
|
10
11
|
|
11
12
|
%span.pull-right
|
12
|
-
= link_to spina.edit_admin_page_path(page), class: 'button button-small button-
|
13
|
-
|
14
|
-
|
13
|
+
= link_to spina.edit_admin_page_path(page), class: 'button button-small button-default dd-nodrag' do
|
14
|
+
.button-content
|
15
|
+
= icon('pencil-outline')
|
16
|
+
= t('spina.edit')
|
@@ -2,6 +2,5 @@
|
|
2
2
|
.dd-item-inner
|
3
3
|
= render partial: 'page', object: page_nested_list
|
4
4
|
|
5
|
-
-
|
6
|
-
|
7
|
-
= render partial: 'page_nested_list', collection: page_nested_list.children.active.sorted.regular_pages
|
5
|
+
%ol.dd-list
|
6
|
+
= render partial: 'page_nested_list', collection: page_nested_list.children.active.sorted.regular_pages
|
@@ -1,8 +1,9 @@
|
|
1
1
|
- content_for(:header_actions) do
|
2
2
|
%span{data: {dropdown: true}}
|
3
3
|
= link_to spina.new_admin_page_path(params: {view_template: 'show'}), class: 'button button-primary', style: 'margin-right: 0', data: {trigger: ('dropdown' if current_theme.new_page_templates.size > 1), target: '#create_page_dropdown'} do
|
4
|
-
|
5
|
-
|
4
|
+
.button-content
|
5
|
+
= icon('plus')
|
6
|
+
= t('spina.pages.new')
|
6
7
|
|
7
8
|
.sliding-dropdown#create_page_dropdown.align-right
|
8
9
|
.slide-controls
|
@@ -25,9 +26,9 @@
|
|
25
26
|
- current_theme.new_page_templates.each_with_index do |template2, index2|
|
26
27
|
.slide-dot{class: ('active' if index2 == index)}
|
27
28
|
|
28
|
-
= link_to spina.new_admin_page_path(params: {view_template: template[0]}), class: 'button button-
|
29
|
+
= link_to spina.new_admin_page_path(params: {view_template: template[0]}), class: 'button button-default' do
|
29
30
|
= icon('pencil-outline')
|
30
|
-
= t('spina.pages.
|
31
|
+
= t('spina.pages.new')
|
31
32
|
|
32
33
|
.well
|
33
34
|
.dd#pages_list{data: {:"sort-url" => spina.sort_admin_pages_url }}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
.page-form-label= f.object.title
|
2
|
+
.page-form-control{data: {controller: "attachment-picker"}}
|
3
|
+
= f.hidden_field :signed_blob_id, data: {target: "attachment-picker.signedBlobId"}
|
4
|
+
= f.hidden_field :filename, data: {target: "attachment-picker.filename"}
|
5
|
+
.select-dropdown
|
6
|
+
= f.select :attachment_id, Spina::Attachment.sorted.map{|attachment| [attachment.file&.filename, attachment.id, data: {signed_blob_id: attachment.file&.blob&.signed_id, filename: attachment.file&.filename}]}, {include_blank: t("spina.attachments.choose_attachment")}, {data: {action: "attachment-picker#chooseAttachment"}}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
= f.hidden_field :image_id, class: 'image-id'
|
2
|
+
= f.hidden_field :signed_blob_id, class: 'signed-blob-id'
|
3
|
+
= f.hidden_field :filename, class: 'filename'
|
4
|
+
- if f.object.signed_blob_id.present? && f.object.spina_image
|
5
|
+
= image_tag main_app.url_for(f.object.spina_image.variant(resize: "400x300^", crop: "400x300+0+0"))
|
6
|
+
- else
|
7
|
+
= image_tag ""
|
@@ -0,0 +1,12 @@
|
|
1
|
+
.page-form-label= f.object.title
|
2
|
+
.page-form-control{data: {controller: "image-form"}}
|
3
|
+
.page-form-media-picker
|
4
|
+
= link_to admin_media_picker_path(selected_ids: f.object.image_ids, input: "media_picker_#{f.object.object_id}", mode: "multiple"), remote: true, class: 'images', data: {target: 'image-form.image'} do
|
5
|
+
.page-form-media-picker-placeholder=t "spina.images.choose"
|
6
|
+
|
7
|
+
%div{id: "media_picker_#{f.object.object_id}", data: data_attrs_for_image_collection(f)}
|
8
|
+
= f.fields_for :images do |ff|
|
9
|
+
= render partial: "spina/admin/parts/image_collections/fields", locals: {f: ff}
|
10
|
+
|
11
|
+
= button_tag type: :default, class: 'button button-small button-default', data: {action: "image-form#remove"} do
|
12
|
+
%i.icon.icon-cross{style: "margin: 0; font-size: 10px"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.page-form-label= f.object.title
|
2
|
+
.page-form-control{data: {controller: "image-form"}}
|
3
|
+
.page-form-media-picker
|
4
|
+
%div{style: "width: 100%"}
|
5
|
+
= link_to admin_media_picker_path(selected_ids: [f.object.image_id], input: "media_picker_#{f.object.object_id}", mode: "single"), remote: true, class: 'image', data: {target: 'image-form.image'} do
|
6
|
+
.page-form-media-picker-placeholder=t "spina.images.choose_image"
|
7
|
+
%div{id: "media_picker_#{f.object.object_id}"}
|
8
|
+
= f.hidden_field :image_id, data: {target: 'image-form.imageId'}
|
9
|
+
= f.hidden_field :signed_blob_id, data: {target: 'image-form.signedBlobId'}
|
10
|
+
= f.hidden_field :filename, data: {target: 'image-form.filename'}
|
11
|
+
%div{style: "width: 200px; height: 150px; overflow: hidden"}
|
12
|
+
- if f.object.signed_blob_id.present? && f.object.spina_image.present?
|
13
|
+
= image_tag main_app.url_for(f.object.spina_image.variant(resize: "400x300^", crop: "400x300+0+0")), width: 200, height: 150
|
14
|
+
|
15
|
+
= f.text_field :alt, placeholder: "Alt text", class: 'page-form-media-picker-alt-text'
|
16
|
+
|
17
|
+
= button_tag type: :default, class: 'button button-small button-default', data: {action: "image-form#remove"} do
|
18
|
+
%i.icon.icon-cross{style: "margin: 0; font-size: 10px"}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
.structure-form-pane{class: ('active' if f.options[:child_index].zero?), id: "structure_form_pane_#{f.object.object_id}", data: {part_id: f.object.object_id, target: "repeater-form.pane"}}
|
2
|
+
= f.hidden_field :title
|
3
|
+
= f.hidden_field :name
|
4
|
+
|
5
|
+
- parts = current_theme.parts.find{|p|p[:name].to_s == f.object.name.to_s}&.dig(:parts) || []
|
6
|
+
|
7
|
+
= f.fields_for :parts, build_parts(f.object, parts) do |ff|
|
8
|
+
= ff.hidden_field :title
|
9
|
+
= ff.hidden_field :type, value: ff.object.class
|
10
|
+
= ff.hidden_field :name
|
11
|
+
|
12
|
+
.structure-form-part
|
13
|
+
= render "spina/admin/parts/#{parts_partial_namespace(ff.object.class.to_s)}/form", f: ff
|
14
|
+
|
15
|
+
= link_to t('spina.delete'), '#', class: 'button button-mini button-link pull-right', data: {action: "repeater-form#delete", part_id: f.object.object_id}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
.page-form-label= f.object.title
|
2
|
+
.page-form-control
|
3
|
+
.structure-form{data: {controller: "repeater-form"}}
|
4
|
+
.structure-form-menu
|
5
|
+
%ul{data: {target: "repeater-form.list"}}
|
6
|
+
- (f.object.content || []).each.with_index do |repeater_content, index|
|
7
|
+
%li{class: ('active' if index.zero?), data: {part_id: repeater_content.object_id, target: "repeater-form.listItem"}}
|
8
|
+
= link_to "#structure_form_pane_#{repeater_content.object_id}" do
|
9
|
+
%i.icon.icon-bars.sortable-handle
|
10
|
+
= repeater_content.parts&.first&.content
|
11
|
+
|
12
|
+
%div{style: "margin-top: 6px; margin-left: 6px"}
|
13
|
+
= link_to_add_repeater_fields f do
|
14
|
+
= icon('plus')
|
15
|
+
|
16
|
+
.structure-form-content{data: {target: "repeater-form.content"}}
|
17
|
+
= f.fields_for :content do |ff|
|
18
|
+
= render 'spina/admin/parts/repeaters/fields', f: ff
|
@@ -1,6 +1,6 @@
|
|
1
1
|
- if @resource.errors.any?
|
2
2
|
- content_for :notifications do
|
3
|
-
.notification.notification-danger.animated.
|
3
|
+
.notification.notification-danger.animated.fadeInLeft
|
4
4
|
= icon('exclamation')
|
5
5
|
.notification-message
|
6
6
|
=t 'spina.notifications.alert'
|
@@ -9,21 +9,44 @@
|
|
9
9
|
= icon('cross')
|
10
10
|
|
11
11
|
= form_with model: @resource, url: spina.admin_resource_path(@resource) do |f|
|
12
|
+
= hidden_field_tag :locale, @locale
|
13
|
+
|
12
14
|
%header#header
|
13
|
-
.breadcrumbs
|
15
|
+
.breadcrumbs
|
16
|
+
= render_breadcrumbs separator: '<div class="divider"></div>'
|
17
|
+
%span{style: 'margin-left: 10px'}
|
18
|
+
- if Spina.config.locales.size > 1
|
19
|
+
%div{style: "display: inline-block", data: {dropdown: true}}
|
20
|
+
= link_to '#', class: 'button button-default button-small', style: 'margin-left: 0; margin-right: 0', data: {trigger: 'dropdown', target: '#locales'} do
|
21
|
+
= icon('comment')
|
22
|
+
=t "spina.languages.#{@locale}"
|
23
|
+
%i.icon.icon-chevron-down{style: 'font-size: 9px; margin-right: 0'}
|
24
|
+
|
25
|
+
%ul#locales
|
26
|
+
- Spina.config.locales.each do |locale|
|
27
|
+
%li
|
28
|
+
= link_to t("spina.languages.#{locale}"), "?locale=#{locale}", style: ('font-weight: 600' if @locale.to_s == locale.to_s).to_s
|
14
29
|
|
15
30
|
#header_actions
|
16
31
|
%button.button.button-primary{type: 'submit', style: 'margin-right: 0'}
|
17
32
|
= icon('check')
|
18
33
|
=t 'spina.save'
|
19
34
|
|
20
|
-
.
|
21
|
-
|
35
|
+
.horizontal-form
|
36
|
+
%div{style: "margin: 40px 0"}
|
22
37
|
.horizontal-form-group
|
23
38
|
.horizontal-form-label
|
24
39
|
= Spina::Resource.human_attribute_name :label
|
25
40
|
.horizontal-form-content
|
26
|
-
|
41
|
+
.page-form-control
|
42
|
+
= f.text_field :label, placeholder: Spina::Resource.human_attribute_name(:label)
|
43
|
+
|
44
|
+
.horizontal-form-group
|
45
|
+
.horizontal-form-label
|
46
|
+
= Spina::Resource.human_attribute_name :slug
|
47
|
+
.horizontal-form-content
|
48
|
+
.page-form-control
|
49
|
+
= f.text_field :slug, placeholder: Spina::Resource.human_attribute_name(:slug), value: f.object.slug(locale: @locale)&.parameterize
|
27
50
|
|
28
51
|
.horizontal-form-group
|
29
52
|
.horizontal-form-label
|
@@ -40,10 +63,3 @@
|
|
40
63
|
.select-dropdown
|
41
64
|
- options = options_for_select(current_theme.view_templates.map { |template| [template[:title], template[:name]] }, @resource.view_template)
|
42
65
|
= f.select :view_template, options, include_blank: true
|
43
|
-
|
44
|
-
.horizontal-form-group
|
45
|
-
.horizontal-form-label
|
46
|
-
= Spina::Resource.human_attribute_name :parent_page
|
47
|
-
.horizontal-form-content
|
48
|
-
.select-dropdown
|
49
|
-
= f.select :parent_page_id, page_ancestry_options(Spina::Page.new), include_blank: Spina::Resource.human_attribute_name(:no_parent)
|
@@ -1,15 +1,18 @@
|
|
1
1
|
- content_for(:header_actions) do
|
2
2
|
|
3
|
-
= link_to spina.edit_admin_resource_path(@resource), class: 'button' do
|
4
|
-
|
3
|
+
= link_to spina.edit_admin_resource_path(@resource), class: 'button button-default' do
|
4
|
+
.button-content
|
5
|
+
= icon('pencil')
|
6
|
+
= t('spina.resources.edit')
|
5
7
|
|
6
8
|
= link_to spina.new_admin_page_path(params: {resource_id: @resource.id, view_template: @resource.view_template.presence || 'show'}), class: 'button button-primary icon-only', style: 'margin-right: 0' do
|
7
9
|
= icon('plus')
|
10
|
+
= t('spina.pages.new')
|
8
11
|
|
9
12
|
.well
|
10
13
|
.dd#pages_list
|
11
14
|
%ol.dd-list
|
12
|
-
-
|
15
|
+
- @resource.pages.roots.each do |page|
|
13
16
|
%li.dd-item{data: {controller: "page-collapse", url: spina.children_admin_page_path(page)}}
|
14
17
|
.dd-item-inner
|
15
18
|
- if page.children.any?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
%aside#notifications
|
2
2
|
- if flash[:notice]
|
3
|
-
.notification.animated.
|
3
|
+
.notification.animated.fadeInLeft
|
4
4
|
= icon('info')
|
5
5
|
.notification-message
|
6
6
|
= flash[:notice].html_safe
|
@@ -9,7 +9,7 @@
|
|
9
9
|
= icon('cross')
|
10
10
|
|
11
11
|
- if flash[:alert]
|
12
|
-
.notification.notification-danger.animated.
|
12
|
+
.notification.notification-danger.animated.fadeInLeft
|
13
13
|
= icon('exclamation')
|
14
14
|
.notification-message
|
15
15
|
= flash[:alert].html_safe
|
@@ -18,8 +18,8 @@
|
|
18
18
|
= icon('cross')
|
19
19
|
|
20
20
|
- if flash[:success]
|
21
|
-
.notification.notification-success.animated.
|
22
|
-
= icon('
|
21
|
+
.notification.notification-success.animated.fadeInLeft
|
22
|
+
= icon('check')
|
23
23
|
.notification-message
|
24
24
|
= flash[:success].html_safe
|
25
25
|
%small= flash[:success_small].try(:html_safe)
|
data/config/locales/TH.yml
CHANGED
@@ -1,243 +1,258 @@
|
|
1
1
|
th:
|
2
|
+
activerecord:
|
3
|
+
attributes:
|
4
|
+
spina/account:
|
5
|
+
address: ที่อยู่
|
6
|
+
city: เมือง
|
7
|
+
email: อีเมล
|
8
|
+
facebook: Facebook
|
9
|
+
google_analytics: วิเคราะห์ทาง Google
|
10
|
+
google_plus: Google+
|
11
|
+
google_site_verification: ตรวจสอบไซต์
|
12
|
+
instagram:
|
13
|
+
kvk_identifier: การค้า
|
14
|
+
kvk_identifier_description: คำอธิบายทางการค้า
|
15
|
+
linkedin:
|
16
|
+
logo: โลโก้
|
17
|
+
name: ชื่อเว็บไซต์
|
18
|
+
phone: โทรศัพท์
|
19
|
+
postal_code: รหัสไปรษณีย์
|
20
|
+
robots_allowed: ยอมรับ
|
21
|
+
theme: ธีม
|
22
|
+
twitter: Twitter
|
23
|
+
vat_identifier: ภาษีมูลค่าเพิ่ม
|
24
|
+
vat_identifier_description: คำอธิบายภาษีมูลค่าเพิ่ม
|
25
|
+
youtube:
|
26
|
+
spina/attachment:
|
27
|
+
created_at: สร้าง
|
28
|
+
name: ชื่อ
|
29
|
+
size: ขนาด
|
30
|
+
spina/media_folder:
|
31
|
+
name: ชื่อ
|
32
|
+
spina/navigation:
|
33
|
+
auto_add_pages: เพิ่มหน้าเพจโดยอัตโนมัติ
|
34
|
+
auto_add_pages_description: เพจใหม่จะถูกเพิ่มลงในการนำทางนี้โดยอัตโนมัติ
|
35
|
+
label: เครื่องหมายป้ายกำกับ
|
36
|
+
pages: หน้าเพจ
|
37
|
+
pages_description: เลือกหน้าเพจที่คุณต้องการใช้ในการนำทางนี้
|
38
|
+
spina/page:
|
39
|
+
ancestry: หน้าแรก
|
40
|
+
created_at:
|
41
|
+
description: คำอธิบาย meta
|
42
|
+
description_description: คำอธิบายนี้จะปรากฏในผลลัพธ์การค้นหา
|
43
|
+
description_placeholder: คำอธิบายโดยย่อของหน้าเว็บของคุณ
|
44
|
+
draft: การร่าง
|
45
|
+
draft_description: เหมาะสำหรับหน้าเว็บของคุณที่ยังไม่เสร็จสมบูรณ์
|
46
|
+
link_url: เปลี่ยนหน้า
|
47
|
+
link_url_description: ส่งต่อไปยัง URL
|
48
|
+
link_url_placeholder: เช่น http://www.example.com/
|
49
|
+
menu_title: ชื่อการนำทาง
|
50
|
+
menu_title_placeholder: เว้นว่างไว้เพื่อใช้ชื่อหน้า
|
51
|
+
no_parent: ไม่มีเพจระดับบน
|
52
|
+
resource:
|
53
|
+
seo_title: SEO <title>
|
54
|
+
seo_title_placeholder: ชื่อนี้ใช้ใน <title> -tag
|
55
|
+
show_in_menu: แสดงการนำทาง
|
56
|
+
show_in_menu_description: ถ้าหน้านี้ถูกปิดใช้งานจะไม่ปรากฏการนำทางของคุณ
|
57
|
+
skip_to_first_child: ส่งใหม่
|
58
|
+
skip_to_first_child_description: ส่งต่อไปยังหน้าแรก
|
59
|
+
title: ชื่อเรื่อง
|
60
|
+
title_placeholder: ชื่อเรื่องของหน้า
|
61
|
+
url_title:
|
62
|
+
url_title_description:
|
63
|
+
url_title_placeholder:
|
64
|
+
view_template: เทมเพลตของเพจ
|
65
|
+
spina/resource:
|
66
|
+
label:
|
67
|
+
order_by:
|
68
|
+
parent_page:
|
69
|
+
view_template:
|
70
|
+
spina/user:
|
71
|
+
admin: ผู้ดูแลระบบ
|
72
|
+
admin_description: ผู้ดูแลระบบสามารถสร้างผู้ใช้ได้
|
73
|
+
email: อีเมล
|
74
|
+
email_description: อีเมลของคุณต้องไม่ซ้ำ
|
75
|
+
last_logged_in: ป้อนครั้งสุดท้าย
|
76
|
+
name: ชื่อ
|
77
|
+
name_placeholder: ชื่อ
|
78
|
+
password: รหัสผ่าน
|
79
|
+
password_confirmation: ยืนยันรหัสผ่าน
|
80
|
+
password_description: ปล่อยว่างเพื่อเก็บรหัสผ่านของคุณ
|
81
|
+
role: บทบาท
|
82
|
+
user: ผู้ใช้
|
83
|
+
models:
|
84
|
+
spina/attachment:
|
85
|
+
one: เอกสาร
|
86
|
+
other: หลายๆเอกสาร
|
87
|
+
spina/page:
|
88
|
+
one: หน้าเพจ
|
89
|
+
other: หลายๆหน้าเพจ
|
90
|
+
spina/photo:
|
91
|
+
one: รูปภาพ
|
92
|
+
other: หลายๆรูปภาพ
|
93
|
+
spina/user:
|
94
|
+
one: ผู้ใช้
|
95
|
+
other: หลายๆผู้ใช้
|
2
96
|
spina:
|
97
|
+
ago: อายุ
|
98
|
+
attachments:
|
99
|
+
choose_attachment:
|
100
|
+
insert: แทรกเอกสาร
|
101
|
+
insert_multiple: แทรกเอกสาร
|
3
102
|
cancel: ยกเลิก
|
4
|
-
close: ปิด
|
5
103
|
choose_from_library: เลือกจากไลบารี
|
6
|
-
|
7
|
-
save: บันทึก
|
104
|
+
close: ปิด
|
8
105
|
delete: ลบ
|
9
|
-
|
10
|
-
|
11
|
-
login: ลงชื่อเข้าใช้
|
12
|
-
preview_website: ตัวอย่างเว็บไซต์
|
13
|
-
search: ค้นหา
|
14
|
-
ago: อายุ
|
106
|
+
delete_confirmation: คุณแน่ใจหรือไม่ว่าต้องการลบ <strong>%{subject}</strong>?
|
107
|
+
edit: แก้ไข
|
15
108
|
edit_website: แก้ไขเว็บไซต์
|
16
|
-
logout: ลงชื่อออก
|
17
|
-
main_menu: เมนูหลัก
|
18
|
-
|
19
|
-
settings:
|
20
|
-
title: การตั้งค่า
|
21
|
-
save: บันทึก
|
22
|
-
|
23
109
|
forgot_password:
|
110
|
+
expired: โทเค็นของคุณเพื่อรีเซ็ตรหัสผ่านหมดอายุแล้ว
|
111
|
+
mail_subject: รีเซ็ตรหัสผ่านของคุณ
|
24
112
|
new: ลืมรหัสผ่าน
|
25
113
|
request: ขอรหัสผ่านใหม่
|
26
|
-
unknown_user: ไม่มีผู้ใช้รายนี้
|
27
114
|
save: บันทึกรหัสผ่านใหม่
|
28
115
|
success: คุณสามารถใช้รหัสผ่านใหม่ได้
|
29
|
-
|
30
|
-
|
31
|
-
|
116
|
+
unknown_user: ไม่มีผู้ใช้รายนี้
|
117
|
+
images:
|
118
|
+
all_images:
|
119
|
+
back:
|
120
|
+
cannot_be_created:
|
121
|
+
choose_image:
|
122
|
+
choose_images:
|
123
|
+
confirm_selection:
|
124
|
+
delete:
|
125
|
+
delete_confirmation:
|
126
|
+
delete_folder:
|
127
|
+
done_organizing:
|
128
|
+
insert_image:
|
129
|
+
insert_photo:
|
130
|
+
insert_photos:
|
131
|
+
link:
|
132
|
+
new_folder:
|
133
|
+
organize:
|
134
|
+
remove_image:
|
135
|
+
upload:
|
136
|
+
upload_image:
|
137
|
+
languages:
|
138
|
+
bg:
|
139
|
+
de:
|
140
|
+
en: ภาษาอังกฤษ
|
141
|
+
es:
|
142
|
+
fr:
|
143
|
+
id:
|
144
|
+
it:
|
145
|
+
nl: ไทย
|
146
|
+
pl:
|
147
|
+
pt-BR:
|
148
|
+
ro:
|
149
|
+
ru:
|
150
|
+
sv:
|
151
|
+
th:
|
152
|
+
tr:
|
153
|
+
zh-CN:
|
154
|
+
login: ลงชื่อเข้าใช้
|
155
|
+
logout: ลงชื่อออก
|
156
|
+
main_menu: เมนูหลัก
|
157
|
+
media_library:
|
158
|
+
attachments: เอกสาร
|
159
|
+
images:
|
160
|
+
photos: รูปภาพ
|
32
161
|
modal:
|
33
|
-
agree:
|
34
|
-
cancel:
|
35
|
-
|
162
|
+
agree: ตกลง
|
163
|
+
cancel: ยกเลิก
|
36
164
|
notifications:
|
37
|
-
information: ข้อมูล
|
38
165
|
alert: อ้าว!เกิดข้อผิดพลาด
|
166
|
+
information: ข้อมูล
|
39
167
|
login: คุณต้องเข้าสู่ระบบก่อน
|
40
168
|
wrong_username_or_password: อีเมลหรือรหัสผ่านไม่ถูกต้อง
|
41
|
-
|
42
|
-
|
43
|
-
title: ไซต์ของคุณ
|
44
|
-
pages: หน้าเพจ
|
45
|
-
all_pages: หน้าเพจทั้งหมด
|
46
|
-
pages_description: "ทุกหน้าในเว็บไซต์ของคุณ"
|
47
|
-
media_library: มีเดียไลบรารี
|
48
|
-
media_library_description: "คุณจะพบรูปภาพและเอกสารทั้งหมดของคุณ"
|
49
|
-
documents: เอกสาร
|
50
|
-
photos: รูปภาพ
|
51
|
-
|
169
|
+
options:
|
170
|
+
choose_option:
|
52
171
|
pages:
|
53
|
-
|
54
|
-
create_page: "สร้างหน้าใหม่ %{template}"
|
172
|
+
advanced: ขั้นสูง
|
55
173
|
change_order: เปลี่ยนออเดอร์
|
56
|
-
|
174
|
+
concept: คอนเซ็ปท์
|
175
|
+
create_page: สร้างหน้าใหม่ %{template}
|
176
|
+
delete_confirmation: คุณแน่ใจหรือไม่ว่าต้องการลบหน้านี้ <strong>%{subject}</strong>?
|
177
|
+
done_changing_order: การสั่งซื้อเสร็จสิ้น
|
178
|
+
invisible_to_search_engines: เว็บไซต์ของคุณไม่สามารถใช้งานได้กับเครื่องมือค้นหา
|
179
|
+
invisible_to_search_engines_description: ป้อนการตั้งค่าเพื่อเปิดใช้งานเครื่องมือค้นหา
|
180
|
+
materialize_path_confirmation: คุณแน่ใจหรือว่าต้องการสร้างเส้นทางสำหรับหน้านี้ใหม่
|
181
|
+
new: หน้าใหม่
|
57
182
|
page_content: เนื้อหา
|
58
|
-
page_seo: เครื่องมือค้นหา
|
59
|
-
advanced: ขั้นสูง
|
60
183
|
page_part: ส่วนของหน้า
|
61
|
-
|
184
|
+
page_seo: เครื่องมือค้นหา
|
62
185
|
photo_picker: เลือกรูปภาพ
|
63
|
-
|
186
|
+
photos_picker: เลือกรูปภาพ
|
187
|
+
rebuild_materialized_path: กำหนดเส้นทางที่สร้างขึ้นใหม่
|
64
188
|
save: บันทึกหน้า
|
65
|
-
|
189
|
+
saved: บันทึกเสร็จสิ้น
|
190
|
+
saving: กำลังบันทึก
|
66
191
|
show_in_menu: มองไม่เห็น
|
67
192
|
skip_to_first_child: ข้ามไปที่หน้าแรก
|
68
|
-
|
69
|
-
invisible_to_search_engines_description: ป้อนการตั้งค่าเพื่อเปิดใช้งานเครื่องมือค้นหา
|
70
|
-
rebuild_materialized_path: กำหนดเส้นทางที่สร้างขึ้นใหม่
|
71
|
-
materialize_path_confirmation: "คุณแน่ใจหรือว่าต้องการสร้างเส้นทางสำหรับหน้านี้ใหม่"
|
72
|
-
saving: กำลังบันทึก
|
73
|
-
saved: บันทึกเสร็จสิ้น
|
74
|
-
|
75
|
-
users:
|
76
|
-
new: ผู้ใช้ใหม่
|
77
|
-
save: บันทึกผู้ใช้
|
78
|
-
delete_confirmation: "คุณแน่ใจหรือไม่ว่าต้องการลบผู้ใช้นี้ <strong>%{user}</strong>?"
|
79
|
-
cannot_be_created: ไม่สามารถบันทึกการสร้างได้
|
80
|
-
|
193
|
+
permanently_delete: ลบอย่างถาวร
|
81
194
|
photos:
|
82
|
-
|
195
|
+
cannot_be_created: 'รูปภาพของคุณไม่สามารถประมวลผลได้:'
|
196
|
+
choose_images:
|
197
|
+
delete:
|
198
|
+
delete_confirmation: คุณแน่ใจหรือไม่ว่าต้องการลบ <strong> รูปภาพนี้ </strong>?
|
199
|
+
delete_folder: ลบโฟลเดอร์
|
200
|
+
done_organizing: เสร็จสิ้นการจัดรูปภาพ
|
201
|
+
insert_photo: แทรกรูปภาพ
|
83
202
|
insert_photos: แทรกหลายรูปภาพ
|
203
|
+
link: 'URL รูปภาพของคุณ:'
|
204
|
+
new_folder: โฟลเดอร์ใหม่
|
205
|
+
organize: จัดระเบียบรูปภาพ
|
206
|
+
rename_folder:
|
84
207
|
select_images: เลือกรูปภาพ
|
85
|
-
insert_photo: แทรกรูปภาพ
|
86
|
-
link: "URL รูปภาพของคุณ:"
|
87
|
-
cannot_be_created: "รูปภาพของคุณไม่สามารถประมวลผลได้:"
|
88
208
|
upload_image: อัปโหลดรูปภาพ
|
89
|
-
organize: จัดระเบียบรูปภาพ
|
90
|
-
done_organizing: เสร็จสิ้นการจัดรูปภาพ
|
91
|
-
new_folder: โฟลเดอร์ใหม่
|
92
|
-
delete_folder: ลบโฟลเดอร์
|
93
|
-
|
94
|
-
wysiwyg:
|
95
|
-
paragraph: ย่อหน้า
|
96
|
-
heading_1: ส่วนหัว 1
|
97
|
-
heading_2: ส่วนหัว 2
|
98
|
-
heading_3: ส่วนหัว 3
|
99
|
-
quote: อ้างอิง
|
100
|
-
insert_link: แทรกลิงค์
|
101
|
-
|
102
209
|
preferences:
|
103
|
-
|
210
|
+
Analytics: วิเคราะห์และเครื่องมือค้นหา
|
104
211
|
account: ทั่วไป
|
105
212
|
account_description: ความชอบส่วนบุคคล
|
106
213
|
account_save: บันทึกการตั้งค่า
|
214
|
+
analytics:
|
215
|
+
analytics_description: เชื่อมโยงบัญชีของคุณเพื่อการวิเคราะห์แบบเรียลไทม์
|
216
|
+
analytics_save: บันทึกการตั้งค่า
|
217
|
+
domain_name_settings: การกำหนดค่าโดเมน
|
218
|
+
domain_name_settings_description: ตั้งค่าโดเมนของคุณเอง
|
219
|
+
social_media: เครือข่ายทางสังคม
|
220
|
+
social_media_description: บัญชี Facebook และ Twitter
|
221
|
+
social_media_save: บันทึกเครือข่ายสังคมออนไลน์
|
107
222
|
style: สไตล์
|
108
223
|
style_description: เลือกธีมที่เหมาะกับแบรนด์ของคุณ
|
109
224
|
style_save: บันทึกสไตล์
|
225
|
+
title: การกำหนดลักษณะ
|
110
226
|
users: ผู้ใช้
|
111
227
|
users_description: จัดการผู้ใช้และผู้ดูแลระบบ
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
228
|
+
preview_website: ตัวอย่างเว็บไซต์
|
229
|
+
resources:
|
230
|
+
edit:
|
231
|
+
save: บันทึก
|
232
|
+
search: ค้นหา
|
233
|
+
settings:
|
234
|
+
save: บันทึก
|
235
|
+
title: การตั้งค่า
|
236
|
+
users:
|
237
|
+
cannot_be_created: ไม่สามารถบันทึกการสร้างได้
|
238
|
+
delete_confirmation: คุณแน่ใจหรือไม่ว่าต้องการลบผู้ใช้นี้ <strong>%{user}</strong>?
|
239
|
+
new: ผู้ใช้ใหม่
|
240
|
+
save: บันทึกผู้ใช้
|
241
|
+
visit_page:
|
242
|
+
website:
|
243
|
+
all_pages: หน้าเพจทั้งหมด
|
244
|
+
documents: เอกสาร
|
245
|
+
images:
|
246
|
+
media_library: มีเดียไลบรารี
|
247
|
+
media_library_description: คุณจะพบรูปภาพและเอกสารทั้งหมดของคุณ
|
248
|
+
pages: หน้าเพจ
|
249
|
+
pages_description: ทุกหน้าในเว็บไซต์ของคุณ
|
126
250
|
photos: รูปภาพ
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
one: ผู้ใช้
|
136
|
-
other: หลายๆผู้ใช้
|
137
|
-
spina/photo:
|
138
|
-
one: รูปภาพ
|
139
|
-
other: หลายๆรูปภาพ
|
140
|
-
spina/attachment:
|
141
|
-
one: เอกสาร
|
142
|
-
other: หลายๆเอกสาร
|
143
|
-
|
144
|
-
attributes:
|
145
|
-
spina/account:
|
146
|
-
name: ชื่อเว็บไซต์
|
147
|
-
address: ที่อยู่
|
148
|
-
postal_code: รหัสไปรษณีย์
|
149
|
-
city: เมือง
|
150
|
-
phone: โทรศัพท์
|
151
|
-
email: อีเมล
|
152
|
-
kvk_identifier: การค้า
|
153
|
-
kvk_identifier_description: คำอธิบายทางการค้า
|
154
|
-
vat_identifier: ภาษีมูลค่าเพิ่ม
|
155
|
-
vat_identifier_description: คำอธิบายภาษีมูลค่าเพิ่ม
|
156
|
-
theme: ธีม
|
157
|
-
logo: โลโก้
|
158
|
-
google_analytics: วิเคราะห์ทาง Google
|
159
|
-
google_site_verification: ตรวจสอบไซต์
|
160
|
-
robots_allowed: ยอมรับ
|
161
|
-
facebook: Facebook
|
162
|
-
twitter: Twitter
|
163
|
-
google_plus: Google+
|
164
|
-
|
165
|
-
spina/attachment:
|
166
|
-
created_at: สร้าง
|
167
|
-
name: ชื่อ
|
168
|
-
size: ขนาด
|
169
|
-
|
170
|
-
spina/page:
|
171
|
-
title: ชื่อเรื่อง
|
172
|
-
title_placeholder: ชื่อเรื่องของหน้า
|
173
|
-
seo_title: SEO <title>
|
174
|
-
seo_title_placeholder: ชื่อนี้ใช้ใน <title> -tag
|
175
|
-
description: คำอธิบาย meta
|
176
|
-
description_description: คำอธิบายนี้จะปรากฏในผลลัพธ์การค้นหา
|
177
|
-
description_placeholder: คำอธิบายโดยย่อของหน้าเว็บของคุณ
|
178
|
-
draft: การร่าง
|
179
|
-
draft_description: เหมาะสำหรับหน้าเว็บของคุณที่ยังไม่เสร็จสมบูรณ์
|
180
|
-
skip_to_first_child: ส่งใหม่
|
181
|
-
skip_to_first_child_description: ส่งต่อไปยังหน้าแรก
|
182
|
-
link_url: เปลี่ยนหน้า
|
183
|
-
link_url_description: ส่งต่อไปยัง URL
|
184
|
-
link_url_placeholder: เช่น http://www.example.com/
|
185
|
-
show_in_menu: แสดงการนำทาง
|
186
|
-
show_in_menu_description: "ถ้าหน้านี้ถูกปิดใช้งานจะไม่ปรากฏการนำทางของคุณ"
|
187
|
-
menu_title: ชื่อการนำทาง
|
188
|
-
menu_title_placeholder: เว้นว่างไว้เพื่อใช้ชื่อหน้า
|
189
|
-
view_template: เทมเพลตของเพจ
|
190
|
-
ancestry: หน้าแรก
|
191
|
-
no_parent: ไม่มีเพจระดับบน
|
192
|
-
|
193
|
-
spina/user:
|
194
|
-
email: อีเมล
|
195
|
-
password: รหัสผ่าน
|
196
|
-
name: ชื่อ
|
197
|
-
name_placeholder: ชื่อ
|
198
|
-
อีเมล: อีเมล
|
199
|
-
email_description: อีเมลของคุณต้องไม่ซ้ำใคร
|
200
|
-
password: รหัสผ่าน
|
201
|
-
password_description: เว้นว่างไว้เพื่อเก็บรหัสผ่าน
|
202
|
-
password_confirmation: ยืนยันรหัสผ่าน
|
203
|
-
admin: ผู้ดูแลระบบ
|
204
|
-
user: ผู้ใช้
|
205
|
-
admin_description: ผู้ดูแลระบบสามารถสร้างผู้ใช้
|
206
|
-
role: บทบาท
|
207
|
-
last_logged_in: เข้าสู่ระบบครั้งล่าสุด
|
208
|
-
|
209
|
-
spina/media_folder:
|
210
|
-
name: ชื่อ
|
211
|
-
|
212
|
-
spina/navigation:
|
213
|
-
label: เครื่องหมายป้ายกำกับ
|
214
|
-
auto_add_pages: เพิ่มหน้าเพจโดยอัตโนมัติ
|
215
|
-
auto_add_pages_description: เพจใหม่จะถูกเพิ่มลงในการนำทางนี้โดยอัตโนมัติ
|
216
|
-
pages: หน้าเพจ
|
217
|
-
pages_description: เลือกหน้าเพจที่คุณต้องการใช้ในการนำทางนี้
|
218
|
-
|
219
|
-
spina/user:
|
220
|
-
email: อีเมล
|
221
|
-
password: รหัสผ่าน
|
222
|
-
name: ชื่อ
|
223
|
-
name_placeholder: ชื่อ
|
224
|
-
email: อีเมล
|
225
|
-
email_description: อีเมลของคุณต้องไม่ซ้ำ
|
226
|
-
password: รหัสผ่าน
|
227
|
-
password_description: ปล่อยว่างเพื่อเก็บรหัสผ่านของคุณ
|
228
|
-
password_confirmation: ยืนยันรหัสผ่าน
|
229
|
-
admin: ผู้ดูแลระบบ
|
230
|
-
user: ผู้ใช้
|
231
|
-
admin_description: ผู้ดูแลระบบสามารถสร้างผู้ใช้ได้
|
232
|
-
role: บทบาท
|
233
|
-
last_logged_in: ป้อนครั้งสุดท้าย
|
234
|
-
|
235
|
-
misc:
|
236
|
-
messages:
|
237
|
-
zero: "0 ข้อความ"
|
238
|
-
one: "1 ข้อความ"
|
239
|
-
other: "%{count} ข้อความใหม่"
|
240
|
-
|
241
|
-
languages:
|
242
|
-
en: ภาษาอังกฤษ
|
243
|
-
nl: ไทย
|
251
|
+
title: ไซต์ของคุณ
|
252
|
+
wysiwyg:
|
253
|
+
heading_1: ส่วนหัว 1
|
254
|
+
heading_2: ส่วนหัว 2
|
255
|
+
heading_3: ส่วนหัว 3
|
256
|
+
insert_link: แทรกลิงค์
|
257
|
+
paragraph: ย่อหน้า
|
258
|
+
quote: อ้างอิง
|