masq2 1.0.0

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 (92) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +83 -0
  4. data/CODE_OF_CONDUCT.md +135 -0
  5. data/CONTRIBUTING.md +151 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +426 -0
  8. data/SECURITY.md +23 -0
  9. data/app/assets/images/masq/favicon.ico +0 -0
  10. data/app/assets/images/masq/openid_symbol.png +0 -0
  11. data/app/assets/images/masq/seatbelt_icon.png +0 -0
  12. data/app/assets/images/masq/seatbelt_icon_gray.png +0 -0
  13. data/app/assets/images/masq/seatbelt_icon_high.png +0 -0
  14. data/app/assets/stylesheets/masq/application.css.erb +61 -0
  15. data/app/controllers/masq/accounts_controller.rb +132 -0
  16. data/app/controllers/masq/base_controller.rb +78 -0
  17. data/app/controllers/masq/consumer_controller.rb +144 -0
  18. data/app/controllers/masq/info_controller.rb +23 -0
  19. data/app/controllers/masq/passwords_controller.rb +42 -0
  20. data/app/controllers/masq/personas_controller.rb +75 -0
  21. data/app/controllers/masq/server_controller.rb +247 -0
  22. data/app/controllers/masq/sessions_controller.rb +58 -0
  23. data/app/controllers/masq/sites_controller.rb +60 -0
  24. data/app/controllers/masq/yubikey_associations_controller.rb +25 -0
  25. data/app/helpers/masq/application_helper.rb +57 -0
  26. data/app/helpers/masq/personas_helper.rb +15 -0
  27. data/app/helpers/masq/server_helper.rb +15 -0
  28. data/app/mailers/masq/account_mailer.rb +17 -0
  29. data/app/models/masq/account.rb +245 -0
  30. data/app/models/masq/open_id_request.rb +42 -0
  31. data/app/models/masq/persona.rb +61 -0
  32. data/app/models/masq/release_policy.rb +11 -0
  33. data/app/models/masq/site.rb +68 -0
  34. data/app/views/layouts/masq/base.html.erb +70 -0
  35. data/app/views/layouts/masq/consumer.html.erb +30 -0
  36. data/app/views/masq/account_mailer/forgot_password.html.erb +3 -0
  37. data/app/views/masq/account_mailer/forgot_password.text.erb +3 -0
  38. data/app/views/masq/account_mailer/signup_notification.html.erb +5 -0
  39. data/app/views/masq/account_mailer/signup_notification.text.erb +5 -0
  40. data/app/views/masq/accounts/_hcard.html.erb +29 -0
  41. data/app/views/masq/accounts/edit.html.erb +100 -0
  42. data/app/views/masq/accounts/new.html.erb +27 -0
  43. data/app/views/masq/accounts/show.html.erb +4 -0
  44. data/app/views/masq/accounts/show.xrds.builder +40 -0
  45. data/app/views/masq/consumer/index.html.erb +31 -0
  46. data/app/views/masq/consumer/start.html.erb +2 -0
  47. data/app/views/masq/info/help.html.erb +8 -0
  48. data/app/views/masq/info/index.html.erb +5 -0
  49. data/app/views/masq/info/safe_login.html.erb +24 -0
  50. data/app/views/masq/passwords/edit.html.erb +13 -0
  51. data/app/views/masq/passwords/new.html.erb +11 -0
  52. data/app/views/masq/personas/_form.html.erb +159 -0
  53. data/app/views/masq/personas/edit.html.erb +9 -0
  54. data/app/views/masq/personas/index.html.erb +17 -0
  55. data/app/views/masq/personas/new.html.erb +9 -0
  56. data/app/views/masq/server/decide.html.erb +146 -0
  57. data/app/views/masq/server/index.xrds.builder +19 -0
  58. data/app/views/masq/server/seatbelt_config.xml.builder +24 -0
  59. data/app/views/masq/server/seatbelt_login_state.xml.builder +4 -0
  60. data/app/views/masq/sessions/new.html.erb +27 -0
  61. data/app/views/masq/shared/_error_messages.html.erb +12 -0
  62. data/app/views/masq/sites/edit.html.erb +42 -0
  63. data/app/views/masq/sites/index.html.erb +20 -0
  64. data/config/initializers/configuration.rb +5 -0
  65. data/config/initializers/mime_types.rb +1 -0
  66. data/config/initializers/requires.rb +6 -0
  67. data/config/locales/de.yml +281 -0
  68. data/config/locales/en.yml +271 -0
  69. data/config/locales/es.yml +254 -0
  70. data/config/locales/nl.yml +258 -0
  71. data/config/locales/rails.de.yml +225 -0
  72. data/config/locales/ru.yml +272 -0
  73. data/config/masq.example.yml +132 -0
  74. data/config/routes.rb +41 -0
  75. data/db/migrate/20120312120000_masq_schema.rb +152 -0
  76. data/db/migrate/20130626220915_remame_last_authenticated_with_yubikey_on_masq_accounts.rb +11 -0
  77. data/db/migrate/20130704205532_add_first_and_lastname_columns_to_personas.rb +11 -0
  78. data/db/migrate/20130807060329_change_open_id_associations_server_url_column_type.rb +22 -0
  79. data/lib/masq/active_record_openid_store/association.rb +16 -0
  80. data/lib/masq/active_record_openid_store/nonce.rb +9 -0
  81. data/lib/masq/active_record_openid_store/openid_ar_store.rb +58 -0
  82. data/lib/masq/authenticated_system.rb +136 -0
  83. data/lib/masq/engine.rb +12 -0
  84. data/lib/masq/openid_server_system.rb +110 -0
  85. data/lib/masq/signup.rb +53 -0
  86. data/lib/masq/version.rb +5 -0
  87. data/lib/masq.rb +50 -0
  88. data/lib/masq2.rb +1 -0
  89. data/lib/tasks/masq_tasks.rake +58 -0
  90. data.tar.gz.sig +2 -0
  91. metadata +377 -0
  92. metadata.gz.sig +0 -0
@@ -0,0 +1,258 @@
1
+ nl:
2
+ # account controller
3
+ thanks_for_signing_up_activation_link: Bedankt voor het aanmelden! We hebben u een mail gestuurd met een activatielink.
4
+ thanks_for_signing_up: Bedankt voor het aanmelden!
5
+ profile_updated: Uw profiel werd bijgewerkt.
6
+ account_disabled: Uw account has werd uitgezet.
7
+ entered_password_is_wrong: Het ingevoerde wachtwoord is fout.
8
+ account_activated_login_now: Uw account werd geactiveerd - u kunt nu inloggen.
9
+ couldnt_find_account_with_code_create_new_one: We konden geen account vinden met de opgegeven activatiecode. Maak alstublieft een niew account aan.
10
+ account_already_activated_please_login: Uw account is al geactiveerd - Log in alstublieft.
11
+ password_has_been_changed: Uw wachtwoord werd gewijzigd.
12
+ sorry_password_couldnt_be_changed: Sorrie, uw wachtwoord kon niet gewijzigd worden.
13
+ confirmation_of_new_password_invalid: De confirmatie van het nieuwe wachtwoord is incorrect.
14
+ old_password_incorrect: Uw oude wachtwoord is incorrect
15
+ # account views
16
+ public_persona: Publieke persona
17
+ forgot_password_create_new_one: U vergat uw wachtwoord? Hier kunt u een nieuwe aanmaken.
18
+ account_created_but_not_activated_yet: Uw OpenID account werd aangemaakt, maar is nog niet geactiveerd.#
19
+ please_activate_it_by_clicking_the_following_link: Activeert u alstublieft door op de volgende link te klikken.
20
+ my_profile: Mijn profiel
21
+ login: Login
22
+ password: Wachtwoord
23
+ my_password: Mijn wachtwoord
24
+ old_password: Oude wachtwoord
25
+ new_password_minimum_6_characters: Nieuw wachtwoord <span class="note">(minimum lengte is 6 karakters)</span>
26
+ password_confirmation: Wachtwoord confirmatie
27
+ submit_update: update
28
+ my_yubikey: Mijn Yubikey
29
+ your_account_is_associated_with_the_yubico_identity: Uw account is gekoppeld met de Yubico identiteit
30
+ yubikey_how_to_use: "U kunt de Yubikey gebruiken naast de wachtwoord inlog om in te loggen in uw account. Voer uw normale
31
+ wachtwoord en uw Yubico OPT (niet gesplitst met spaties en dergelijke) op de loginpagina in."
32
+ remove_association: verwijder koppeling
33
+ your_yubikey_a_one_time_password: Uw Yubikey <span class="note">(een Yubico eenmalig wachtwoord, OTP)</span>
34
+ associate_account_with_yubikey: koppel mijn account met deze Yubikey
35
+ disable_my_account: Zet mijn account uit
36
+ wont_be_possible_to_reclaim_identifier: Wees bewust van het gegeven dat het niet mogelijk zal zijn uw huidige OpenID identificatie terug te halen.
37
+ confirm_by_entering_password: Bevestig door het wachtwoord in te voeren
38
+ delete_my_account_and_data: verwijder mijn account en al mijn data
39
+
40
+ signup_title: Registreer
41
+ signup: Registreer # ???
42
+
43
+ # account mailer
44
+ please_activate_your_account: Activeer alstublieft uw account
45
+ your_request_for_a_new_password: Uw aanvraag voor een nieuw wachtwoord
46
+
47
+ # consumer controller
48
+ immediate_request_failed_setup_needed: Onmiddelijke aanvraag mislukt - inregelen vereist
49
+ openid_transaction_cancelled: OpenID transactie afgebroken.
50
+ verification_of_identifier_failed: "Verificatie van %{identifier} mislukt: %{message}"
51
+ verification_failed_message: "Verificatie mislukt: %{message}"
52
+ verification_of_identifier_succeeded: Verificatie van %{identifier} gelukt.
53
+ simple_registration_data_requested: Simpele Registratiedata werd aangevraagd
54
+ but_none_was_returned: maar werd niet teruggegeven.
55
+ but_got_no_response: maar geen reactie.
56
+ but_an_error_occured: "maar een fout deed zich voor:\n%{error_message}"
57
+ and_saved_at_the_identity_provider: en werd opgeslagen bij de Identity Provider.
58
+ the_following_data_were_sent: "De volgende data werd verzonden:"
59
+ attribute_exchange_data_requested: Uitwisseling van attributen werd aangevraagd
60
+ attribute_exchange_store_requested: Uitwisseling van attributen werd verzonden
61
+ authentication_policies_requested: Authenticatiebeleid werd aangevraagd
62
+ and_server_reported_the_following: "en de server meldde het volgende:"
63
+ but_the_server_did_not_report_one: maar de server rapporteerde geen.
64
+ authentication_time: Authenticatietijd
65
+
66
+ # consumer views
67
+ identifier: Indentificatie
68
+ verify: Bevestigen
69
+ use_immediate_mode: Gebruik direct modus
70
+ request_registration_data: Vraag regsitratiedata aan
71
+ request_attribute_exchange_data: Vraag uitwisseing van attributen aan
72
+ store_attribute_exchange_data: Sla attributen met attribuutuitwisselingen op
73
+ request_pape: Vraag phising-velig beleid voor authenticatieRequest (PAPE)
74
+ force_post: Forceer gebruik van POST in de transacties door 2K aan extra data toe te voegen
75
+
76
+ # info
77
+ questions_answers: Vragne? Antwoorden!
78
+ here_we_cover_openid_topics: Hier behandelen we enkele OpenIDgerelateerde onderwerpen.
79
+ openid_delegation: OpenID delegatie
80
+ delegation_explanation: "Delegatie is een manier om onze eigen website of blog-url als OpenID-identificatie te gebruiken. Aanvragen kunnen naar deze server worden doorgestuurd, dooe het volgende HTML-fragment aan de <code>&lt;head&gt;</code>
81
+ van uw site toe te voegen:"
82
+ get_your_openid: Maak een OpenID
83
+ openid_intro: "<p>OpenID is een gedeelde identiteitsdienst, waarmee je kunt inloggen op veel verschillende
84
+ websites met één enkele identiteit. Het is niet langer nodig verschillende gebruikersnamen en wachtwoorden voor elke site te hebben.</p>
85
+ <p>OpenID is een gedecentraliseerde, vrije en open standaard waarmee u zelf bepaalt hoeveel persoonlijke informatie wordt doorgegeven aan andere websites.</p>"
86
+ openid_intro_link: "<p>Begin hier and %{signup_link}.</p>"
87
+ signup_for_an_openid: maak een OpenID aan
88
+ login_to_proceed: Logt u alstublieft in om verder te gaan
89
+ host_requests_identification_you_need_to_login: "%{host} vraagt uw identificatie. U moet inloggen om verder te gaan."
90
+ login_intro: "Om in te loggen, ga alstublieft naar<strong>%{login_url}</strong>. De pagina die u nu ziet, wordt gebruikt om <strong>uzelf tegen <em>phishing</em> en online identiteitsdiefstal te beschermen.</strong>
91
+ en zou geen links moeten bebvatten.<br />Indien er wel links zijn, geeft u dan alstublieft aan ons door wie u hierheen zond."
92
+
93
+ # nav
94
+ nav_identity: identiteit
95
+ nav_profile: profiel
96
+ nav_personas: personas
97
+ nav_trusted_sites: vertrouwde sites
98
+ logout: uitloggen
99
+ current_verification_request: huidige aanvraag voor verificatie
100
+ login_link: inloggen
101
+ signup_link: aanmelden
102
+ help: help
103
+ get_help: hulp verkrijgen
104
+ openid_consumer_testsuite_title: OpenID Consumenten Testsuite
105
+ relying_party_title: Vertrouwende Partij
106
+
107
+ # passwords controller
108
+ password_reset_link_has_been_sent: Een wachtwoord resetlink werd naar uw emailadres gestuurd.
109
+ could_not_find_user_with_email_address: Kon geen gebruiker met dat emailadres vinden.
110
+ password_reset: Wachtwoord gereset.
111
+ password_mismatch: Wachtwoorden komen niet overeen.
112
+ password_cannot_be_blank: Wachtwoorden kunnen niet leeg zijn.
113
+ reset_code_invalid_try_again: Sorrie, uw wachtwoord resetcode is ongeldig. Controleert u het alstublieft en probeert u het opnieuw.
114
+
115
+ # passwords views
116
+ reset_password: wachtwoord resetten
117
+ forgot_password_title: Wachtwoord vergeten
118
+ please_enter_email: Voert u alstublieft uw emailadres in
119
+ submit_send: versturen
120
+
121
+ # personas controller
122
+ persona_successfully_created: De persona werd sucessvol aangemaakt.
123
+ persona_updated: De persona werd bijgewerkt.
124
+ persona_cannot_be_deleted: Deze persona kon niet verwijderd worden.
125
+
126
+ # personas views
127
+ edit_your_persona: Bewerk uw persona “%{title}”
128
+ personal_information: Persoonlijke informatie
129
+ professional_information: Zakelijke informatie
130
+ phone: Telefoon
131
+ instant_messaging: Expresberichten
132
+ other_information: Overige informatie
133
+
134
+ nickname: Nickname
135
+ email: Email
136
+ address: Adres
137
+ postcode: Postcode
138
+ city: Stad
139
+ state: Staat of Provincie
140
+ country: Land
141
+ language: Language
142
+ timezone: Tijdzone
143
+ gender: Geslacht
144
+ company_name: Bedrijfsnaam
145
+ job_title: Functie
146
+ phone_home: Telefoonnummer thuis
147
+ phone_mobile: Telefoonnummer mobiel
148
+ phone_fax: Faxnummer
149
+ phone_work: Telefoonnummer werk
150
+ biography: Biografie
151
+ title: Titel
152
+ fullname: Volledige naam
153
+ birth_date: Geboortedatum
154
+ address_business: Adres
155
+ address_additional: Extra informatie
156
+ address_additional_business: Extra
157
+ postcode_business: Postcode
158
+ city_business: Stad
159
+ state_business: Staat of Provincie
160
+ country_business: Land
161
+ im_aim: AIM
162
+ im_icq: ICQ
163
+ im_msn: MSN
164
+ im_yahoo: Yahoo
165
+ im_jabber: Jabber
166
+ im_skype: Skype
167
+ image_url: Afbeeldings URL
168
+ website_url: Website URL
169
+ blog_url: Blog URL
170
+ dob: Geboortedag
171
+ date_of_birth: Geboortedatum
172
+
173
+ my_personas_title: Mijn personas
174
+ personas_intro: "Personas definiëren bepaalde rollen van uw account.
175
+ U kunt bijvoorbeeld een persona voor privégebruik en een andere voor een zakelijke context hebben.
176
+ Wanneer een vertrouwende partij uw gegevens opvraagt, kunt u het persona kiezen waarvan u de data wilt overleggen."
177
+ edit: bewerken
178
+ delete: verwijderen
179
+ really_want_to_delete_persona: Weet u zeker dat u persona ”%{title}” wilt verwijderen?
180
+ create_a_new_persona: nieuwe persona aanmaken
181
+ create_a_new_persona_title: Maak een nieuwe persona aan
182
+
183
+ # sessions controller
184
+ you_are_logged_in: U bent nu ingelogd.
185
+ login_incorrect_or_account_not_yet_activated: De inloggegevens zijn incorrect of uw account is nog niet geactiveerd.
186
+ login_incorrect: De inloggegevens zijn incorrect.
187
+ password_incorrect: De wachtwoord zijn incorrect.
188
+ you_are_now_logged_out: U bent nu uitgelogd.
189
+ account_deactivated: Uw account has werd uitgezet.
190
+
191
+ # sessions views
192
+ login_title: Inloggen
193
+ your_openid: Your OpenID
194
+ cancel_this_request: deze aanvraag afbreken
195
+ remember_me: Onthoud me
196
+ login_submit: inloggen
197
+ i_forgot_my_password: Ik ben mijn wachtwoord vergeten
198
+
199
+ # server controller
200
+ this_is_openid_not_a_human_resource: Dit is een OpenID server eindpunt, geen voor mensen leesbare bron.
201
+ identity_verification_request_invalid: De vereficatie van de identiteit is ongeldig.
202
+ service_provider_requires_reauthentication_last_login_too_long_ago: De dienst vereist een nieuwe autenticatie, omdat uw laatste inlog te lang geleden was.
203
+ login_to_verify_identity: Log alstublieft in om uw identiteit te verefiëren.
204
+
205
+ # server views
206
+ identity_request_from_host: Aanvraag voor identiteit van %{host}
207
+ identity_request_missing_persona: Alstublieft %{create_link} om deze aanvraag voor uw identiteit te beantwoorden.
208
+ trust_root_requests_some_personal_data: "%{trust_root} vraagt persoonlijke data aan."
209
+ trust_root_sends_some_personal_data: "%{trust_root} stuurt persoonlijke data:"
210
+ select_information_to_submit: Selecteer alstublieft de informatie die u wilt verzenden.
211
+ select_information_to_accept: Selecteer alstublieft de informatie die u wilt accepteren.
212
+ attributes_are_shown_from_persona: De getoonde attributen zijn van uw persona %{persona}.
213
+ attributes_will_be_added_to_persona: De attributen zullen aan uw persona %{persona} (%{choose_link}) worden toegevoegd.
214
+ to_submit_other_values_you_can_edit_or_choose: Om andere waarden te verzenden kun u een %{edit_link} of een %{choose_link}.
215
+ create_persona_link: persona aanmaken
216
+ edit_persona_link: persona bewerken
217
+ choose_other_persona: andere persona kiezen
218
+ trust_root_requires_authentication: "%{trust_root} vereist uw autenticatie."
219
+ choose_persona_title: Persona kiezen
220
+ choose_persona_submit: persona kiezen
221
+ create_new_persona_link: nieuwe persona aanmaken
222
+ requested_information_title: Aangevraagde informatie
223
+ sent_information_title: Verzonden informatie
224
+ disclosure: onthulling
225
+ accept: accepteer
226
+ current: huidige
227
+ required: vereist
228
+ optional: optioneel
229
+ not_supported: niet ondersteund
230
+ trust_site_only_this_time: Deze website enkel deze keer vertrouwen
231
+ always_trust_site: Deze website altijd vertrouwen
232
+ approve_request: Aanvraag goedkeuren
233
+ cancel_request: Aanvraag afbreken
234
+
235
+ # sites controllers
236
+ release_policy_for_site_updated: Het uitgiftebeleid van deze site is bijgewerkt.
237
+
238
+ # sites views
239
+ edit_link: bewerk
240
+ delete_link: verwijder
241
+ or: of
242
+ your_release_policy_for_site: Uw uitgiftebeleid voor %{site}
243
+ persona_label: Persona
244
+ property: eigenschap
245
+ value: waarde
246
+ update_release_policy_submit: uitgiftebeleid bijwerken
247
+ identity_request_answered_without_interaction: Aanvraag voor identiteit van de volgende sites, worden direct, zonder verdere interactie beantwoord.
248
+ alter_release_policies_here: U kunt het uitgiftebeleid voor deze sites hier bewerken.
249
+ really_want_to_delete_trust_for_site: Wilt u echt het vertrouwen voor site %{site} verwijderen?
250
+ no_entries_yet: Er zijn nog een items
251
+ ext0: Ext0
252
+ ext1: Ext1
253
+ ext2: Ext2
254
+
255
+ # yubikey controller
256
+ account_associated_with_yubico_identity: Uw account is geassocieerd met uw Yubico identiteit.
257
+ sorry_yubico_one_time_password_incorrect: Sorry, het opgegeven Yubico eenmalige wachtwoord is niet correct.
258
+ account_disassociated_from_yubico_identity: Uw account is niet langer geassocieerd met uw Yubico identiteit.
@@ -0,0 +1,225 @@
1
+ de:
2
+ date:
3
+ formats:
4
+ default: "%d.%m.%Y"
5
+ short: "%e. %b"
6
+ long: "%e. %B %Y"
7
+ only_day: "%e"
8
+
9
+ day_names:
10
+ - Sonntag
11
+ - Montag
12
+ - Dienstag
13
+ - Mittwoch
14
+ - Donnerstag
15
+ - Freitag
16
+ - Samstag
17
+ abbr_day_names:
18
+ - So
19
+ - Mo
20
+ - Di
21
+ - Mi
22
+ - Do
23
+ - Fr
24
+ - Sa
25
+ month_names:
26
+ - ~
27
+ - Januar
28
+ - Februar
29
+ - März
30
+ - April
31
+ - Mai
32
+ - Juni
33
+ - Juli
34
+ - August
35
+ - September
36
+ - Oktober
37
+ - November
38
+ - Dezember
39
+ abbr_month_names:
40
+ - ~
41
+ - Jan
42
+ - Feb
43
+ - Mär
44
+ - Apr
45
+ - Mai
46
+ - Jun
47
+ - Jul
48
+ - Aug
49
+ - Sep
50
+ - Okt
51
+ - Nov
52
+ - Dez
53
+ order:
54
+ - :day
55
+ - :month
56
+ - :year
57
+
58
+ time:
59
+ formats:
60
+ default: "%A, %d. %B %Y, %H:%M Uhr"
61
+ short: "%d. %B, %H:%M Uhr"
62
+ long: "%A, %d. %B %Y, %H:%M Uhr"
63
+ time: "%H:%M"
64
+
65
+ am: "vormittags"
66
+ pm: "nachmittags"
67
+
68
+ datetime:
69
+ distance_in_words:
70
+ half_a_minute: 'eine halbe Minute'
71
+ less_than_x_seconds:
72
+ one: 'weniger als eine Sekunde'
73
+ other: 'weniger als %{count} Sekunden'
74
+ x_seconds:
75
+ one: 'eine Sekunde'
76
+ other: '%{count} Sekunden'
77
+ less_than_x_minutes:
78
+ one: 'weniger als eine Minute'
79
+ other: 'weniger als %{count} Minuten'
80
+ x_minutes:
81
+ one: 'eine Minute'
82
+ other: '%{count} Minuten'
83
+ about_x_hours:
84
+ one: 'etwa eine Stunde'
85
+ other: 'etwa %{count} Stunden'
86
+ x_days:
87
+ one: 'ein Tag'
88
+ other: '%{count} Tage'
89
+ about_x_months:
90
+ one: 'etwa ein Monat'
91
+ other: 'etwa %{count} Monate'
92
+ x_months:
93
+ one: 'ein Monat'
94
+ other: '%{count} Monate'
95
+ almost_x_years:
96
+ one: 'fast ein Jahr'
97
+ other: 'fast %{count} Jahre'
98
+ about_x_years:
99
+ one: 'etwa ein Jahr'
100
+ other: 'etwa %{count} Jahre'
101
+ over_x_years:
102
+ one: 'mehr als ein Jahr'
103
+ other: 'mehr als %{count} Jahre'
104
+ prompts:
105
+ second: "Sekunden"
106
+ minute: "Minuten"
107
+ hour: "Stunden"
108
+ day: "Tag"
109
+ month: "Monat"
110
+ year: "Jahr"
111
+
112
+ number:
113
+ format:
114
+ precision: 2
115
+ separator: ','
116
+ delimiter: '.'
117
+ significant: false
118
+ strip_insignificant_zeros: false
119
+ currency:
120
+ format:
121
+ unit: '€'
122
+ format: '%n %u'
123
+ separator: ","
124
+ delimiter: "."
125
+ precision: 2
126
+ significant: false
127
+ strip_insignificant_zeros: false
128
+ percentage:
129
+ format:
130
+ delimiter: ""
131
+ precision:
132
+ format:
133
+ delimiter: ""
134
+ human:
135
+ format:
136
+ delimiter: ""
137
+ precision: 1
138
+ significant: true
139
+ strip_insignificant_zeros: true
140
+ storage_units:
141
+ # Storage units output formatting.
142
+ # %u is the storage unit, %n is the number (default: 2 MB)
143
+ format: "%n %u"
144
+ units:
145
+ byte:
146
+ one: "Byte"
147
+ other: "Bytes"
148
+ kb: "KB"
149
+ mb: "MB"
150
+ gb: "GB"
151
+ tb: "TB"
152
+ decimal_units:
153
+ format: "%n %u"
154
+ units:
155
+ unit: ""
156
+ thousand: Tausend
157
+ million: Millionen
158
+ billion:
159
+ one: Milliarde
160
+ other: Milliarden
161
+ trillion: Billionen
162
+ quadrillion:
163
+ one: Billiarde
164
+ other: Billiarden
165
+
166
+ support:
167
+ array:
168
+ words_connector: ", "
169
+ two_words_connector: " und "
170
+ last_word_connector: " und "
171
+ select:
172
+ prompt: "Bitte wählen:"
173
+
174
+ helpers:
175
+ select:
176
+ prompt: "Bitte wählen"
177
+
178
+ submit:
179
+ create: '%{model} erstellen'
180
+ update: '%{model} aktualisieren'
181
+ submit: '%{model} speichern'
182
+
183
+ errors:
184
+ format: "%{attribute} %{message}"
185
+
186
+ messages: &errors_messages
187
+ inclusion: "ist kein gültiger Wert"
188
+ exclusion: "ist nicht verfügbar"
189
+ invalid: "ist nicht gültig"
190
+ confirmation: "stimmt nicht mit der Bestätigung überein"
191
+ accepted: "muss akzeptiert werden"
192
+ empty: "muss ausgefüllt werden"
193
+ blank: "muss ausgefüllt werden"
194
+ too_long: "ist zu lang (nicht mehr als %{count} Zeichen)"
195
+ too_short: "ist zu kurz (nicht weniger als %{count} Zeichen)"
196
+ wrong_length: "hat die falsche Länge (muss genau %{count} Zeichen haben)"
197
+ not_a_number: "ist keine Zahl"
198
+ greater_than: "muss größer als %{count} sein"
199
+ greater_than_or_equal_to: "muss größer oder gleich %{count} sein"
200
+ equal_to: "muss genau %{count} sein"
201
+ less_than: "muss kleiner als %{count} sein"
202
+ less_than_or_equal_to: "muss kleiner oder gleich %{count} sein"
203
+ odd: "muss ungerade sein"
204
+ even: "muss gerade sein"
205
+ not_an_integer: "muss ganzzahlig sein"
206
+ not_saved:
207
+ one: "Speichern nicht möglich: ein Fehler."
208
+ other: "Speichern nicht möglich: %{count} Fehler."
209
+ template: &errors_template
210
+ header:
211
+ one: "Konnte %{model} nicht speichern: ein Fehler."
212
+ other: "Konnte %{model} nicht speichern: %{count} Fehler."
213
+ body: "Bitte überprüfen Sie die folgenden Felder:"
214
+
215
+ activerecord:
216
+ errors:
217
+ messages:
218
+ taken: "ist bereits vergeben"
219
+ record_invalid: "Gültigkeitsprüfung ist fehlgeschlagen: %{errors}"
220
+ <<: *errors_messages
221
+ template:
222
+ <<: *errors_template
223
+
224
+ full_messages:
225
+ format: "%{attribute} %{message}"