mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-03-14 11:29:15 +01:00
Translation 1
This commit is contained in:
parent
909a5ab886
commit
a5d941ef30
@ -34,13 +34,13 @@ config(['$locationProvider', '$httpProvider', 'AuthProvider', "growlProvider", "
|
||||
AnalyticsProvider.setAccount('DISABLED');
|
||||
<% end %>
|
||||
|
||||
datepickerPopupConfig.closeText = "Fermer";
|
||||
datepickerPopupConfig.cleartext = "Effacer";
|
||||
datepickerPopupConfig.currentText = "Aujourd'hui";
|
||||
datepickerPopupConfig.closeText = "Close";
|
||||
datepickerPopupConfig.cleartext = "Delete";
|
||||
datepickerPopupConfig.currentText = "Today";
|
||||
|
||||
// custom message for angular-unsavedChanges
|
||||
unsavedWarningsConfigProvider.navigateMessage = "Vous perdrez les modifications non enregistrées si vous quittez cette page";
|
||||
unsavedWarningsConfigProvider.reloadMessage = "Vous perdrez les modifications non enregistrées si vous rechargez cette page";
|
||||
unsavedWarningsConfigProvider.navigateMessage = "You lose any unsaved changes if you leave this page";
|
||||
unsavedWarningsConfigProvider.reloadMessage = "You lose any unsaved changes if you reload this page";
|
||||
|
||||
growlProvider.globalTimeToLive(5000);
|
||||
growlProvider.globalEnableHtml(true);
|
||||
@ -49,7 +49,7 @@ config(['$locationProvider', '$httpProvider', 'AuthProvider', "growlProvider", "
|
||||
|
||||
}]).run(["$rootScope", "$log", "AuthService", "Auth", "amMoment", "$state", "editableOptions", "$location", "Analytics", function($rootScope, $log, AuthService, Auth, amMoment, $state, editableOptions, $location, Analytics){
|
||||
|
||||
amMoment.changeLocale('fr');
|
||||
amMoment.changeLocale('en');
|
||||
|
||||
editableOptions.theme = 'bs3';
|
||||
|
||||
@ -68,7 +68,7 @@ config(['$locationProvider', '$httpProvider', 'AuthProvider', "growlProvider", "
|
||||
};
|
||||
|
||||
$rootScope.summernoteOpts = {
|
||||
lang: 'fr-FR',
|
||||
lang: 'en-US',
|
||||
height: 200,
|
||||
toolbar: [
|
||||
['style', ['style']],
|
||||
|
@ -25,7 +25,7 @@
|
||||
class EventsController
|
||||
constructor: ($scope, $state, Event, Category) ->
|
||||
|
||||
## Retrieve the list of categories from the server (stage, atelier, ...)
|
||||
## Retrieve the list of categories from the server (course, workshop, ...)
|
||||
Category.query().$promise.then (data)->
|
||||
$scope.categories = data.map (d) ->
|
||||
id: d.id
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
<div class="col-md-12">
|
||||
<tabset justified="true">
|
||||
<tab heading="Matériaux">
|
||||
<tab heading="Materials">
|
||||
<button type="button" class="btn btn-warning m-b m-t" ng-click="addComponent()">Add a material</button>
|
||||
|
||||
<table class="table">
|
||||
|
@ -187,7 +187,7 @@
|
||||
<div class="col-sm-5">
|
||||
<div class="input-group">
|
||||
<input ng-model="event.amount" type="number" name="event[amount]" class="form-control" id="event_amount" required>
|
||||
<div class="input-group-addon">€</div>
|
||||
<div class="input-group-addon">¥</div>
|
||||
</div>
|
||||
<span class="help-block">0 = free</span>
|
||||
</div>
|
||||
@ -197,7 +197,7 @@
|
||||
<div class="col-sm-5">
|
||||
<div class="input-group">
|
||||
<input ng-model="event.reduced_amount" type="number" name="event[reduced_amount]" class="form-control" id="event_reduced_amount">
|
||||
<div class="input-group-addon">€</div>
|
||||
<div class="input-group-addon">¥</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -34,7 +34,7 @@
|
||||
<h4 class="m-n text-sm clear l-n">{{event.title}}</h4>
|
||||
<h3 class="m-n">{{event.start_date | amDateFormat:'DD/MM'}}<span class="text-sm font-thin"> au </span>{{event.end_date | amDateFormat:'DD/MM'}}</h3>
|
||||
|
||||
<h6 class="m-n" ng-if="event.amount">Full price: {{event.amount}}€ <span ng-if="event.reduced_amount > 0">/ Tarif réduit: {{event.reduced_amount}}€</span></h6>
|
||||
<h6 class="m-n" ng-if="event.amount">Full price: {{event.amount}}¥ <span ng-if="event.reduced_amount > 0">/Reduced price: {{event.reduced_amount}}¥</span></h6>
|
||||
</div>
|
||||
<!-- Event Image -->
|
||||
<div class="pull-right crop-130">
|
||||
|
@ -98,7 +98,7 @@
|
||||
</div>
|
||||
<div class="col-sm-6 row m-b-sm">
|
||||
<i class="fa fa-clock-o red col-xs-3 padder-icon"></i>
|
||||
<h6 class="m-n col-xs-9"><span ng-if="event.all_day == 'true'">All day long</span><span ng-if="event.all_day == 'false'">De {{event.start_date | date:'HH:mm'}}<span class="text-sm font-thin"> à </span>{{event.end_date | date:'HH:mm'}}</span></h6>
|
||||
<h6 class="m-n col-xs-9"><span ng-if="event.all_day == 'true'">All day long</span><span ng-if="event.all_day == 'false'">From {{event.start_date | date:'HH:mm'}}<span class="text-sm font-thin"> to </span>{{event.end_date | date:'HH:mm'}}</span></h6>
|
||||
</div>
|
||||
<div class="col-sm-12 row m-b">
|
||||
<i class="fa fa-bookmark red col-xs-1 padder-icon"></i>
|
||||
|
@ -47,7 +47,7 @@
|
||||
<label for="spec" class="col-sm-2 control-label">Technical Specifications *</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea ng-model="machine.spec" class="form-control" rows="12" id="machine_spec" placeholder="" name="machine[spec]" required></textarea>
|
||||
<span class="help-block" ng-show="machineForm['machine[spec]'].$dirty && machineForm['machine[spec]'].$error.required">Les Technical specifications are mandatory.</span>
|
||||
<span class="help-block" ng-show="machineForm['machine[spec]'].$dirty && machineForm['machine[spec]'].$error.required">The technical specifications are mandatory.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -75,7 +75,7 @@
|
||||
</div> <!-- ./panel-body -->
|
||||
|
||||
<div class="panel-footer no-padder">
|
||||
<input type="submit" value="Valider votre machine" class="r-b btn-valid btn btn-warning btn-block p-lg btn-lg text-u-c" ng-disabled="machineForm.$invalid"/>
|
||||
<input type="submit" value="Submit your machine" class="r-b btn-valid btn btn-warning btn-block p-lg btn-lg text-u-c" ng-disabled="machineForm.$invalid"/>
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div class="col-xs-12 col-sm-12 col-md-3 b-t hide-b-md">
|
||||
<section class="heading-actions wrapper">
|
||||
<div class="btn btn-lg btn-block btn-default rounded m-t-xs" ng-click="cancel()">
|
||||
Annuler
|
||||
Cancel
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<div class="col-md-8 b-l b-r">
|
||||
<section class="heading-title">
|
||||
<h1>Déclarer une nouvelle machine</h1>
|
||||
<h1>Submit a new machine</h1>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
@ -91,7 +91,7 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-12 text-center">
|
||||
<a class="btn btn-warning" ng-click="loadMoreProjects()" ng-if="paginateActive">Charger les projets suivants ...</a>
|
||||
<a class="btn btn-warning" ng-click="loadMoreProjects()" ng-if="paginateActive">Load the following projects ...</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -6,6 +6,6 @@
|
||||
<p>{{object.msg}}</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-info" ng-click="ok()">Valider</button>
|
||||
<button class="btn btn-default" ng-click="cancel()">Annuler</button>
|
||||
<button class="btn btn-info" ng-click="ok()">Confirm</button>
|
||||
<button class="btn btn-default" ng-click="cancel()">Cancel</button>
|
||||
</div>
|
||||
|
@ -9,7 +9,7 @@ class RegistrationsController < Devise::RegistrationsController
|
||||
if resource.active_for_authentication?
|
||||
set_flash_message :notice, :signed_up if is_flashing_format?
|
||||
|
||||
# Permet d'envoyer l'email de confirmation sans bloquer l'access au dashboard
|
||||
# Allows you to send the confirmation email without blocking access to dashboard
|
||||
resource.send_confirmation_instructions
|
||||
|
||||
sign_up(resource_name, resource)
|
||||
|
@ -1,3 +1,3 @@
|
||||
json.title notification.notification_type
|
||||
json.description "Le projet <a href='/#!/projects/#{notification.attached_object.id}'><strong><em>#{notification.attached_object.name}<em></strong></a> vient d'être publié."
|
||||
json.description "The project <a href='/#!/projects/#{notification.attached_object.id}'><strong><em>#{notification.attached_object.name}<em></strong></a> has just been published."
|
||||
json.url notification_url(notification, format: :json)
|
||||
|
@ -1,3 +1,3 @@
|
||||
json.title notification.notification_type
|
||||
json.description "Le membre #{notification.attached_object.user.profile.full_name} est devenu un collaborateur de votre projet <a href='/#!/projects/#{notification.attached_object.project.id}'><strong><em>#{notification.attached_object.project.name}</em></strong></a>."
|
||||
json.description " #{notification.attached_object.user.profile.full_name} has become a collaborator of the project <a href='/#!/projects/#{notification.attached_object.project.id}'><strong><em>#{notification.attached_object.project.name}</em></strong></a>."
|
||||
json.url notification_url(notification, format: :json)
|
||||
|
@ -1,3 +1,3 @@
|
||||
json.title notification.notification_type
|
||||
json.description "Vous êtes invité à collaborer sur le projet suivant : <a href='/#!/projects/#{notification.attached_object.project.id}'><strong><em>#{notification.attached_object.project.name}</em></strong></a>."
|
||||
json.description "You are invited to collaborate on the following project : <a href='/#!/projects/#{notification.attached_object.project.id}'><strong><em>#{notification.attached_object.project.name}</em></strong></a>."
|
||||
json.url notification_url(notification, format: :json)
|
||||
|
@ -31,12 +31,12 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>A très bientôt sur <a href="<%= root_url %>" style="color:#D92227">le Fab Lab</a>.</p>
|
||||
<p>Cordialement,<br>L'équipe du Fab Lab.</p>
|
||||
<p>See you soon on<a href="<%= root_url %>" style="color:#D92227">at FabLab XinFab</a>.</p>
|
||||
<p>Cordially,<br>L'FabLab XinFab team.</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td id="contactTd" style="color:#666; font-size:11px; background-color:#f3f3f3; padding:13px 20px 13px 20px; border-top:2px dashed #ddd;">Merci de ne pas répondre directement à cet email.</td>
|
||||
<td id="contactTd" style="color:#666; font-size:11px; background-color:#f3f3f3; padding:13px 20px 13px 20px; border-top:2px dashed #ddd;">Thank you not to respond directly to this email.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p style="font-size:9px;"> </p>
|
||||
|
@ -1,3 +1,3 @@
|
||||
<p>Bonjour <%= @attached_object.project.author.profile.full_name %>,</p>
|
||||
|
||||
<p>Le membre <%= @attached_object.user.profile.full_name %> a accepté votre demande de collaboration sur votre projet : <strong><em><%= link_to @attached_object.project.name, "#{root_url}#!/projects/#{@attached_object.project.id}" %></em></strong>.</p>
|
||||
<p>The member <%= @attached_object.user.profile.full_name %> has accepted your request for collaboration on your project : <strong><em><%= link_to @attached_object.project.name, "#{root_url}#!/projects/#{@attached_object.project.id}" %></em></strong>.</p>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<p>Bonjour <%= @attached_object.user.profile.full_name %>,</p>
|
||||
<p>Hello <%= @attached_object.user.profile.full_name %>,</p>
|
||||
|
||||
<p>Vous êtes invité à collaborer sur ce projet : <strong><em><%= link_to @attached_object.project.name, "#{root_url}#!/projects/#{@attached_object.project.id}" %></em></strong>.</p>
|
||||
<p>You are invited to collaborate on this project: <strong><em><%= link_to @attached_object.project.name, "#{root_url}#!/projects/#{@attached_object.project.id}" %></em></strong>.</p>
|
||||
|
||||
<p>Pour accepter cette invitation, il vous suffit de cliquer sur le lien suivant: <%= link_to "#{root_url}project_collaborator/#{@attached_object.valid_token}", "#{root_url}project_collaborator/#{@attached_object.valid_token}" %></p>
|
||||
<p>To accept this invitation, simply click on the following link: <%= link_to "#{root_url}project_collaborator/#{@attached_object.valid_token}", "#{root_url}project_collaborator/#{@attached_object.valid_token}" %></p>
|
||||
|
@ -1,95 +0,0 @@
|
||||
fr:
|
||||
devise:
|
||||
confirmations:
|
||||
confirmed: Votre compte a été confirmé avec succès. Vous êtes désormais connecté(e).
|
||||
send_instructions: Vous allez recevoir sous quelques minutes un e-mail comportant des instructions pour confirmer votre compte.
|
||||
send_paranoid_instructions: Si votre e-mail existe sur notre base de données, vous recevrez sous quelques minutes un message avec des instructions pour confirmer votre compte.
|
||||
new:
|
||||
resend_confirmation_instructions: Renvoyer les instructions de confirmation
|
||||
failure:
|
||||
already_authenticated: Vous êtes déjà connecté(e).
|
||||
inactive: Votre compte n’est pas encore activé.
|
||||
invalid: Incorrect Email or password.
|
||||
invalid_token: Jeton d'authentification incorrect.
|
||||
locked: Votre compte est verrouillé.
|
||||
not_found_in_database: Incorrect Email or password.
|
||||
timeout: Votre session est périmée, veuillez vous reconnecter pour continuer.
|
||||
unauthenticated: Vous devez vous connecter ou vous enregistrer pour continuer.
|
||||
unconfirmed: Vous devez confirmer votre compte par e-mail.
|
||||
mailer:
|
||||
confirmation_instructions:
|
||||
action: Confirmer mon e-mail
|
||||
greeting: Bienvenue %{recipient}!
|
||||
instruction: ! 'Vous pouvez confirmer votre e-mail grâce au lien ci-dessous:'
|
||||
subject: Confirmation d'inscription
|
||||
reset_password_instructions:
|
||||
action: Changer mon mot de passe
|
||||
greeting: Bonjour %{recipient}!
|
||||
instruction: ! 'Quelqu''un a demandé un lien pour changer votre mot de passe, le voici :'
|
||||
instruction_2: Si vous n’avez pas émis cette demande, merci d’ignore cet e-mail.
|
||||
instruction_3: Votre mot de passe ne changera pas tant que vous n’aurez pas cliqué sur ce lien et renseigné un nouveau mot de passe.
|
||||
subject: Instructions pour changer le mot de passe
|
||||
unlock_instructions:
|
||||
action: Débloquer mon compte
|
||||
greeting: Bonjour %{recipient}!
|
||||
instruction: ! 'Suivez ce lien pour débloquer votre compte:'
|
||||
message: Votre compte a été bloqué suite à un nombre d’essais de connexions manqués trop important
|
||||
subject: Instructions pour déverrouiller le compte
|
||||
omniauth_callbacks:
|
||||
failure: ! 'Nous ne pouvons pas vous authentifier depuis %{kind} pour la raison suivante : ''%{reason}''.'
|
||||
success: Autorisé avec succès par votre compte %{kind}.
|
||||
passwords:
|
||||
no_token: Vous ne pouvez pas accéder à cette page si vous n’y accédez pas depuis un e-mail de réinitialisation de mot de passe. Si vous venez en effet d’un tel e-mail, vérifiez que vous avez copié l’adresse URL en entier.
|
||||
send_instructions: Vous allez recevoir sous quelques minutes un e-mail vous indiquant comment réinitialiser votre mot de passe.
|
||||
send_paranoid_instructions: Si votre e-mail existe dans notre base de données, vous recevrez un lien vous permettant de récupérer votre mot de passe.
|
||||
updated: Votre mot de passe a été modifié avec succès. Vous êtes maintenant connecté(e).
|
||||
updated_not_active: Votre mot de passe a été modifié avec succès.
|
||||
new:
|
||||
forgot_your_password: Mot de passe oublié ?
|
||||
send_me_reset_password_instructions: Réinitialiser mon mot de passe
|
||||
registrations:
|
||||
destroyed: Au revoir ! Votre compte a été annulé avec succès. Nous espérons vous revoir bientôt.
|
||||
signed_up: Bienvenue ! Vous vous êtes enregistré(e) avec succès.
|
||||
signed_up_but_inactive: Vous vous êtes enregistré(e) avec succès. Cependant, nous n’avons pas pu vous connecter car votre compte n’a pas encore été activé.
|
||||
signed_up_but_locked: Vous vous êtes enregistré(e) avec succès. Cependant, nous n’avons pas pu vous connecter car votre compte est verrouillé.
|
||||
signed_up_but_unconfirmed: Un message avec un lien de confirmation vous a été envoyé par mail. Veuillez suivre ce lien pour activer votre compte.
|
||||
update_needs_confirmation: Vous avez modifié votre compte avec succès, mais nous devons vérifier votre nouvelle adresse e-mail. Veuillez consulter vos e-mails et cliquer sur le lien de confirmation pour finaliser votre nouvelle adresse.
|
||||
updated: Votre compte a été modifié avec succès.
|
||||
edit:
|
||||
are_you_sure: Êtes-vous sûr ?!
|
||||
cancel_my_account: Supprimer mon compte
|
||||
leave_blank_if_you_don_t_want_to_change_it: laissez ce champ vide pour le laisser inchangé
|
||||
title: Éditer %{resource}
|
||||
we_need_your_current_password_to_confirm_your_changes: nous avons besoin de votre mot de passe actuel pour valider ces modifications
|
||||
new:
|
||||
sign_up: Créer votre compte sereale
|
||||
sessions:
|
||||
signed_in: Connecté(e) avec succès.
|
||||
signed_out: Déconnecté(e) avec succès.
|
||||
new:
|
||||
sign_in: Login
|
||||
remember: Se souvenir de moi
|
||||
unlocks:
|
||||
send_instructions: Vous allez recevoir un e-mail sous quelques minutes contenant les instructions nécessaires au déblocage de votre compte.
|
||||
send_paranoid_instructions: Si votre compte existe, vous recevrez un e-mail indiquant comment le déverrouiller sous quelques minutes.
|
||||
unlocked: Votre compte a été débloqué avec succès. Veuillez vous connecter.
|
||||
new:
|
||||
resend_unlock_instructions: Renvoyer les instructions de débloquage
|
||||
shared:
|
||||
links:
|
||||
didn_t_receive_confirmation_instructions: Vous n’avez pas reçu l’e-mail de confirmation ?
|
||||
didn_t_receive_unlock_instructions: Vous n’avez pas reçu l’e-mail de débloquage ?
|
||||
forgot_your_password: Mot de passe oublié ?
|
||||
sign_in: Login
|
||||
sign_in_with_provider: Connexion avec %{provider}
|
||||
sign_up: Create an account
|
||||
errors:
|
||||
messages:
|
||||
already_confirmed: a déjà été confirmé(e)
|
||||
confirmation_period_expired: doit être confirmé(e) en %{period}, veuillez en demander un(e) autre
|
||||
expired: est périmé, veuillez en demander un autre
|
||||
not_found: n’a pas été trouvé(e)
|
||||
not_locked: n’était pas verrouillé(e)
|
||||
not_saved:
|
||||
one: ! 'une erreur a empêché ce (ou cette) %{resource} d’être enregistré(e) :'
|
||||
other: ! '%{count} erreurs ont empêché ce (ou cette) %{resource} d’être enregistré(e) :'
|
@ -1,242 +0,0 @@
|
||||
fr:
|
||||
date:
|
||||
formats:
|
||||
default: "%d/%m/%Y"
|
||||
short_default: "%d/%m/%y"
|
||||
short: "%e %b"
|
||||
long: "%e %B %Y"
|
||||
medium: "%e %b %Y"
|
||||
day_name: "%A"
|
||||
simple: "%A %e %B"
|
||||
|
||||
day_names:
|
||||
- dimanche
|
||||
- lundi
|
||||
- mardi
|
||||
- mercredi
|
||||
- jeudi
|
||||
- vendredi
|
||||
- samedi
|
||||
abbr_day_names:
|
||||
- dim
|
||||
- lun
|
||||
- mar
|
||||
- mer
|
||||
- jeu
|
||||
- ven
|
||||
- sam
|
||||
month_names:
|
||||
- ~
|
||||
- janvier
|
||||
- février
|
||||
- mars
|
||||
- avril
|
||||
- mai
|
||||
- juin
|
||||
- juillet
|
||||
- août
|
||||
- septembre
|
||||
- octobre
|
||||
- novembre
|
||||
- décembre
|
||||
abbr_month_names:
|
||||
- ~
|
||||
- jan
|
||||
- fév
|
||||
- mar
|
||||
- avr
|
||||
- mai
|
||||
- juin
|
||||
- juil
|
||||
- août
|
||||
- sept
|
||||
- oct
|
||||
- nov
|
||||
- déc
|
||||
order:
|
||||
- :day
|
||||
- :month
|
||||
- :year
|
||||
|
||||
time:
|
||||
formats:
|
||||
default: "%d %B %Y %H:%M"
|
||||
short: "%d %b %H:%M"
|
||||
long: "%A %d %B %Y %H:%M"
|
||||
hour_minute: "%H:%M"
|
||||
hour_minute_long: "%Hh%M"
|
||||
am: 'am'
|
||||
pm: 'pm'
|
||||
|
||||
datetime:
|
||||
distance_in_words:
|
||||
half_a_minute: "une demi-minute"
|
||||
less_than_x_seconds:
|
||||
zero: "moins d'une seconde"
|
||||
one: "moins d'une seconde"
|
||||
other: "moins de %{count} secondes"
|
||||
x_seconds:
|
||||
one: "1 seconde"
|
||||
other: "%{count} secondes"
|
||||
less_than_x_minutes:
|
||||
zero: "moins d'une minute"
|
||||
one: "moins d'une minute"
|
||||
other: "moins de %{count} minutes"
|
||||
x_minutes:
|
||||
one: "il y a 1 minute"
|
||||
other: "il y a %{count} minutes"
|
||||
about_x_hours:
|
||||
one: "environ une heure"
|
||||
other: "environ %{count} heures"
|
||||
x_days:
|
||||
one: "1 jour"
|
||||
other: "%{count} jours"
|
||||
about_x_months:
|
||||
one: "environ un mois"
|
||||
other: "environ %{count} mois"
|
||||
x_months:
|
||||
one: "1 mois"
|
||||
other: "%{count} mois"
|
||||
about_x_years:
|
||||
one: "environ un an"
|
||||
other: "environ %{count} ans"
|
||||
over_x_years:
|
||||
one: "plus d'un an"
|
||||
other: "plus de %{count} ans"
|
||||
almost_x_years:
|
||||
one: "presqu'un an"
|
||||
other: "presque %{count} ans"
|
||||
prompts:
|
||||
year: "Année"
|
||||
month: "Mois"
|
||||
day: "Jour"
|
||||
hour: "Heure"
|
||||
minute: "Minute"
|
||||
second: "Seconde"
|
||||
|
||||
number:
|
||||
format:
|
||||
separator: ","
|
||||
delimiter: " "
|
||||
precision: 3
|
||||
significant: false
|
||||
strip_insignificant_zeros: false
|
||||
currency:
|
||||
format:
|
||||
format: "%n %u"
|
||||
unit: "€"
|
||||
separator: ","
|
||||
delimiter: " "
|
||||
precision: 2
|
||||
significant: false
|
||||
strip_insignificant_zeros: false
|
||||
percentage:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision:
|
||||
format:
|
||||
delimiter: ""
|
||||
human:
|
||||
format:
|
||||
delimiter: ""
|
||||
precision: 2
|
||||
significant: true
|
||||
strip_insignificant_zeros: true
|
||||
storage_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
byte:
|
||||
one: "octet"
|
||||
other: "octets"
|
||||
kb: "ko"
|
||||
mb: "Mo"
|
||||
gb: "Go"
|
||||
tb: "To"
|
||||
decimal_units:
|
||||
format: "%n %u"
|
||||
units:
|
||||
unit: ""
|
||||
thousand: "millier"
|
||||
million: "million"
|
||||
billion: "milliard"
|
||||
trillion: "billion"
|
||||
quadrillion: "million de milliards"
|
||||
|
||||
distance:
|
||||
centi:
|
||||
one: "centimètre"
|
||||
other: "centimètres"
|
||||
unit:
|
||||
one: "mètre"
|
||||
other: "mètres"
|
||||
thousand:
|
||||
one: "km"
|
||||
other: "kms"
|
||||
billion: "gazillion-distance"
|
||||
|
||||
support:
|
||||
array:
|
||||
words_connector: ", "
|
||||
two_words_connector: " et "
|
||||
last_word_connector: " et "
|
||||
|
||||
|
||||
errors: &errors
|
||||
format: "%{attribute} : %{message}"
|
||||
messages: &errors_messages
|
||||
inclusion: "n'est pas inclus(e) dans la liste"
|
||||
exclusion: "n'est pas disponible"
|
||||
invalid: "n'est pas valide"
|
||||
confirmation: "ne concorde pas avec la confirmation"
|
||||
accepted: "doit être accepté(e)"
|
||||
empty: "champ obligatoire"
|
||||
blank: "champ obligatoire"
|
||||
too_long:
|
||||
one: "est trop long (pas plus d'un caractère)"
|
||||
other: "est trop long (pas plus de %{count} caractères)"
|
||||
too_short:
|
||||
one: "est trop court (au moins un caractère)"
|
||||
other: "est trop court (au moins %{count} caractères)"
|
||||
wrong_length:
|
||||
one: "ne fait pas la bonne longueur (doit comporter un seul caractère)"
|
||||
other: "ne fait pas la bonne longueur (doit comporter %{count} caractères)"
|
||||
not_a_number: "n'est pas un nombre"
|
||||
not_an_integer: "doit être un nombre entier"
|
||||
greater_than: "doit être supérieur à %{count}"
|
||||
greater_than_or_equal_to: "doit être supérieur ou égal à %{count}"
|
||||
equal_to: "doit être égal à %{count}"
|
||||
less_than: "doit être inférieur à %{count}"
|
||||
less_than_or_equal_to: "doit être inférieur ou égal à %{count}"
|
||||
odd: "doit être impair"
|
||||
even: "doit être pair"
|
||||
taken: "n'est pas disponible"
|
||||
record_invalid: "La validation a échoué : %{errors}"
|
||||
# ***************** CarrierWave ********************* #
|
||||
carrierwave_processing_error: failed to be processed
|
||||
carrierwave_integrity_error: is not of an allowed file type
|
||||
carrierwave_download_error: could not be downloaded
|
||||
extension_white_list_error: "You are not allowed to upload %{extension} files, allowed types: %{allowed_types}"
|
||||
extension_black_list_error: "You are not allowed to upload %{extension} files, prohibited types: %{prohibited_types}"
|
||||
rmagick_processing_error: "Failed to manipulate with rmagick, maybe it is not an image? Original Error: %{e}"
|
||||
mime_types_processing_error: "Failed to process file with MIME::Types, maybe not valid content-type? Original Error: %{e}"
|
||||
mini_magick_processing_error: "Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: %{e}"
|
||||
wrong_size: "ne fait pas la taille du fichier (doit comporter %{file_size})"
|
||||
size_too_small: "est trop petit (au moins %{file_size})"
|
||||
size_too_big: "est trop grand (pas plus de %{file_size})"
|
||||
|
||||
template: &errors_template
|
||||
header:
|
||||
one: "Impossible d'enregistrer ce(tte) %{model} : 1 erreur"
|
||||
other: "Impossible d'enregistrer ce(tte) %{model} : %{count} erreurs"
|
||||
body: "Veuillez vérifier les champs suivants : "
|
||||
|
||||
activemodel:
|
||||
errors:
|
||||
<<: *errors
|
||||
|
||||
notifications_mailer:
|
||||
send_mail_by:
|
||||
subject_notify_admin_when_project_published: "Un projet a été publié."
|
||||
subject_notify_project_collaborator_to_valid: "Invitation à collaborer sur un projet"
|
||||
subject_notify_project_author_when_collaborator_valid: "Un nouveau collaborateur dans votre projet"
|
||||
subject_notify_admin_when_user_is_created: "Un compte utilisateur a été créé"
|
22
db/seeds.rb
22
db/seeds.rb
@ -37,12 +37,12 @@ end
|
||||
|
||||
if Licence.count == 0
|
||||
Licence.create!([
|
||||
{name: "Attribution (BY)", description: "Le titulaire des droits autorise toute exploitation de l’œuvre, y compris à des fins commerciales, ainsi que la création d’œuvres dérivées, dont la distribution est également autorisé sans restriction, à condition de l’attribuer à son l’auteur en citant son nom. Cette licence est recommandée pour la diffusion et l’utilisation maximale des œuvres."},
|
||||
{name: "Attribution + Pas de modification (BY ND)", description: "Le titulaire des droits autorise toute utilisation de l’œuvre originale (y compris à des fins commerciales), mais n’autorise pas la création d’œuvres dérivées."},
|
||||
{name: "Attribution + Pas d'Utilisation Commerciale + Pas de Modification (BY NC ND)", description: "Le titulaire des droits autorise l’utilisation de l’œuvre originale à des fins non commerciales, mais n’autorise pas la création d’œuvres dérivés."},
|
||||
{name: "Attribution + Pas d'Utilisation Commerciale (BY NC)", description: "Le titulaire des droits autorise l’exploitation de l’œuvre, ainsi que la création d’œuvres dérivées, à condition qu’il ne s’agisse pas d’une utilisation commerciale (les utilisations commerciales restant soumises à son autorisation)."},
|
||||
{name: "Attribution + Pas d'Utilisation Commerciale + Partage dans les mêmes conditions (BY NC SA)", description: "Le titulaire des droits autorise l’exploitation de l’œuvre originale à des fins non commerciales, ainsi que la création d’œuvres dérivées, à condition qu’elles soient distribuées sous une licence identique à celle qui régit l’œuvre originale."},
|
||||
{name: "Attribution + Partage dans les mêmes conditions (BY SA)", description: "Le titulaire des droits autorise toute utilisation de l’œuvre originale (y compris à des fins commerciales) ainsi que la création d’œuvres dérivées, à condition qu’elles soient distribuées sous une licence identique à celle qui régit l’œuvre originale. Cette licence est souvent comparée aux licences « copyleft » des logiciels libres. C’est la licence utilisée par Wikipedia."}
|
||||
{name: "Attribution (CC BY)", description: "This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered. Recommended for maximum dissemination and use of licensed materials."},
|
||||
{name: "Attribution-NoDerivs (CC BY-ND)", description: "This license allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to you."},
|
||||
{name: "Attribution-NonCommercial-NoDerivs (CC BY-NC-ND)", description: "This license is the most restrictive of our six main licenses, only allowing others to download your works and share them with others as long as they credit you, but they can’t change them in any way or use them commercially."},
|
||||
{name: "Attribution-NonCommercial CC BY-NC", description: "This license lets others remix, tweak, and build upon your work non-commercially, and although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms."},
|
||||
{name: "Attribution-NonCommercial-ShareAlike CC BY-NC-SA", description: "This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms."},
|
||||
{name: "Attribution-ShareAlike (CC BY-SA)", description: "This license lets others remix, tweak, and build upon your work even for commercial purposes, as long as they credit you and license their new creations under the identical terms. This license is often compared to “copyleft” free and open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use. This is the license used by Wikipedia, and is recommended for materials that would benefit from incorporating content from Wikipedia and similarly licensed projects."}
|
||||
])
|
||||
end
|
||||
|
||||
@ -60,11 +60,11 @@ end
|
||||
|
||||
if Machine.count == 0
|
||||
Machine.create!([
|
||||
{name: "Laser cutter", description: "Préparation à l'utilisation de l'EPILOG Legend 36EXT\r\nInformations générales \r\n Pour la découpe, il suffit d'apporter votre fichier vectorisé type illustrator, svg ou dxf avec des \"lignes de coupe\" d'une épaisseur inférieur à 0,01 mm et la machine s'occupera du reste!\r\n La gravure est basée sur le spectre noir et blanc. Les nuances sont obtenues par différentes profondeurs de gravure correspondant aux niveaux de gris de votre image. Il suffit pour cela d'apporter une image scannée ou un fichier photo en noir et blanc pour pouvoir reproduire celle-ci sur votre support! \r\nQuels types de matériaux pouvons nous graver/découper?\r\n Du bois au tissu, du plexiglass au cuir, cette machine permet de découper et graver la plupart des matériaux sauf les métaux. La gravure est néanmoins possible sur les métaux recouverts d'une couche de peinture ou les aluminiums anodisés. \r\n Concernant l'épaisseur des matériaux découpés, il est préférable de ne pas dépasser 5 mm pour le bois et 6 mm pour le plexiglass.\r\n", spec: "Puissance: 40W\r\nSurface de travail: 914x609 mm \r\nEpaisseur maximale de la matière: 305mm\r\nSource laser: tube laser type CO2\r\nContrôles de vitesse et de puissance: ces deux paramètres sont ajustables en fonction du matériau (de 1% à 100%) .\r\n", slug: "decoupeuse-laser"},
|
||||
{name: "Vinyl cutter", description: "Préparation à l'utilisation de la Roland CAMM-1 GX24\r\nInformations générales \r\n Envie de réaliser un tee shirt personnalisé ? Un sticker à l'effigie votre groupe préféré? Un masque pour la réalisation d'un circuit imprimé? Pour cela, il suffit simplement de venir avec votre fichier vectorisé (ne pas oublier de vectoriser les textes) type illustrator svg ou dxf.\r\n \r\nMatériaux utilisés:\r\n Cette machine permet de découper principalement du vinyle,vinyle réfléchissant, flex.\r\n", spec: "Largeurs de support acceptées: de 50 mm à 700 mm\r\nVitesse de découpe: 50 cm/sec\r\nRésolution mécanique: 0,0125 mm/pas\r\n", slug: "decoupeuse-vinyle"},
|
||||
{name: "Shopbot / Milling", description: "La fraiseuse numérique ShopBot PRS standard\r\nInformations générales\r\nCette machine est un fraiseuse 3 axes idéale pour l'usinage de pièces de grandes dimensions. De la réalisation d'une chaise ou d'un meuble jusqu'à la construction d'une maison ou d'un assemblage immense, le ShopBot ouvre de nombreuses portes à votre imagination! \r\nMatériaux usinables\r\nLes principaux matériaux usinables sont le bois, le plastique, le laiton et bien d'autres.\r\nCette machine n'usine pas les métaux.\r\n", spec: "Surface maximale de travail: 2440x1220x150 (Z) mm\r\nLogiciel utilisé: Partworks 2D & 3D\r\nRésolution mécanique: 0,015 mm\r\nPrécision de la position: +/- 0,127mm\r\nFormats acceptés: DXF, STL \r\n", slug: "shopbot-grande-fraiseuse"},
|
||||
{name: "3D Printer", description: "L'utimaker est une imprimante 3D low cost utilisant une technologie FFF (Fused Filament Fabrication) avec extrusion thermoplastique.\r\nC'est une machine idéale pour réaliser rapidement des prototypes 3D dans des couleurs différentes.\r\n", spec: "Surface maximale de travail: 210x210x220mm \r\nRésolution méchanique: 0,02 mm \r\nPrécision de position: +/- 0,05 \r\nLogiciel utilisé: Cura\r\nFormats de fichier acceptés: STL \r\nMatériaux utilisés: PLA (en stock).", slug: "imprimante-3d"},
|
||||
{name: "Small milling machine", description: "La fraiseuse numérique Roland Modela MDX-20\r\nInformations générales\r\nCette machine est utilisée pour l'usinage et le scannage 3D de précision. Elle permet principalement d'usiner des circuits imprimés et des moules de petite taille. Le faible diamètre des fraises utilisées (Ø 0,3 mm à Ø 6mm) induit que certains temps d'usinages peuvent êtres long (> 12h), c'est pourquoi cette fraiseuse peut être laissée en autonomie toute une nuit afin d'obtenir le plus précis des usinages au FabLab.\r\nMatériaux usinables:\r\nLes principaux matériaux usinables sont le bois, plâtre, résine, cire usinable, cuivre.\r\n", spec: "Taille du plateau X/Y : 220 mm x 160 mm\r\nVolume maximal de travail: 203,2 mm (X), 152,4 mm (Y), 60,5 mm (Z)\r\nPrécision usinage: 0,00625 mm\r\nPrécision scannage: réglable de 0,05 à 5 mm (axes X,Y) et 0,025 mm (axe Z)\r\nVitesse d'analyse (scannage): 4-15 mm/sec\r\n \r\n \r\nLogiciel utilisé pour le fraisage: Roland Modela player 4 \r\nLogiciel utilisé pour l'usinage de circuits imprimés: Cad.py (linux)\r\nFormats acceptés: STL,PNG 3D\r\nFormat d'exportation des données scannées: DXF, VRML, STL, 3DMF, IGES, Grayscale, Point Group et BMP\r\n", slug: "petite-fraiseuse"}
|
||||
{name: "Laser cutter", description: "Preparing to use a EPILOG Legend 36EXT\r\nGeneral information \r\n For cutting, just bring your vector type illustrator file with dxf or svg\"cut lines\" of a thickness less than 0.01 mm and the machine does the rest!\r\n The engraving is based on the black and white spectrum. The shades are obtained by different engraving depths corresponding to the grayscale image. Simply bring a scanned image or a black and white photo file to reproduce it on your material! \r\nWhat types of materials can we engrave / cut?\r\n Wood, tissue, plexiglass, leather, this machine can cut and engrave most materials except metals. Engraving is however possible on metals covered with a layer of paint or anodized aluminum.\r\n Regarding the thickness of cut materials, it is best not to exceed 5 mm to 6 mm for wood and plexiglass.\r\n", spec: "Power: 40W\r\nSwork surface: 914 x 609 mm \r\nMaximum thickness of the material: 305mm\r\nLaser Source: CO2 laser tube kind\r\nSpeed and power controls: these two parameters are adjustable depending on the material (from 1% to 100%).\r\n", slug: "laser-cutter"},
|
||||
{name: "Vinyl cutter", description: "Preparing to Use the Roland CAMM-1 GX24\r\nGeneral information \r\n Want to create a custom t-shirt? A sticker with the image your favorite band? A mask for producing a printed circuit? For this, you just have to bring your vectorized file (do not forget to vectorize texts) Type: illustrator, svg, dxf.\r\n \r\nUsed materials:\r\n This machine can cut mainly vinyl, reflective vinyl, flex.\r\n", spec: "Accepted media widths: from 50 mm to 700mm\r\nCutting speed: 50 cm / sec\r\nMechanical resolution: 0.0125 mm / step\r\n", slug: "vinyl-cutter"},
|
||||
{name: "Shopbot / Milling", description: "The PRS ShopBot standard digital milling machine\r\nGeneral information\r\nThis machine is a milling machine 3 perfect axes for the machining of large pieces. The creation of a chair or furniture to construction of a house or a huge assembly, ShopBot opens many doors to your imagination! \r\nMachinable materials\r\nThe main machinable materials are wood, plastic, brass and many others.\r\nThis machine doesn't machine metals.\r\n", spec: "Maximum working area: 2440x1220x150 (Z) mm \r\nSoftware used: Partworks 2D & 3D\r\nMechanical resolution: 0,015 mm\r\nPosition accuracy: +/- 0,127mm\r\nAccepted formats: DXF, STL \r\n", slug: "shopbot-large-millingmachine"},
|
||||
{name: "3D Printer", description: "The utimaker is a low cost 3D printer using FDM technology (Fused Deposition Modeling) with thermoplastic extrusion.\r\nIt is an ideal machine to quickly create 3D prototypes in different colors.\r\n", spec: "Maximum working area: 210x210x220mm \r\nMechanical resolution: 0,02 mm \r\nTolerance: +/- 0,05 \r\nSoftware used: Cura\r\nFile Formats: STL \r\nUsed materials PLA (in stock).", slug: "3D printer"},
|
||||
{name: "Small milling machine", description: "Digital milling Modela Roland MDX-20\r\nGeneral information\r\nThis machine is used for machining and accurate 3D scanning. It mainly allows to machine printed circuits and small parts. The small diameter cutters used (Ø 0.3 mm to Ø 6mm) induces some time machining can take (> 12 hours), so this milling machine can be left overnight autonomously to obtain the precise machining at FabLab.\r\nMachinable materials:\r\nThe main machinable materials are wood, plaster, resin, machinable wax, copper.\r\n", spec: "Board size X / Y : 220 mm x 160 mm\r\nMaximum workload: 203,2 mm (X), 152,4 mm (Y), 60,5 mm (Z)\r\nPprecision machining: 0,00625 mm\r\nScanner precision adjustable from 0.05 to 5 mm (axes X,Y) and 0,025 mm (Z axis)\r\nSpeed of analysis (scanning): 4-15 mm/sec\r\n \r\n \r\nSoftware used for milling: Roland Modela player 4 \r\nSoftware used for machining printed circuit: Cad.py (linux)\r\nSupported formats: STL, PNG 3D\r\nFExport format of the scanned data: DXF, VRML, STL, 3DMF, IGES, Grayscale, Point Group and BMP\r\n", slug: "small-milling-machine"}
|
||||
])
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user