locomotive_cms 2.5.5 → 2.5.6.rc1

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -2
  3. data/README.textile +3 -3
  4. data/app/assets/images/locomotive/icons/flags/pt.png +0 -0
  5. data/app/assets/javascripts/locomotive/utils/aloha_settings.js.coffee +1 -1
  6. data/app/assets/javascripts/locomotive/views/current_site/edit_view.js.coffee +5 -0
  7. data/app/assets/stylesheets/locomotive/backoffice/menu/main.css.scss +1 -1
  8. data/app/controllers/locomotive/api/theme_assets_controller.rb +1 -1
  9. data/app/controllers/locomotive/public/content_entries_controller.rb +6 -11
  10. data/app/controllers/locomotive/public/pages_controller.rb +1 -1
  11. data/app/controllers/locomotive/public/sitemaps_controller.rb +1 -1
  12. data/app/models/locomotive/extensions/content_type/sync.rb +16 -5
  13. data/app/models/locomotive/extensions/page/tree.rb +7 -3
  14. data/app/models/locomotive/extensions/site/locales.rb +12 -9
  15. data/app/models/locomotive/site.rb +10 -0
  16. data/app/views/locomotive/current_site/_form.html.haml +1 -0
  17. data/config/locales/admin_ui.cs.yml +2 -0
  18. data/config/locales/admin_ui.de.yml +3 -2
  19. data/config/locales/admin_ui.en.yml +1 -0
  20. data/config/locales/admin_ui.es.yml +2 -1
  21. data/config/locales/admin_ui.et.yml +1 -0
  22. data/config/locales/admin_ui.fr.yml +2 -1
  23. data/config/locales/admin_ui.it.yml +23 -0
  24. data/config/locales/admin_ui.ja.yml +1 -0
  25. data/config/locales/admin_ui.nb.yml +1 -0
  26. data/config/locales/admin_ui.nl.yml +4 -0
  27. data/config/locales/admin_ui.pl.yml +1 -0
  28. data/config/locales/admin_ui.pt-BR.yml +6 -5
  29. data/config/locales/admin_ui.pt.yml +320 -0
  30. data/config/locales/admin_ui.ru.yml +1 -0
  31. data/config/locales/admin_ui.sk.yml +2 -0
  32. data/config/locales/admin_ui.sr.yml +1 -0
  33. data/config/locales/admin_ui.zh-CN.yml +1 -0
  34. data/config/locales/carrierwave.pt.yml +4 -0
  35. data/config/locales/default.pt.yml +212 -0
  36. data/config/locales/devise.pt.yml +62 -0
  37. data/config/locales/flash.pt.yml +106 -0
  38. data/config/locales/formtastic.pt.yml +70 -0
  39. data/config/routes.rb +5 -6
  40. data/features/api/authorization/theme_assets.feature +4 -4
  41. data/features/public/contact_form.feature +1 -1
  42. data/features/public/new_contact_form.feature +95 -0
  43. data/features/public/pages.feature +2 -2
  44. data/features/step_definitions/relationships_steps.rb +37 -34
  45. data/lib/generators/locomotive/install/install_generator.rb +2 -0
  46. data/lib/generators/locomotive/install/templates/README +3 -2
  47. data/lib/generators/locomotive/install/templates/devise.rb +175 -0
  48. data/lib/generators/locomotive/install/templates/dragonfly.rb +1 -1
  49. data/lib/generators/locomotive/install/templates/locomotive.rb +2 -2
  50. data/lib/locomotive.rb +9 -0
  51. data/lib/locomotive/action_controller/public_responder.rb +45 -28
  52. data/lib/locomotive/configuration.rb +2 -2
  53. data/lib/locomotive/liquid/drops/content_entry.rb +6 -8
  54. data/lib/locomotive/liquid/drops/site.rb +1 -5
  55. data/lib/locomotive/liquid/filters/translate.rb +1 -1
  56. data/lib/locomotive/liquid/tags/fetch_page.rb +14 -6
  57. data/lib/locomotive/liquid/tags/model_form.rb +75 -0
  58. data/lib/locomotive/middlewares.rb +5 -1
  59. data/lib/locomotive/middlewares/base.rb +45 -0
  60. data/lib/locomotive/middlewares/locale.rb +32 -0
  61. data/lib/locomotive/middlewares/locale_redirection.rb +46 -0
  62. data/lib/locomotive/middlewares/seo_trailing_slash.rb +7 -28
  63. data/lib/locomotive/middlewares/site.rb +26 -0
  64. data/lib/locomotive/regexps.rb +1 -1
  65. data/lib/locomotive/render.rb +22 -2
  66. data/lib/locomotive/routing.rb +1 -0
  67. data/lib/locomotive/routing/post_content_entry_constraint.rb +11 -0
  68. data/lib/locomotive/routing/site_dispatcher.rb +1 -12
  69. data/lib/locomotive/version.rb +1 -1
  70. data/spec/dummy/config/boot.rb +1 -1
  71. data/spec/dummy/config/initializers/dragonfly.rb +1 -1
  72. data/spec/dummy/config/initializers/locomotive.rb +2 -2
  73. data/spec/lib/locomotive/liquid/drops/content_entry_spec.rb +23 -18
  74. data/spec/lib/locomotive/liquid/drops/site_spec.rb +25 -15
  75. data/spec/lib/locomotive/liquid/tags/model_form_spec.rb +46 -0
  76. data/spec/lib/locomotive/routing/site_dispatcher_spec.rb +0 -41
  77. data/spec/models/locomotive/site_spec.rb +1 -1
  78. data/spec/requests/locale_redirection_spec.rb +109 -0
  79. data/spec/requests/locale_spec.rb +85 -0
  80. data/spec/requests/seo_trailing_slash_spec.rb +1 -1
  81. data/spec/requests/site_spec.rb +27 -0
  82. data/spec/support/factories.rb +6 -0
  83. data/spec/support/middlewares.rb +3 -0
  84. metadata +48 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 934e34a25d00b8c0c55c81d20e17346b7a75f105
4
- data.tar.gz: dd086d5f1ef9307fd1b6f4deb59c0581840b45c7
3
+ metadata.gz: b03080f0869d8c8dffe1f7394f9410ddcfe8b9e0
4
+ data.tar.gz: 8649c776cdb126fd7c6ba67ad7578c84d71a19a9
5
5
  SHA512:
6
- metadata.gz: 3dd291b6d7e877f9187ec006a9d66300b176d7cecba047cf94a842f9d29f72d614f13e67a41006f0a1ac97537eac170134f8d31f468b99a1c2a3ca00b47c1c7a
7
- data.tar.gz: 249b2e6f9b65fc55e13ff4aa31e40853d7f163a8c9e846fedeba3619ca456dd81e6610f5858b719fd8f8966f0e558e924772ab985bb5e840056120fe006d7df7
6
+ metadata.gz: 395d855f2fd564535e365289afb551f38ee38761f146e459a93c7b5f39dbe8b95f51d1fd07b1b5fd0dfc3fd0ce90202b4c70cfa7e21f57bedbf0d325e5b3fb3e
7
+ data.tar.gz: b20cf87aac7025dec0241910f99e050be41b39ae27ffb92d9cd9db2dbea1b590576abdd2e3a3510980e66fc37e66feb61c8d830c0186707e731cbacfe98cd89a
data/Gemfile CHANGED
@@ -9,14 +9,13 @@ group :assets do
9
9
  gem 'sass-rails', '~> 3.2.4'
10
10
  gem 'coffee-rails', '~> 3.2.2'
11
11
  gem 'uglifier', '~> 1.2.4'
12
- gem 'compass-rails'
13
12
  end
14
13
 
15
14
  # The rest of the dependencies are for use when in the locomotive development / test environments
16
15
 
17
16
  group :test, :development do
18
17
  gem 'rspec-rails', '~> 2.13.0' # In order to have rspec tasks and generators
19
- gem 'rspec-cells'
18
+ gem 'rspec-cells', '0.1.10'
20
19
  end
21
20
 
22
21
  group :development do
@@ -28,7 +28,7 @@ h2. Gems
28
28
  Here is a short list of main gems / technologies used in the application.
29
29
 
30
30
  * Ruby 2.x
31
- * Rails 3.2.17 (Rails 4.0 planned for the beginning of 2014)
31
+ * Rails 3.2.19 (Rails 4.0 planned for the beginning of 2014)
32
32
  * Mongoid 3.1.5 (with MongoDB 2.x)
33
33
  * Liquid
34
34
  * Devise
@@ -44,7 +44,7 @@ See the "installation documentation on the official website":http://doc.locomoti
44
44
 
45
45
  h2. Upgrading
46
46
 
47
- We work on the procedure to upgrade from a previous version of the engine (below the 2.0.0)
47
+ See the "engine upgrade guide on the official website":http://doc.locomotivecms.com/guides/upgrading-engine
48
48
 
49
49
  h2. Community
50
50
 
@@ -89,5 +89,5 @@ h2. Contact
89
89
 
90
90
  Feel free to contact me at didier at nocoffee dot fr.
91
91
 
92
- Copyright (c) 2013 NoCoffee, released under the MIT license
92
+ Copyright (c) 2014 NoCoffee, released under the MIT license
93
93
  ...
@@ -39,7 +39,7 @@ window.Aloha.settings =
39
39
  crop: false
40
40
 
41
41
  i18n:
42
- available: ['en', 'fr', 'pl', 'pt-BR', 'es', 'de', 'no', 'ru', 'nl', 'ja', 'cs', 'bg', 'sk']
42
+ available: ['en', 'fr', 'pl', 'pt', 'pt-BR', 'es', 'de', 'no', 'ru', 'nl', 'ja', 'cs', 'bg', 'sk']
43
43
 
44
44
  sidebar:
45
45
  disabled: true
@@ -28,6 +28,8 @@ class Locomotive.Views.CurrentSite.EditView extends Locomotive.Views.Shared.Form
28
28
 
29
29
  @enable_liquid_editing()
30
30
 
31
+ @enable_checkboxes()
32
+
31
33
  add_toggle_mode_for_locales: ->
32
34
  @$('#site_locales_input .list input[type=checkbox]').bind 'change', (event) ->
33
35
  el = $(event.target)
@@ -67,6 +69,9 @@ class Locomotive.Views.CurrentSite.EditView extends Locomotive.Views.Shared.Form
67
69
 
68
70
  @editor.on 'change', (editor, change) => @model.set(robots_txt: editor.getValue())
69
71
 
72
+ enable_checkboxes: ->
73
+ @_enable_checkbox('prefix_default_locale')
74
+
70
75
  save: (event) ->
71
76
  # if @model.includes_domain(window.location.host)
72
77
  if !@model.get('subdomain') || @model.includes_domain(window.location.host)
@@ -2,7 +2,7 @@
2
2
  @import "compass/css3/border-radius";
3
3
  @import "compass/css3/text-shadow";
4
4
  @import "compass/css3/box-shadow";
5
- @import "compass/css3/transform-legacy";
5
+ @import "compass/css3/transform";
6
6
 
7
7
  #menu {
8
8
  padding: 0;
@@ -5,7 +5,7 @@ module Locomotive
5
5
  load_and_authorize_resource class: Locomotive::ThemeAsset, through: :current_site
6
6
 
7
7
  def index
8
- respond_with(@theme_assets)
8
+ respond_with(@theme_assets.sort_by(&:local_path))
9
9
  end
10
10
 
11
11
  def show
@@ -10,26 +10,24 @@ module Locomotive
10
10
 
11
11
  before_filter :sanitize_entry_params, only: :create
12
12
 
13
+ self.responder = Locomotive::ActionController::PublicResponder
14
+
13
15
  respond_to :html, :json
14
16
 
15
17
  def create
16
18
  @entry = @content_type.entries.safe_create(params[:entry] || params[:content])
17
-
18
- respond_with @entry, {
19
- location: self.callback_url,
20
- responder: Locomotive::ActionController::PublicResponder
21
- }
19
+ respond_with @entry
22
20
  end
23
21
 
24
22
  protected
25
23
 
26
24
  def set_locale
27
- ::I18n.locale = params[:locale] || current_site.default_locale
25
+ ::I18n.locale = request.env['locomotive.locale'] || params[:locale] || current_site.default_locale
28
26
  ::Mongoid::Fields::I18n.locale = ::I18n.locale
29
27
  end
30
28
 
31
29
  def set_content_type
32
- @content_type = current_site.content_types.where(slug: params[:slug]).first
30
+ @content_type = current_site.content_types.where(slug: params[:content_type_slug] || params[:slug]).first
33
31
 
34
32
  # check if ability to receive public submissions
35
33
  unless @content_type.public_submission_enabled?
@@ -41,10 +39,6 @@ module Locomotive
41
39
  end
42
40
  end
43
41
 
44
- def callback_url
45
- (@entry.errors.empty? ? params[:success_callback] : params[:error_callback]) || main_app.root_path
46
- end
47
-
48
42
  def sanitize_entry_params
49
43
  entry_params = params[:entry] || params[:content] || {}
50
44
  entry_params.each do |key, value|
@@ -53,6 +47,7 @@ module Locomotive
53
47
  end
54
48
  end
55
49
 
50
+ # only verify csrf protection if it has been enable in the Locomotive config file
56
51
  def handle_unverified_request
57
52
  if Locomotive.config.csrf_protection
58
53
  reset_session
@@ -39,7 +39,7 @@ module Locomotive
39
39
  end
40
40
 
41
41
  def set_locale
42
- ::Mongoid::Fields::I18n.locale = params[:locale] || current_site.default_locale
42
+ ::Mongoid::Fields::I18n.locale = request.env['locomotive.locale'] || params[:locale] || current_site.default_locale
43
43
  ::I18n.locale = ::Mongoid::Fields::I18n.locale
44
44
 
45
45
  self.setup_i18n_fallbacks
@@ -14,7 +14,7 @@ module Locomotive
14
14
  protected
15
15
 
16
16
  def set_locale
17
- ::Mongoid::Fields::I18n.locale = params[:locale] || current_site.default_locale
17
+ ::Mongoid::Fields::I18n.locale = request.env['locomotive.locale'] || params[:locale] || current_site.default_locale
18
18
  ::I18n.locale = ::Mongoid::Fields::I18n.locale
19
19
  end
20
20
 
@@ -6,16 +6,17 @@ module Locomotive
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  included do
9
- after_save :sync_relationships_order_by
9
+ before_update :sync_relationships_order_by_for_has_many_fields
10
+ after_save :sync_relationships_order_by_for_belongs_to_fields
10
11
  end
11
12
 
12
13
  protected
13
14
 
14
- # If the user changes the order of the content type, we have to make
15
- # sure that other related content types tied to the current one through
16
- # a belongs_to / has_many relationship also gets updated.
15
+ # If an user changes the default order of a content type, we need to make sure
16
+ # that all the content types referencing this content type through a has_many
17
+ # relationship without UI enabled (this is very important) have the new order_by.
17
18
  #
18
- def sync_relationships_order_by
19
+ def sync_relationships_order_by_for_belongs_to_fields
19
20
  current_class_name = self.klass_with_custom_fields(:entries).name
20
21
 
21
22
  self.entries_custom_fields.where(type: 'belongs_to').each do |field|
@@ -37,6 +38,16 @@ module Locomotive
37
38
  end
38
39
  end
39
40
 
41
+ # If an user enables the UI option for a has_many relationship in the current content type,
42
+ # then all the content entries of that content type should order the entries of the has_many relationship
43
+ # from the "position_in_<field name>" value.
44
+ #
45
+ def sync_relationships_order_by_for_has_many_fields
46
+ self.entries_custom_fields.where(:type.in => %w(has_many), ui_enabled: true).each do |field|
47
+ field.order_by = nil # that will force the content entry to use the position_in_<inverse_of> field
48
+ end
49
+ end
50
+
40
51
  # Save the changes for the content type passed in parameter without forgetting
41
52
  # to bump the version.. It also updates the recipe for related entries.
42
53
  # That method does not call the Mongoid API but directly MongoDB.
@@ -19,9 +19,9 @@ module Locomotive
19
19
  before_destroy :delete_descendants
20
20
 
21
21
  ## indexes ##
22
- index position: 1
23
- index depth: 1, position: 1
24
22
  index site_id: 1, depth: 1, position: 1
23
+ index depth: 1, position: 1
24
+ index position: 1
25
25
 
26
26
  alias_method_chain :rearrange, :identity_map
27
27
  alias_method_chain :rearrange_children, :identity_map
@@ -46,6 +46,10 @@ module Locomotive
46
46
 
47
47
  module ClassMethods
48
48
 
49
+ def order_by_depth_and_position
50
+ order_by(:depth.asc, :position.asc)
51
+ end
52
+
49
53
  # Returns the tree of pages from the site with the most minimal amount of queries.
50
54
  # This method should only be used for read-only purpose since
51
55
  # the mongodb returns the minimal set of required attributes to build
@@ -56,7 +60,7 @@ module Locomotive
56
60
  # @return [ Array ] The first array of pages (depth = 0)
57
61
  #
58
62
  def quick_tree(site, minimal_attributes = true)
59
- pages = (minimal_attributes ? site.pages.unscoped.minimal_attributes : site.pages.unscoped).order_by(:depth.asc, :position.asc).to_a
63
+ pages = (minimal_attributes ? site.pages.unscoped.minimal_attributes : site.pages.unscoped).order_by_depth_and_position.to_a
60
64
 
61
65
  tmp = []
62
66
 
@@ -9,6 +9,7 @@ module Locomotive
9
9
 
10
10
  ## fields ##
11
11
  field :locales, type: ::RawArray, default: []
12
+ field :prefix_default_locale, type: ::Boolean, default: false
12
13
 
13
14
  ## validations ##
14
15
  validate :can_not_remove_default_locale
@@ -19,6 +20,10 @@ module Locomotive
19
20
 
20
21
  end
21
22
 
23
+ def prefix_default_locale?
24
+ self.prefix_default_locale
25
+ end
26
+
22
27
  # Tell if the site serves other locales than the default one.
23
28
  #
24
29
  # @return [ Boolean ] True if the number of locales is greater than 1
@@ -47,15 +52,9 @@ module Locomotive
47
52
  return nil if page.fullpath_translations.blank?
48
53
 
49
54
  locale = (locale || I18n.locale).to_s
50
- fullpath = page.fullpath_translations[locale] || page.fullpath_translations[self.default_locale]
51
-
52
- if locale == self.default_locale.to_s # no need to specify the locale
53
- page.index? ? '' : fullpath
54
- elsif page.index? # avoid /en/index or /fr/index, prefer /en or /fr instead
55
- locale
56
- else
57
- File.join(locale, fullpath)
58
- end
55
+ fullpath = page.index? ? nil : (page.fullpath_translations[locale] || page.fullpath_translations[self.default_locale])
56
+ locale_prefix = is_default_locale?(locale) && !prefix_default_locale ? nil : locale
57
+ [locale_prefix, fullpath].compact.join '/'
59
58
  end
60
59
 
61
60
  def locales=(array)
@@ -66,6 +65,10 @@ module Locomotive
66
65
  self.locales.first || Locomotive.config.site_locales.first
67
66
  end
68
67
 
68
+ def is_default_locale?(locale)
69
+ locale == default_locale.to_s
70
+ end
71
+
69
72
  def default_locale_was
70
73
  self.locales_was.try(:first) || Locomotive.config.site_locales.first
71
74
  end
@@ -41,6 +41,16 @@ module Locomotive
41
41
  Page.quick_tree(self)
42
42
  end
43
43
 
44
+ # Get all the pages in the right order: depth and position, both ASC.
45
+ #
46
+ # @param [ Hash ] conditions Extra conditions passed to the Mongoid criteria
47
+ #
48
+ # @return [ Criteria ] a Mongoid criteria
49
+ #
50
+ def ordered_pages(conditions = {})
51
+ self.pages.unscoped.where(conditions || {}).order_by_depth_and_position
52
+ end
53
+
44
54
  def fetch_page(path, logged_in)
45
55
  Locomotive::Page.fetch_page_from_path self, path, logged_in
46
56
  end
@@ -10,6 +10,7 @@
10
10
  = f.inputs name: :information do
11
11
  = f.input :name, wrapper_html: { style: 'display: none' }
12
12
  = f.input :locales, as: '::Locomotive::Locales', collection: ordered_current_site_locales, input_html: { class: 'locales' }
13
+ = f.input :prefix_default_locale, as: :'Locomotive::Toggle', input_html: { class: 'simple-toggle' }
13
14
  = f.input :timezone_name, as: :select, include_blank: false, collection: options_for_site_timezones
14
15
 
15
16
  - if can?(:point, Locomotive::Site)
@@ -14,6 +14,7 @@ cs:
14
14
  de: Němčina
15
15
  fr: Francouzština
16
16
  pl: Polština
17
+ pt: Portugalština
17
18
  pt-BR: "Brazilská portugalština"
18
19
  it: Italština
19
20
  nl: Holandština
@@ -26,6 +27,7 @@ cs:
26
27
  cs: Čeština
27
28
  sk: Slovenština
28
29
  sr: Serbian
30
+ bg: Bulgarian
29
31
 
30
32
  messages:
31
33
  confirm: Jste si jistý?
@@ -15,6 +15,7 @@ de:
15
15
  de: Deutsch
16
16
  fr: Französisch
17
17
  pl: Polnisch
18
+ pt: Portugiesisch
18
19
  pt-BR: "Bras. Portugiesisch"
19
20
  it: Italienisch
20
21
  nl: Niederländisch
@@ -73,7 +74,7 @@ de:
73
74
  send: Senden
74
75
  disable_with: "Transfer..."
75
76
  footer:
76
- who_is_behind: "LocomitveCMS - entwickelt von %{development} und entworfen von <a href=\"http://www.sachagreif.com\">Sacha Greif</a> &mdash; <small>version</small> %{version}"
77
+ who_is_behind: "LocomotiveCMS - entwickelt von %{development} und entworfen von <a href=\"http://www.sachagreif.com\">Sacha Greif</a> &mdash; <small>version</small> %{version}"
77
78
 
78
79
  notifications:
79
80
  new_content_entry:
@@ -337,4 +338,4 @@ de:
337
338
  buttons:
338
339
  back: "Zurück zur Administration"
339
340
  confirm: Bestätigen
340
- cancel: Abbrechen
341
+ cancel: Abbrechen
@@ -14,6 +14,7 @@ en:
14
14
  de: German
15
15
  fr: French
16
16
  pl: Polish
17
+ pt: Portuguese
17
18
  pt-BR: "Brazilian Portuguese"
18
19
  it: Italian
19
20
  nl: Dutch
@@ -20,6 +20,7 @@ es:
20
20
  pl: Polaco
21
21
  nl: Holandés
22
22
  et: Estonio
23
+ pt: Portugués
23
24
  pt-BR: "Portugués brasileño"
24
25
  nb: Noruego
25
26
  ja: Japonés
@@ -39,7 +40,7 @@ es:
39
40
 
40
41
  messages:
41
42
  confirm: Por favor confirme
42
- sending_form: "locomotive.messages.sending_form"
43
+ sending_form: El formulario está siendo enviado
43
44
 
44
45
  shared:
45
46
  header:
@@ -14,6 +14,7 @@ et:
14
14
  de: Saksa
15
15
  fr: Prantsuse
16
16
  pl: Poola
17
+ pt: Portugali
17
18
  pt-BR: "Brasiilia Portugali"
18
19
  it: Itaalia
19
20
  nl: Hollandi
@@ -15,7 +15,8 @@ fr:
15
15
  de: Allemand
16
16
  fr: Français
17
17
  pl: Polonais
18
- pt-BR: "Portugais"
18
+ pt: "Portugais"
19
+ pt-BR: "Brésilien Portugais"
19
20
  it: "Italien"
20
21
  nl: "Hollandais"
21
22
  nb: "Norvégien"
@@ -5,6 +5,7 @@ it:
5
5
  de: Tedesco
6
6
  fr: Francese
7
7
  pl: Polacco
8
+ pt: Portoghese
8
9
  pt-BR: "Portoghese Brasiliano"
9
10
  it: Italiano
10
11
  nl: Olandese
@@ -17,6 +18,7 @@ it:
17
18
  bg: Bulgaro
18
19
  sk: Slovacco
19
20
  sr: Serbe
21
+ zh-CN: "Chiński"
20
22
 
21
23
  buttons:
22
24
  login: Entra
@@ -46,6 +48,7 @@ it:
46
48
  account: Mio account
47
49
  site: Sito
48
50
  theme_assets: Files del tema
51
+ translations: Traduzioni
49
52
  footer:
50
53
  who_is_behind: "Servizio sviluppato da %{development} e desig di <a href=\"http://www.sachagreif.com\">Sacha Greif</a>"
51
54
  form_actions:
@@ -86,6 +89,11 @@ it:
86
89
  index:
87
90
  is_required: è richiesto
88
91
  default_label: Nome campo
92
+ form:
93
+ required: Obbligatorio
94
+ default_label: Nome campo
95
+ select_options:
96
+ ask_name: "Inserisci il label della option"
89
97
 
90
98
  sessions:
91
99
  new:
@@ -300,3 +308,18 @@ it:
300
308
  explanations: "Questo è l'ultimo passo dell'installazione. Puoi caricare un tema come file zip. Noi abbiao dei temi gratuiti <a href=\"http://www.locomotivecms.com/support/themes\">qui</a>."
301
309
  back_to_default_template: "Invece clicca <a href='#'>qui</a> per selezionare il modello di sito predefinito"
302
310
  next: Crea sito
311
+
312
+ public:
313
+ pages:
314
+ show_toolbar:
315
+ statuses:
316
+ loading: "Loading...."
317
+ disabled: "Inline Editor disabilitato"
318
+ labels:
319
+ save_changes: "Salva modifiche: "
320
+ editing_mode: "Modalità di modifica: "
321
+ lang: "Lingua: "
322
+ buttons:
323
+ back: "Ritorna all'amministrazione"
324
+ confirm: Conferma
325
+ cancel: Annulla