locomotivecms 3.0.0.rc1 → 3.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -3
  3. data/README.md +7 -1
  4. data/app/api/locomotive/api/entities/content_type_entity.rb +4 -1
  5. data/app/api/locomotive/api/forms/base_form.rb +4 -2
  6. data/app/api/locomotive/api/forms/content_type_form.rb +1 -0
  7. data/app/api/locomotive/api/forms/theme_asset_form.rb +1 -1
  8. data/app/api/locomotive/api/resources/content_type_resource.rb +4 -2
  9. data/app/assets/javascripts/locomotive/views/inputs/array_view.js.coffee +1 -0
  10. data/app/controllers/locomotive/current_site_controller.rb +8 -0
  11. data/app/helpers/locomotive/editable_elements_helper.rb +2 -2
  12. data/app/helpers/locomotive/errors_helper.rb +7 -3
  13. data/app/helpers/locomotive/pages_helper.rb +2 -2
  14. data/app/helpers/locomotive/shared/accounts_helper.rb +1 -1
  15. data/app/inputs/locomotive/api_key_input.rb +2 -2
  16. data/app/mailers/locomotive/notifications.rb +14 -3
  17. data/app/models/locomotive/concerns/content_type/entry_template.rb +7 -1
  18. data/app/models/locomotive/concerns/content_type/public_submission_title_template.rb +24 -0
  19. data/app/models/locomotive/concerns/site/access_points.rb +1 -0
  20. data/app/models/locomotive/concerns/site/url_redirections.rb +30 -0
  21. data/app/models/locomotive/content_entry.rb +9 -1
  22. data/app/models/locomotive/content_type.rb +1 -0
  23. data/app/models/locomotive/page.rb +1 -1
  24. data/app/models/locomotive/site.rb +1 -0
  25. data/app/policies/locomotive/site_policy.rb +4 -3
  26. data/app/uploaders/locomotive/theme_asset_uploader.rb +6 -9
  27. data/app/views/locomotive/content_assets/_list.html.slim +1 -1
  28. data/app/views/locomotive/content_entries/_entry.html.slim +1 -1
  29. data/app/views/locomotive/content_entries/_list.html.slim +1 -1
  30. data/app/views/locomotive/content_entries/edit.html.slim +2 -0
  31. data/app/views/locomotive/content_entries/form/_tabs.html.slim +3 -3
  32. data/app/views/locomotive/content_entries/new.html.slim +3 -0
  33. data/app/views/locomotive/current_site/_membership.html.slim +1 -1
  34. data/app/views/locomotive/current_site/_url_redirection.html.slim +17 -0
  35. data/app/views/locomotive/current_site/form/_access_points.html.slim +2 -0
  36. data/app/views/locomotive/current_site/form/_panes.html.slim +1 -1
  37. data/app/views/locomotive/current_site/form/_tabs.html.slim +3 -0
  38. data/app/views/locomotive/current_site/form/_url_redirections.html.slim +5 -0
  39. data/app/views/locomotive/custom_fields/select_options/_option.html.slim +3 -1
  40. data/app/views/locomotive/editable_elements/index_without_preview.html.slim +3 -3
  41. data/app/views/locomotive/notifications/new_content_entry.html.slim +4 -0
  42. data/app/views/locomotive/pages/form/_actions.html.slim +1 -1
  43. data/app/views/locomotive/pages/form/_tabs.html.slim +3 -3
  44. data/app/views/locomotive/passwords/edit.html.slim +1 -1
  45. data/app/views/locomotive/passwords/new.html.slim +1 -1
  46. data/app/views/locomotive/public_submission_accounts/edit.html.slim +1 -1
  47. data/app/views/locomotive/registrations/new.html.slim +1 -1
  48. data/app/views/locomotive/sessions/new.html.slim +1 -1
  49. data/app/views/locomotive/translations/index.html.slim +2 -1
  50. data/config/i18n-tasks.yml +110 -0
  51. data/config/locales/carrierwave.fr.yml +1 -1
  52. data/config/locales/default.en.yml +0 -49
  53. data/config/locales/default.fr.yml +1 -232
  54. data/config/locales/devise.fr.yml +1 -68
  55. data/config/locales/{admin_ui.en.yml → en.yml} +31 -91
  56. data/config/locales/flash.en.yml +8 -37
  57. data/config/locales/flash.fr.yml +1 -106
  58. data/config/locales/fr.yml +5 -0
  59. data/config/locales/inputs.fr.yml +1 -0
  60. data/config/locales/mongoid.en.yml +49 -0
  61. data/config/locales/mongoid.fr.yml +12 -0
  62. data/config/locales/simple_form.en.yml +26 -65
  63. data/config/locales/simple_form.fr.yml +1 -0
  64. data/config/{locales → old-locales}/admin_ui.bg.yml +0 -0
  65. data/config/{locales → old-locales}/admin_ui.cs.yml +0 -0
  66. data/config/{locales → old-locales}/admin_ui.de.yml +0 -0
  67. data/config/{locales → old-locales}/admin_ui.es.yml +0 -0
  68. data/config/{locales → old-locales}/admin_ui.et.yml +0 -0
  69. data/config/{locales → old-locales}/admin_ui.fr.yml +0 -0
  70. data/config/{locales → old-locales}/admin_ui.it.yml +0 -0
  71. data/config/{locales → old-locales}/admin_ui.ja.yml +0 -0
  72. data/config/{locales → old-locales}/admin_ui.nb.yml +0 -0
  73. data/config/{locales → old-locales}/admin_ui.nl.yml +0 -0
  74. data/config/{locales → old-locales}/admin_ui.pl.yml +0 -0
  75. data/config/{locales → old-locales}/admin_ui.pt-BR.yml +0 -0
  76. data/config/{locales → old-locales}/admin_ui.pt.yml +0 -0
  77. data/config/{locales → old-locales}/admin_ui.ru.yml +0 -0
  78. data/config/{locales → old-locales}/admin_ui.sk.yml +0 -0
  79. data/config/{locales → old-locales}/admin_ui.sr.yml +0 -0
  80. data/config/{locales → old-locales}/admin_ui.zh-CN.yml +0 -0
  81. data/config/{locales → old-locales}/carrierwave.bg.yml +0 -0
  82. data/config/{locales → old-locales}/carrierwave.cs.yml +0 -0
  83. data/config/{locales → old-locales}/carrierwave.de.yml +0 -0
  84. data/config/{locales → old-locales}/carrierwave.es.yml +0 -0
  85. data/config/{locales → old-locales}/carrierwave.et.yml +0 -0
  86. data/config/old-locales/carrierwave.fr.yml +4 -0
  87. data/config/{locales → old-locales}/carrierwave.it.yml +0 -0
  88. data/config/{locales → old-locales}/carrierwave.ja.yml +0 -0
  89. data/config/{locales → old-locales}/carrierwave.nb.yml +0 -0
  90. data/config/{locales → old-locales}/carrierwave.nl.yml +0 -0
  91. data/config/{locales → old-locales}/carrierwave.pl.yml +0 -0
  92. data/config/{locales → old-locales}/carrierwave.pt-BR.yml +0 -0
  93. data/config/{locales → old-locales}/carrierwave.pt.yml +0 -0
  94. data/config/{locales → old-locales}/carrierwave.ru.yml +0 -0
  95. data/config/{locales → old-locales}/carrierwave.sk.yml +0 -0
  96. data/config/{locales → old-locales}/carrierwave.sr.yml +0 -0
  97. data/config/{locales → old-locales}/carrierwave.zh-CN.yml +0 -0
  98. data/config/{locales → old-locales}/default.bg.yml +0 -0
  99. data/config/{locales → old-locales}/default.cs.yml +0 -0
  100. data/config/{locales → old-locales}/default.de.yml +0 -0
  101. data/config/{locales → old-locales}/default.es.yml +0 -0
  102. data/config/{locales → old-locales}/default.et.yml +0 -0
  103. data/config/old-locales/default.fr.yml +232 -0
  104. data/config/{locales → old-locales}/default.it.yml +0 -0
  105. data/config/{locales → old-locales}/default.ja.yml +0 -0
  106. data/config/{locales → old-locales}/default.nb.yml +0 -0
  107. data/config/{locales → old-locales}/default.nl.yml +0 -0
  108. data/config/{locales → old-locales}/default.pl.yml +0 -0
  109. data/config/{locales → old-locales}/default.pt-BR.yml +0 -0
  110. data/config/{locales → old-locales}/default.pt.yml +0 -0
  111. data/config/{locales → old-locales}/default.ru.yml +0 -0
  112. data/config/{locales → old-locales}/default.sk.yml +0 -0
  113. data/config/{locales → old-locales}/default.sr.yml +0 -0
  114. data/config/{locales → old-locales}/default.zh-CN.yml +0 -0
  115. data/config/{locales → old-locales}/devise.bg.yml +0 -0
  116. data/config/{locales → old-locales}/devise.cs.yml +0 -0
  117. data/config/{locales → old-locales}/devise.de.yml +0 -0
  118. data/config/{locales → old-locales}/devise.es.yml +0 -0
  119. data/config/{locales → old-locales}/devise.et.yml +0 -0
  120. data/config/old-locales/devise.fr.yml +68 -0
  121. data/config/{locales → old-locales}/devise.it.yml +0 -0
  122. data/config/{locales → old-locales}/devise.ja.yml +0 -0
  123. data/config/{locales → old-locales}/devise.nb.yml +0 -0
  124. data/config/{locales → old-locales}/devise.nl.yml +0 -0
  125. data/config/{locales → old-locales}/devise.pl.yml +0 -0
  126. data/config/{locales → old-locales}/devise.pt-BR.yml +0 -0
  127. data/config/{locales → old-locales}/devise.pt.yml +0 -0
  128. data/config/{locales → old-locales}/devise.ru.yml +0 -0
  129. data/config/{locales → old-locales}/devise.sk.yml +0 -0
  130. data/config/{locales → old-locales}/devise.sr.yml +0 -0
  131. data/config/{locales → old-locales}/devise.zh-CN.yml +0 -0
  132. data/config/{locales → old-locales}/flash.bg.yml +0 -0
  133. data/config/{locales → old-locales}/flash.cs.yml +0 -0
  134. data/config/{locales → old-locales}/flash.de.yml +0 -0
  135. data/config/{locales → old-locales}/flash.es.yml +0 -0
  136. data/config/{locales → old-locales}/flash.et.yml +0 -0
  137. data/config/old-locales/flash.fr.yml +106 -0
  138. data/config/{locales → old-locales}/flash.it.yml +0 -0
  139. data/config/{locales → old-locales}/flash.ja.yml +0 -0
  140. data/config/{locales → old-locales}/flash.nb.yml +0 -0
  141. data/config/{locales → old-locales}/flash.nl.yml +0 -0
  142. data/config/{locales → old-locales}/flash.pl.yml +0 -0
  143. data/config/{locales → old-locales}/flash.pt-BR.yml +0 -0
  144. data/config/{locales → old-locales}/flash.pt.yml +0 -0
  145. data/config/{locales → old-locales}/flash.ru.yml +0 -0
  146. data/config/{locales → old-locales}/flash.sk.yml +0 -0
  147. data/config/{locales → old-locales}/flash.sr.yml +0 -0
  148. data/config/{locales → old-locales}/flash.zh-CN.yml +0 -0
  149. data/config/routes.rb +1 -0
  150. data/lib/generators/locomotive/install/templates/carrierwave.rb +12 -7
  151. data/lib/generators/locomotive/install/templates/devise.rb +127 -55
  152. data/lib/generators/locomotive/install/templates/dragonfly.rb +1 -1
  153. data/lib/generators/locomotive/install/templates/locomotive.rb +2 -0
  154. data/lib/locomotive/carrierwave/asset.rb +23 -11
  155. data/lib/locomotive/carrierwave/patches.rb +18 -0
  156. data/lib/locomotive/configuration.rb +6 -5
  157. data/lib/locomotive/dependencies.rb +1 -0
  158. data/lib/locomotive/engine.rb +4 -0
  159. data/lib/locomotive/middlewares/site.rb +1 -0
  160. data/lib/locomotive/steam/middlewares/missing_translations.rb +1 -1
  161. data/lib/locomotive/steam/services/api_entry_submission_service.rb +8 -1
  162. data/lib/locomotive/steam_adaptor.rb +9 -7
  163. data/lib/locomotive/version.rb +1 -1
  164. data/spec/fixtures/assets/ruby_logo.svg +948 -0
  165. data/spec/lib/locomotive/steam/services/api_entry_submission_service_spec.rb +1 -1
  166. data/spec/mailers/locomotive/notifications_spec.rb +39 -1
  167. data/spec/models/locomotive/concerns/site/url_redirections_spec.rb +42 -0
  168. data/spec/models/locomotive/theme_asset_spec.rb +29 -0
  169. data/spec/support/factories.rb +15 -1
  170. data/spec/support/features/site_helpers.rb +8 -1
  171. data/spec/support/shared_contexts/api_site_setup.rb +1 -1
  172. metadata +120 -106
  173. data/app/views/locomotive/shared/_footer.html.slim +0 -2
  174. data/app/views/locomotive/shared/_form_actions.html.slim +0 -14
  175. data/app/views/locomotive/shared/actions/_contents.html.slim +0 -7
  176. data/config/cucumber.yml +0 -8
@@ -0,0 +1,5 @@
1
+ fr:
2
+ locomotive:
3
+ errors:
4
+ '404':
5
+ title: Page non trouvée
@@ -0,0 +1 @@
1
+ fr: {}
@@ -0,0 +1,49 @@
1
+ en:
2
+ mongoid:
3
+ errors:
4
+ messages:
5
+ blank_in_locale: "can't be blank"
6
+ models:
7
+ locomotive/page:
8
+ attributes:
9
+ layout_id:
10
+ index_can_not_extend_parent: "The index page can't have its parent page as a layout"
11
+ locomotive/membership:
12
+ attributes:
13
+ account:
14
+ unique_account: "is already used"
15
+ email:
16
+ unique_account: "is already used"
17
+ attributes:
18
+ locomotive/content_entry:
19
+ created_at: Created at
20
+
21
+ errors:
22
+ messages:
23
+ domain_taken: "%{value} is already taken"
24
+ invalid_domain: "%{value} is invalid"
25
+ needs_admin_account: "One admin account is required at least"
26
+ protected_page: "You can not remove index or 404 pages"
27
+ extname_changed: "New file does not have the original extension"
28
+ array_too_short: "is too small (minimum element number is %{count})"
29
+ site:
30
+ default_locale_removed: The previous default locale can not be removed right away.
31
+ wrong_timezone_name: "Wrong timezone name"
32
+ page:
33
+ liquid_syntax: "Liquid Syntax error ('%{error}' on '%{fullpath}')"
34
+ liquid_extend: "The page '%{fullpath}' extends a template which does not exist"
35
+ liquid_translation: "The page '%{fullpath}' extends a template which is not translated"
36
+ too_few_custom_fields: "At least, one custom field is required"
37
+ security: "presents a security problem"
38
+
39
+ attributes:
40
+ defaults:
41
+ pages:
42
+ index:
43
+ title: "Home page"
44
+ body: "Content of the home page"
45
+ "404":
46
+ title: "Page not found"
47
+ body: "Content of the 404 page"
48
+ other:
49
+ body: "{% extends 'parent' %}"
@@ -0,0 +1,12 @@
1
+ fr:
2
+ attributes:
3
+ defaults:
4
+ pages:
5
+ index:
6
+ title: "Page d'accueil"
7
+ body: "Contenu de la page d'accueil"
8
+ '404':
9
+ title: "Page non trouvée"
10
+ body: "Contenu de la page d'erreur 404"
11
+ other:
12
+ body: "{% extends 'parent' %}"
@@ -7,59 +7,34 @@ en:
7
7
  account:
8
8
  information: Main
9
9
  api: API
10
+ credentials: Credentials
10
11
  site:
11
12
  information: Main
12
13
  access_points: Access points
13
14
  seo: SEO
14
15
  advanced: Advanced
16
+ url_redirections: URL redirections
17
+ page:
18
+ content: Content
19
+ settings: Settings
20
+ seo: SEO
21
+ content_entry:
22
+ content: Content
23
+ advanced: Advanced
24
+ seo: SEO
15
25
 
16
- defaults:
17
- locomotive:
18
- information: General information
19
- advanced_options: Advanced options
20
- meta: SEO Metadata
21
- seo: SEO settings
22
- robots_txt: Robots.txt file
23
- code: Code
24
- raw_template: Template
25
- credentials: Credentials
26
- language: Language
27
- sites: Sites
28
- access_points: Access points
29
- memberships: Accounts
30
- membership_email: Account email
31
- file: File
32
- preview: Preview
33
- options: Advanced options
34
- custom_fields: Custom fields
35
- other_fields: Other information
36
- presentation: Presentation
37
- attributes: Attributes
38
- upload: Upload
39
- api: API3
40
26
  labels:
41
27
  locomotive:
42
- theme_asset:
43
- plain_text_name: File name
44
- content_type: File type
45
- new:
46
- source: File
47
- edit:
48
- source: Replace file
49
- custom_fields:
50
- field:
51
- name: Alias
52
- content_type:
53
- entry_template: Entry template
54
- public_submission_enabled: Public submission
55
- public_submission_accounts: Notified Accounts
56
- "custom_fields/field":
57
- select_options: "Options"
58
28
  content_entry:
59
29
  _slug: Permalink
60
30
  _visible: Visible
31
+ content_type:
32
+ public_submission_accounts: "Notified Accounts"
33
+ # "custom_fields/field":
34
+ # select_options: "Options"
61
35
  account:
62
36
  api_key: API key
37
+ no_api_key: None
63
38
  edit:
64
39
  locale: UI Language
65
40
  password: New password
@@ -92,10 +67,9 @@ en:
92
67
 
93
68
  hints:
94
69
  locomotive:
95
- locomotive_account:
96
- password: 6 characters minimum
97
70
  account:
98
71
  api_key: "Used by Wagon to deploy your site (check your config/deploy.yml file of your Wagon site)."
72
+ password: 6 characters minimum
99
73
  page:
100
74
  handle: "Unique identifier to retrieve this page within an external controller instance"
101
75
  published: "Only authenticated accounts can view unpublished pages."
@@ -108,8 +82,6 @@ en:
108
82
  meta_description: "Overrides the site's meta description used within the head tag of the page."
109
83
  is_layout: "If true, this page can used as a layout for other pages."
110
84
  allow_layout: "Let authors change or not the layout of that page."
111
- snippet:
112
- slug: "You need to know it in order to insert the snippet inside a page"
113
85
  site:
114
86
  locales: "Drag&drop a flag to the first position to make it the default one."
115
87
  seo_title: "Define a global value here which should be used as the value for the title tag in the head section."
@@ -119,39 +91,20 @@ en:
119
91
  domains: "Add your domains just below. Then, register a CNAME DNS record pointing to <b>%{domain}</b>."
120
92
  memberships: "You can invite other accounts to edit/manage the site."
121
93
  cache_enabled: "When enabled, your pages will be cached as long as the content doesn't change. Disabling cache per page is allowed."
94
+ redirect_to_first_domain: "When enabled, requests made to any domains listed above will be redirected to the first domain."
95
+ url_redirections: "Redirect (301) legacy urls to pages you created in the back-office. The origin and the destination URLs are separated by a <u>space</u>."
122
96
  new:
123
97
  locales: "You can add other languages once your site will be created."
124
- theme_asset:
125
- slug: "You do not need to add the extension file (.css or .js)"
126
- edit:
127
- source: "You can replace it by a file of the same extension"
128
98
  translation:
129
99
  key: "Do not use dash but underscore instead. Example: welcome_message."
130
- asset:
131
- source: "All file types are accepted."
132
- edit:
133
- source: "The current file is available here %{url}"
134
- update:
135
- source: "The current file is available here %{url}"
136
100
  content_entry:
137
101
  _slug: "Property used to generate the url of a page working as a template for this content type (ex: \"template_page/{{ your_object._permalink }})\"."
138
102
  _visible: "By default, the entry will show up in the site. So it can be used as a published attribute."
139
103
  seo_title: "The value you fill in will replace the SEO title of the templatized page related to your model."
140
104
  meta_keywords: "Overrides the site's meta keywords used within the head tag of the page. They are separated by a comma."
141
105
  meta_description: "Overrides the site's meta description used within the head tag of the page."
142
- import:
143
- source: "A zipfile containing a database.yml along with assets and templates"
144
- samples: "If enabled, the import process will also copy contents and assets"
145
- reset: "If enabled, all the data of your site will be destroyed before importing the new site"
146
106
  content_type:
147
- name: "We suggest you to type the plural form of the model. Ex: Projects, Recipes, Posts, Articles, ...etc"
148
- slug: "It will be used as the name of the collection in the liquid templates. Ex: <span class='code'>{{ contents.my_projects }}</span>"
149
- raw_item_template: "You can customize the text displayed for each item in the list. Simply use Liquid. Ex: <span class='code'>{{ entry.name }})</span>"
150
- public_submission_enabled: "It is used to let people from outside to create new entries (example: messages in a contact form)"
151
107
  public_submission_accounts: "When an entry is created, send a notification email to the accounts listed below."
152
- content_type_entry_field:
153
- select_options: "Add/edit/re-arrange the options."
154
-
155
108
  image_resize_form:
156
109
  width: "in px"
157
110
  height: "in px"
@@ -160,6 +113,7 @@ en:
160
113
  locomotive:
161
114
  site:
162
115
  domains: "Ex: mysite.com"
116
+ url_redirections: "Ex: my-legacy-url new-url-in-locomotive"
163
117
  content_type_entry_field:
164
118
  select_options: "Type the label of your new option here"
165
119
 
@@ -183,10 +137,17 @@ en:
183
137
  update: Save
184
138
  submit: Ok
185
139
  cancel: Cancel
140
+ delete: Delete
141
+ close: Close
186
142
  loading_text: "Saving..."
187
143
  or: or
144
+
188
145
  locomotive:
146
+ account:
147
+ new_api_key: Regenerate
189
148
  image_resize_form:
190
149
  loading_text: Resizing...
191
150
  submit: Resize
151
+ site:
152
+ delete: Destroy this site
192
153
 
@@ -0,0 +1 @@
1
+ fr: {}
@@ -0,0 +1,4 @@
1
+ fr:
2
+ carrierwave:
3
+ errors:
4
+ integrity: "n'est pas un type de fichier autorisé"
@@ -0,0 +1,232 @@
1
+ fr:
2
+ errors:
3
+ # The default format use in full error messages.
4
+ format: "%{attribute} %{message}"
5
+
6
+ # The values :model, :attribute and :value are always available for interpolation
7
+ # The value :count is available when applicable. Can be used for pluralization.
8
+ messages:
9
+ inclusion: "n'est pas inclus(e) dans la liste"
10
+ exclusion: "n'est pas disponible"
11
+ invalid: "n'est pas valide"
12
+ confirmation: "ne concorde pas avec la confirmation"
13
+ accepted: "doit être accepté(e)"
14
+ empty: "doit être rempli(e)"
15
+ blank: "doit être rempli(e)"
16
+ too_long: "est trop long (pas plus de %{count} caractères)"
17
+ too_short: "est trop court (au moins %{count} caractères)"
18
+ wrong_length: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
19
+ taken: "n'est pas disponible"
20
+ not_a_number: "n'est pas un nombre"
21
+ greater_than: "doit être supérieur à %{count}"
22
+ greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
23
+ equal_to: "doit être égal à %{count}"
24
+ less_than: "doit être inférieur à %{count}"
25
+ less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
26
+ odd: "doit être impair"
27
+ even: "doit être pair"
28
+
29
+ domain_taken: "%{value} a été déjà pris"
30
+ invalid_domain: "%{value} n'est pas valide"
31
+ needs_admin_account: "Un minimum d'un compte admin est requis"
32
+ protected_page: "Vous ne pouvez pas supprimer les pages index et 404"
33
+ extname_changed: "La nouvelle version du fichier n'a pas l'extension originale"
34
+ array_too_short: "est trop petit (le nombre minimum d'éléments est %{count})"
35
+ security: "présente un problème de sécurité"
36
+ site:
37
+ default_locale_removed: La langue par défaut ne peut pas être supprimée de cette façon.
38
+ page:
39
+ liquid_syntax: "Erreur de syntaxe dans les sections de page, veuillez vérifier la syntaxe ('%{error}'/'%{fullpath}')"
40
+ liquid_extend: "La page '%{fullpath}' étend le contenu d'une page qui n'existe pas"
41
+ liquid_translation: "La page '%{fullpath}' étend le contenu d'une page qui n'a pas été traduite"
42
+
43
+ attributes:
44
+ defaults:
45
+ pages:
46
+ index:
47
+ title: "Page d'accueil"
48
+ body: "Contenu de la page d'accueil"
49
+ "404":
50
+ title: "Page non trouvée"
51
+ body: "Contenu de la page d'erreur 404"
52
+ other:
53
+ body: "{% extends 'parent' %}"
54
+
55
+ mongoid:
56
+ errors:
57
+ messages:
58
+ blank_in_locale: "doit être rempli(e)"
59
+
60
+ attributes:
61
+ locomotive/page:
62
+ title: Titre
63
+ parent: Dossier parent
64
+ parent_id: Dossier parent
65
+ slug: Raccourci
66
+ listed: Menu
67
+ templatized: Templatisée
68
+ published: Publiée
69
+ redirect: Redirection
70
+ redirect_url: Url de redirection
71
+ cache_strategy: Cache
72
+ response_type: Type de réponse
73
+ seo_title: Titre SEO
74
+ locomotive/content_type:
75
+ name: Nom
76
+ description: Description
77
+ slug: Raccourci
78
+ order_by: Ordonner
79
+ order_direction: Direction
80
+ label_field_name: Champ mis en avant
81
+ label_field_id: Champ mis en avant
82
+ group_by_field_name: Champ pour grouper
83
+ group_by_field_id: Champ pour grouper
84
+ public_submission_enabled: Activation API
85
+ public_submission_accounts: Comptes à notifier
86
+ locomotive/content_entry:
87
+ created_at: Date de création
88
+ locomotive/asset:
89
+ source: Fichier
90
+ locomotive/account:
91
+ email: E-mail
92
+ name: Nom
93
+ language: Langue
94
+ password: Mot de passe
95
+ password_confirmation: Confirmation mot de passe
96
+ locomotive/snippet:
97
+ body: Code
98
+ slug: Raccourci
99
+ name: Nom
100
+ locomotive/translation:
101
+ key: Clé de traduction
102
+ locomotive/theme_asset:
103
+ content_type: Type du fichier
104
+ locomotive/site:
105
+ name: Nom du site
106
+ locales: Langues
107
+ domain_name: Domaine
108
+ subdomain: Sous-domaine
109
+ restricted_access: Activer ?
110
+ access_login: Identifiant
111
+ access_password: "Mot de passe"
112
+ custom_fields/field:
113
+ name: Alias
114
+ hint: Aide
115
+ required: Requis ?
116
+ text_formatting: Formattage
117
+ localized: Localisé ?
118
+ select_options: Options
119
+
120
+ date_picker:
121
+ close_text: Fermer
122
+ prev_text: '&#x3c;Préc'
123
+ next_text: 'Suiv&#x3e;'
124
+ current_text: 'Courant'
125
+
126
+ date:
127
+ formats:
128
+ default: "%d/%m/%Y"
129
+ short: "%e %b"
130
+ long: "%e %B %Y"
131
+ long_ordinal: "%e %B %Y"
132
+ only_day: "%e"
133
+
134
+ day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
135
+ abbr_day_names: [dim, lun, mar, mer, jeu, ven, sam]
136
+ month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
137
+ abbr_month_names: [~, jan., fév., mar., avr., mai, juin, juil., août, sept., oct., nov., déc.]
138
+ order: [ day, month, year ]
139
+
140
+ today_at: "aujourd'hui à"
141
+ yesterday_at: "hier à"
142
+
143
+ pagination:
144
+ previous: "&laquo; Précédent"
145
+ next: "Suivant &raquo;"
146
+
147
+ time:
148
+ formats:
149
+ default: "%d/%m/%Y %H:%M"
150
+ time: "%H:%M"
151
+ short: "%d %b %H:%M"
152
+ long: "%A %d %B %Y %H:%M:%S %Z"
153
+ long_ordinal: "%A %d %B %Y %H:%M:%S %Z"
154
+ only_second: "%S"
155
+ am: 'am'
156
+ pm: 'pm'
157
+
158
+ datetime:
159
+ distance_in_words:
160
+ half_a_minute: "une demi-minute"
161
+ less_than_x_seconds:
162
+ zero: "moins d'une seconde"
163
+ one: "moins de 1 seconde"
164
+ other: "moins de %{count} secondes"
165
+ x_seconds:
166
+ one: "1 seconde"
167
+ other: "%{count} secondes"
168
+ less_than_x_minutes:
169
+ zero: "moins d'une minute"
170
+ one: "moins de 1 minute"
171
+ other: "moins de %{count} minutes"
172
+ x_minutes:
173
+ one: "1 minute"
174
+ other: "%{count} minutes"
175
+ about_x_hours:
176
+ one: "environ une heure"
177
+ other: "environ %{count} heures"
178
+ x_days:
179
+ one: "1 jour"
180
+ other: "%{count} jours"
181
+ about_x_months:
182
+ one: "environ un mois"
183
+ other: "environ %{count} mois"
184
+ x_months:
185
+ one: "1 mois"
186
+ other: "%{count} mois"
187
+ about_x_years:
188
+ one: "environ un an"
189
+ other: "environ %{count} ans"
190
+ over_x_years:
191
+ one: "plus d'un an"
192
+ other: "plus de %{count} ans"
193
+ almost_x_years:
194
+ one: "presque 1 an"
195
+ other: "presque %{count} ans"
196
+ prompts:
197
+ year: "Année"
198
+ month: "Mois"
199
+ day: "Jour"
200
+ hour: "Heure"
201
+ minute: "Minute"
202
+ second: "Seconde"
203
+
204
+ number:
205
+ format:
206
+ precision: 3
207
+ separator: ','
208
+ delimiter: ' '
209
+ currency:
210
+ format:
211
+ unit: '€'
212
+ precision: 2
213
+ format: '%n %u'
214
+ human:
215
+ format:
216
+ precision: 2
217
+ storage_units:
218
+ format: '%n %u'
219
+ units:
220
+ byte: 'Octet'
221
+ kb: 'ko'
222
+ mb: 'Mo'
223
+ gb: 'Go'
224
+ tb: 'To'
225
+
226
+ support:
227
+ array:
228
+ sentence_connector: 'et'
229
+ skip_last_comma: true
230
+ words_connector: ", "
231
+ two_words_connector: " et "
232
+ last_word_connector: " et "