Commit 66a772a2 authored by Sebastian Castro's avatar Sebastian Castro
Browse files

Merge remote-tracking branch 'origin/i18n'

parents 8f4dc9f5 f45ceb05
......@@ -15,7 +15,7 @@ if ($('#page-content.api').length > 0)
});
$('.select-categories').select2({
placeholder: "Selectionnez une ou plusieurs catégories",
placeholder: t('js.api.placeholder'),
allowClear: true
});
......@@ -76,5 +76,4 @@ if ($('#page-content.api').length > 0)
ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));
return ret.join('&');
}
}
}
\ No newline at end of file
......@@ -77,7 +77,7 @@ class RegistrationFormType extends AbstractType
], $this->mergeOptions))
->add('newsletterFrequency', $choiceType, array_merge([
'label' => 'form.newsletterFrequency',
'translation_domain' => 'SonataUserBundle',
'translation_domain' => 'messages',
'choices' => [
'commons.every.week' => 1,
'commons.every.month' => 2,
......
......@@ -10,6 +10,7 @@ use Sonata\CoreBundle\Model\Metadata;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Twig\Environment;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* @author Thomas Rabaix <thomas.rabaix@sonata-project.org>
......@@ -27,13 +28,20 @@ class RecentElementsBlockService extends AbstractBlockService
* @param EngineInterface $templating
* @param Pool $adminPool
*/
public function __construct(Environment $twig, DocumentManager $dm, Pool $adminPool = null)
public function __construct(Environment $twig, DocumentManager $dm, Pool $adminPool = null, TranslatorInterface $t)
{
$this->manager = $dm;
$this->adminPool = $adminPool;
parent::__construct($twig);
$this->t = $t;
}
private function trans($key, $params = [])
{
return $this->t->trans($key, $params, 'admin');
}
/**
* {@inheritdoc}
*/
......@@ -62,7 +70,7 @@ class RecentElementsBlockService extends AbstractBlockService
{
$resolver->setDefaults([
'number' => 5,
'title' => 'Derniers elements', // TODO translate
'title' => $this->trans('elements.recent_elements'),
'class' => '',
'filterStatus' => 0,
'template' => 'admin/blocks/block_recent_elements.html.twig',
......
......@@ -24,36 +24,44 @@
];
var displayFilter = function(fieldData) {
result = fieldData.field ? "Champ utilisé : " + fieldData.field : "Veuillez choisir le champ à utiliser" // TODO translate
result = fieldData.field ? t('js.filters_builder.used_field', {field: fieldData.field}) : t('js.filters_builder.choose_field')
return { field: result };
}
var templates = {
taxonomy: function(fieldData) { return { field: 'Personnaliser ce filtre dans le menu des catégories' }; }, // TODO translate
taxonomy: function(fieldData) { return { field: t('js.filters_builder.customize_field') }; },
gogo_date: displayFilter,
gogo_number: displayFilter,
};
var fieldAttr = { label: "Nom du champ à utiliser", options: fieldsChoices} // TODO translate
var contractedAttr = { label: "Filtre replié par defaut", type: 'checkbox'} // TODO translate
var dateViews = { "day": "Jour", "week": "Semaine", "month": "Mois", "year": "Année", "range": "Plage" } // TODO translate
var fieldAttr = { label: t('js.filters_builder.field_name'), options: fieldsChoices}
var contractedAttr = { label: t('js.filters_builder.contracted_field'), type: 'checkbox'}
var dateViews = { "day": t('js.filters_builder.date_views.day'),
"week": t('js.filters_builder.date_views.week'),
"month": t('js.filters_builder.date_views.month'),
"year": t('js.filters_builder.date_views.year'),
"range": t('js.filters_builder.date_views.range')
}
var fieldsAttrs = {
taxonomy: {},
gogo_date: {
field: fieldAttr,
fieldEnd: { label: "Champ pour la Date de fin (optionel)", options: fieldsChoices}, // TODO translate
fieldEnd: { label: t('js.filters_builder.field_end'), options: fieldsChoices},
contracted: contractedAttr,
multiday: { label: "Plusieurs jours selectionnable", type: 'checkbox' }, // TODO translate
multiday: { label: t('js.filters_builder.multiday'), type: 'checkbox' },
views: { label: "Hidden Views" },
select_views: { label: "Vues (Ctrl + Click)", options: dateViews, multiple: "multiple" }, // TODO translate
defaultView: { label: "Vue par défaut", options: dateViews }, // TODO translate
select_views: { label: t('js.filters_builder.select_views'), options: dateViews, multiple: "multiple" },
defaultView: { label: t('js.filters_builder.default_view'), options: dateViews },
},
gogo_number: {
field: fieldAttr,
contracted: contractedAttr,
min: {label: "min", type: "number", required: "true", value: "0"},
max: {label: "max", type: "number", required: "true", value: "100"},
step: {label: "step", type: "number", required: "true", value: "1"},
subtype: {label: "Type", options: { 'slider': 'Slider', 'value': 'Valeur' }} // TODO translate
min: {label: t('js.filters_builder.min'), type: "number", required: "true", value: "0"},
max: {label: t('js.filters_builder.max'), type: "number", required: "true", value: "100"},
step: {label: t('js.filters_builder.step'), type: "number", required: "true", value: "1"},
subtype: {label: t('js.filters_builder.type'), options: {
'slider': t('js.filters_builder.options.slider'),
'value': t('js.filters_builderoptions.value')
}}
}
};
......@@ -70,7 +78,7 @@
controlOrder: ['taxonomy', 'gogo_date', 'gogo_number', 'header', 'paragraph'],
disabledAttrs: ['required', 'name', 'access', 'placeholder', 'value', 'className', 'inline', 'toggle', 'description', 'other', 'multiple'],
formData: {{ filtersData|json_encode|raw }},
roles: { 1: "Administrateur" }, // TODO translate ?
roles: { 1: t('js.form_builder.roles.1') },
typeUserAttrs: fieldsAttrs
});
......@@ -102,8 +110,8 @@
// Changes icons and icones helpers
$('a[type=remove].icon-cancel').removeClass('icon-cancel').addClass('fa fa-trash-alt');
$('a[type=copy].icon-copy').attr('title', 'Dupliquer'); // TODO translate
$('a[type=edit].icon-pencil').attr('title', 'Editer/Masquer'); // TODO translate
$('a[type=copy].icon-copy').attr('title', t('form_builder.copy_icon'));
$('a[type=edit].icon-pencil').attr('title', t('form_builder.edit_icon'));
}, 300);
});
}
......
......@@ -49,7 +49,7 @@
var taxonomy = {{ form.vars.attr["data-options"]|raw }};
var mappingOptionNameToId = {}
var formData = [{ id: "", text: "Selectionnez une catégorie existant ou entrez le nom d'une nouvelle catégorie à créer", disabled: true}] // TODO Translation
var formData = [{ id: "", text: t('mapping_taxonomy.selectCategory'), disabled: true}]
function recursivelyAddOption(category, parentOption)
{
......@@ -79,7 +79,7 @@
if ($(data).filter(function() {
return this.text.localeCompare(term)===0;
}).length===0) {
return {id: `@create:${term}`, text: term + ' (Sera créé au moment de sauvegarder)'}; // TODO Translation
return {id: `@create:${term}`, text: t('js.mapping_taxonomy.createTerm', {term: term}) };
}
},
multiple: true
......@@ -98,7 +98,7 @@
}
else if (Object.keys(formData).filter(v => [newCategoryId, newCategoryIdIfCreated].includes(v)).length === 0) {
newCategoryId = newCategoryIdIfCreated
formData.push({id: newCategoryId, text: originCategoryName + ' (Sera créé au moment de sauvegarder)'}) // TODO Translation
formData.push({id: newCategoryId, text: t('js.mapping_taxonomy.createTerm', {term: originCategoryName}) });
}
const input = $parent.find('.category-selector:not(.select2-container)')
input.val(newCategoryId).trigger('change');
......
{% extends "page-layout.html.twig" %}
{% trans_default_domain 'admin' %}
{% set pageName = 'api' %}
{% set navTitle = "Configurer une API" %} {# TODO Translation #}
{% set navTitle = 'api_ui._label'|trans %}
{% block title %}Configurer une API{% endblock %} {# TODO Translation #}
{% block title %}{{ 'api_ui._label'|trans }}{% endblock %}
{% block stylesheets %}
......@@ -17,22 +18,22 @@
{# BODY CONTENT #}
{% block body_content %}
<section>
<h1>Accédez aux données via une API</h1> {# TODO Translation #}
<h1>{{ 'api_ui.title'|trans }}</h1>
{# FORMAT #}
<p class="format-container">
<span class="forma-label">Format :</span> {# TODO Translation #}
<span class="forma-label">{{ 'api_ui.format'|trans }}</span>
<input name="format" type="radio" id="format-json" data-value="json" checked class="url-update" />
<label for="format-json">Json</label>
<label for="format-json">{{ 'api_ui.json'|trans }}</label>
<input name="format" type="radio" id="format-jsonld" data-value="jsonld" class="url-update" />
<label for="format-jsonld">Json-LD (Sémantique)</label> {# TODO Translation #}
<label for="format-jsonld">{{ 'api_ui.jsonld'|trans }}</label>
</p>
{# CATEGORIES #}
<div class="col s12 option-container">
<input type="checkbox" name="use-categories" id="use-categories" checked class="url-update" />
<label id="label-use-categories" for="use-categories">Restreindre par categories</label> {# TODO Translation #}
<label id="label-use-categories" for="use-categories">{{ 'api_ui.use_categories'|trans }}</label>
</div>
<div class="select-categories-container">
<select class="select-categories browser-default url-update" multiple>
......@@ -44,30 +45,30 @@
<div class="col s12 option-container">
<input type="checkbox" name="include-external" id="include-external" checked class="url-update" />
<label id="label-include-external" for="include-external">Inclure les sources externes de la base de donnée</label> {# TODO Translation #}
<label id="label-include-external" for="include-external">{{ 'api_ui.include_external'|trans }}</label>
</div>
{# BOUNDS #}
<div class="col s12 option-container">
<input type="checkbox" name="use-bounds" id="use-bounds" checked class="url-update" />
<label id="label-use-bounds" for="use-bounds">Restreindre sur une zone géographique (dessinez un rectangle sur la carte)</label> {# TODO Translation #}
<label id="label-use-bounds" for="use-bounds">{{ 'api_ui.use_bounds'|trans }}</label>
</div>
<div id="map-bounds-select"></div>
{# LIMIT #}
<div class="col s12 option-container">
<input type="checkbox" name="use-limit" id="use-limit" class="url-update" checked/>
<label id="label-use-limit" for="use-limit">Limiter le nombre de résultat</label> {# TODO Translation #}
<label id="label-use-limit" for="use-limit">{{ 'api_ui.use_limit'|trans }}</label>
<input type="number" id="limit-input" class="url-update" value="100"/>
</div>
{# URL #}
<h2>Url de l'API</h2>
<h2>{{ 'api_ui.api_url'|trans }}</h2>
<div class="col s12 input-field">
<input type="text" id="api-url" onClick="this.setSelectionRange(0, this.value.length)"/>
</div>
<button id="test-api" class="btn btn-primary">Tester</button> {# TODO Translation #}
<button id="test-api" class="btn btn-primary">{{ 'api_ui.test'|trans }}</button>
</section>
......@@ -82,7 +83,4 @@
var apiUrlBase = "{{ url('gogo_api_elements_index') }}";
</script>
{% endblock %}
{% endblock %}
\ No newline at end of file
{% extends "bundles/FOSUserBundle/layout.html.twig" %}
{% set pageName = 'register with-section' %}
{% set navTitle = "Créer un compte" %} {# TODO Translation #}
{% set navTitle = 'commons.register'|trans %}
{% block body_content %}
<h1 class="panel-title">{{ 'title_user_registration'|trans({}, 'SonataUserBundle') }}</h1>
......@@ -22,20 +22,20 @@
<div class="input-field col s12">
<i class="material-icons gogo-icon-mail prefix"></i>
{{ form_widget(form.email, {'id': 'input-email', 'attr': {'class': 'validate required'}}) }}
<label for="input-email" class="gogo-form-label">Adresse e-mail</label> {# TODO Translation #}
<label for="input-email" class="gogo-form-label">{{ "commons.email"|trans }}</label>
</div>
<div class="error">{{ form_errors(form.plainPassword.first) }}</div>
<div class="input-field col s12">
<i class="material-icons gogo-icon-lock prefix"></i>
{{ form_widget(form.plainPassword.first, {'id': 'input-plainPassword-1', 'attr': {'class': 'validate required'}}) }}
<label for="input-plainPassword-1" class="gogo-form-label">Mot de passe</label> {# TODO Translation #}
<label for="input-plainPassword-1" class="gogo-form-label">{{ "commons.password"|trans }}</label>
</div>
<div class="error">{{ form_errors(form.plainPassword.second) }}</div>
<div class="input-field col s12">
<i class="material-icons gogo-icon-lock prefix"></i>
{{ form_widget(form.plainPassword.second, {'id': 'input-plainPassword-2', 'attr': {'class': 'validate required'}}) }}
<label for="input-plainPassword-2" class="gogo-form-label">Retapez votre mot de passe</label> {# TODO Translation #}
<label for="input-plainPassword-2" class="gogo-form-label">{{ "commons.check_password"|trans }}</label>
</div>
</section>
<div class="divider"></div>
......@@ -49,7 +49,7 @@
<div class="input-field col s12">
<i class="material-icons gogo-icon-marker-symbol prefix"></i>
{{ form_widget(form.location, {'id': 'input-location', 'attr': {'class': 'validate'}}) }}
<label for="input-location" class="gogo-form-label">Votre adresse ou votre ville</label> {# TODO Translation #}
<label for="input-location" class="gogo-form-label">{{ "commons.location"|trans }}</label>
</div>
{#<i class="material-icons gogo-icon-filters-1 range-icon-prefix"></i>
......
......@@ -3,7 +3,7 @@
{% block fos_user_content %}
<div class="panel">
<form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request">
<h1>Mot de passe oublié</h1> {# TODO Translation #}
<h1>{{ 'sonata.user.user.forgottedPassword'|trans({}, 'admin') }}</h1>
<div>
{% if invalid_username is defined %}
<p>{{ 'resetting.request.invalid_username'|trans({'%username%': invalid_username}, 'FOSUserBundle') }}</p>
......
{% extends 'HWIOAuthBundle::layout.html.twig' %}
{% trans_default_domain 'admin' %}
{% block hwi_oauth_content %}
......@@ -6,7 +7,7 @@
{% if error is defined and error %}
<div class="row">
<div class="col-md-12 alert alert-danger text-center">
<span class="error">{{ error }}</span> {# TODO Translation ? #}
<span class="error">{{ error }}</span>
</div>
</div>
{% endif %}
......@@ -14,9 +15,9 @@
{# HWIOAuthBundle integration #}
<ul class="top-social">
<li><a class="#" href="{{ hwi_oauth_login_url('facebook') }}">Se connecter avec Facebook</a></li> {# TODO Translation #}
<li><a class="#" href="{{ hwi_oauth_login_url('gplus') }}">Se connecter avec Google</a></li> {# TODO Translation #}
<li><a class="#" href="{{ hwi_oauth_login_url('communs') }}">Se connecter avec Les communs</a></li> {# TODO Translation #}
<li><a class="#" href="{{ hwi_oauth_login_url('facebook') }}">{{ 'sonata.user.user.login_with'|trans({'%provider': 'Facebook'}) }}</a></li>
<li><a class="#" href="{{ hwi_oauth_login_url('gplus') }}">{{ 'sonata.user.user.login_with'|trans({'%provider': 'Google'}) }}</a></li>
<li><a class="#" href="{{ hwi_oauth_login_url('communs') }}">{{ 'sonata.user.user.login_with'|trans({'%provider': 'Les communs'}) }}</a></li>
</ul>
{% endblock hwi_oauth_content %}
......@@ -60,19 +60,19 @@
{% spaceless %}
<a class="logo" href="{{ path('sonata_admin_dashboard') }}">
<img src="{{ asset('img/default-icon.png') }}">
<span>GoGoCarto Administration</span> {# TODO Translation #}
<span>{{ 'dashboard._label'|trans }}</span>
{% set newMsgsCount = new_msgs_count() %}
{% if newMsgsCount > 0 %}
<label class="label label-info" style="margin-left: 6px">
<i class="fa fa-bell" style="margin-right: 3px;"></i>
{{ newMsgsCount }} {{ newMsgsCount == 1 ? ' message' : ' messages' }} {# TODO Translation plurals #}
{{ 'dashboard.messages'|trans({'%count%': newMsgsCount}) }}
</label>
{% endif %}
{% set newErrorsCount = errors_count() %}
{% if newErrorsCount > 0 %}
<label class="label label-danger" style="margin-left: 6px">
<i class="fa fa-warning" style="margin-right: 3px;"></i>
{{ newErrorsCount }} {{ newErrorsCount == 1 ? 'erreur' : 'erreurs' }} {# TODO Translation plurals #}
{{ 'dashboard.errors'|trans({'%count%': newErrorsCount}) }}
</label>
{% endif %}
......@@ -107,8 +107,8 @@
</li>
{% if use_as_saas and is_granted("ROLE_SUPER_ADMIN") and not is_root_project() %}
<li>
<a href="{{ path('gogo_project_delete_my_project') }}" onclick="return confirm('Cette action ne peux pas être annulée. Vous allez supprimer entièrement votre projet. Etes vous sur de vouloir continuer?')"> {# TODO translate #}
<button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i><span>Supprimer ce projet</span></button> {# TODO translate #}
<a href="{{ path('gogo_project_delete_my_project') }}" onclick="return confirm('{{ 'dashboard.confirm'|trans }}')">
<button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i><span>{{ 'dashboard.delete'|trans }}</span></button>
</a>
</li>
{% endif %}
......
......@@ -12,6 +12,6 @@
text-transform: uppercase;
letter-spacing: 1px;
border: none;
background-color: {{ config.primaryColor }};">Voir la carte près de chez vous</button> {# TODO Translation #}
background-color: {{ config.primaryColor }};">{{ 'emails.show_map'|trans }}</button>
</a>
{% endif %}
\ No newline at end of file
......@@ -162,11 +162,11 @@ function submitAjaxLogin()
}
else
{
$('.error-message').text("Les identifiants de connexion ne sont pas corrects").show(); // TODO translate
$('.error-message').text(t('js.login.wrong_id')).show();
}
},
error: function(data, status, object){
$('.error-message').text("Une erreur s'est produite lors de la tentative de connexion").show(); // TODO translate
$('.error-message').text(t('js.login.exception')).show();
}
});
}
......
......@@ -23,7 +23,7 @@
{% endif %}
{% if config.user.loginWithFacebook and oauth_facebook != 'disabled' %}
<a class="oauth-btn waves-effect waves-light facebook" href="{{ hwi_oauth_login_url('facebook') }}"><i class="icon gogo-icon-facebook left"></i>Facebook</a>
<p class="facebook-alert">ATTENTION ! Si votre mail est privé sur Facebook, vous ne serez pas informé du l'évolution de vos contributions</p> {# TODO Translation #}
<p class="facebook-alert"{{ 'sonata.user.user.facebook_warning'|trans }}></p>
{% endif %}
{#<a class="oauth-btn waves-effect waves-light yahoo" href="{{ hwi_oauth_login_url('yahoo') }}"><i class="icon gogo-icon-yahoo left"></i>Se connecter avec Yahoo</a>#}
</div>
......
......@@ -17,7 +17,7 @@ config_infobar:
distance: "Si une adresse a été rentrée, distance entre le point et cette adresse"
isPending: "Raccourci pour status == En attente (modifs ou ajout)"
isDeleted: "Raccourci pour status = Refusé ou Supprimé"
colorOptionId: "L'id de la categorie qui donne la couleur principale de cet élément"
colorOptionId: "L'id de la catégorie qui donne la couleur principale de cet élément"
images: "Tableau des urls des différentes images"
createdAt: "Date de la création dans la base de donnée"
updatedAt: "Date de la dernière mise à jour"
......@@ -142,6 +142,7 @@ elements:
_label: "Éléments"
proposedBy: "Proposé par <u>{name}</u>"
proposedAt: "le {date}"
recent_elements: "Derniers éléments"
fields:
name: "Nom"
newsletterFrequency: "Réception newsletter"
......@@ -411,7 +412,7 @@ imports:
newTaxonomyToMap: "Nouvelles catégories à mapper"
deletedCount: "{count} localement supprimés"
elementsMissingGeoCount: "{count} sans géoloc"
elementsMissingTaxoCount: "{count} sans categories"
elementsMissingTaxoCount: "{count} sans catégories"
elementsPreventImportedNoTaxo: "{count} non importés car sans catégories"
# templates/admin/partials/import/list_refresh_frequency.html.twig
......@@ -570,7 +571,7 @@ config_home:
backgroundImage: "Image de fond (le nom du fichier ne doit pas contenir d'espaces ou de caractères spéciaux)"
backgroundImage_placeholder: "Sélectionnez une image déjà importée, ou ajoutez en une !"
home:
displayCategoriesToPick: "Afficher les catégories principales selectionnables pour la recherche"
displayCategoriesToPick: "Afficher les catégories principales sélectionnables pour la recherche"
addElementHintText: "Texte au dessus du bouton \"Ajouter un élément\""
addElementHintText_placeholder: "Exemple: \"Aidez nous à renrichir la base de donnée en ajoutant un élément !\""
seeMoreButtonText: "Texte pour inviter à scroller (si des bandeaux de la page d'accueil existent)"
......@@ -663,12 +664,12 @@ categories:
Vous pouvez avoir plusieurs Groupes de catégories en parrallèle. Pour cela créez un nouveau groupe, enregistrez, puis ajoutez lui ensuite des catégories</br></br>
Une catégorie peut elle même contenir un sous groupe avec des sous catégories à l''intérieur. Lorsque vous éditer une catégorie, en bas de la page vous pouvez y ajouter un sous groupe puis le remplir avec de nouvelles catégories.</br></br>
<b>(Groupe) GROUPE DE CATEGORIES 1</b>
<b>(Groupe) GROUPE DE CATÉGORIES 1</b>
<ul>
<li>Catégorie 1</li>
<li>Catégorie 2</li>
</ul>
<b>(Groupe) GROUPE DE CATEGORIES 2</b>
<b>(Groupe) GROUPE DE CATÉGORIES 2</b>
<ul>
<li>Catégorie 1</li>
<li>Catégorie 2</li>
......@@ -693,7 +694,7 @@ categories:
isMandatory: "Choix obligatoire"
isMandatory_help: "Une catégorie de ce groupe doit être obligatoirement selectionnée"
singleOption: "Choix unique"
singleOption_help: "Une seule catégorie est selectionnable à la fois"
singleOption_help: "Une seule catégorie est sélectionnable à la fois"
enableDescription: "Activer la description des catégories"
enableDescription_help: "On pourra renseigner un texte pour décrire chaque catégorie. Par example, pour un catégorie Agriculture, on pourrait ajouter comme texte \"Maraîchage, produits transformés...\""
descriptionLabel: Label pour le champ de description
......@@ -1112,6 +1113,9 @@ news:
sonata.user.user:
_label: Utilisateurs
forgottedPassword: "Mot de passe oublié"
login_with: "Se connecter avec {provider}"
facebook_warning: "ATTENTION ! Si votre mail est privé sur Facebook, vous ne serez pas informé de l'évolution de vos contributions"
fields:
contributionsCount: Contributions
votesCount: Votes
......@@ -1175,6 +1179,17 @@ config_users:
loginWithFacebook: Activer la connexion avec Facebook
dashboard:
_label: "GoGoCarto Administration"
messages: "{count, plural,
=1 {# message}
other {# messages}
}"
errors: "{count, plural,
=1 {# erreur}
other {# erreurs}
}"
delete: "Supprimer ce projet"
confirm: "Cette action ne peux pas être annulée. Vous allez supprimer entièrement votre projet. Êtes vous sur de vouloir continuer ?"
welcome: >-
<b>Bienvenue dans votre espace Administrateur !</b></br>
L'aventure commence tout juste pour vous, il vous faut maintenant commencer à configurer votre site :)</br>
......@@ -1245,6 +1260,7 @@ config_saas:
newProjectInstructions: "Texte personnalisé affiché en haut du formulaire de création d'un nouveau projet"
emails:
show_map: "Voir la carte près de chez vous"
template:
fields:
active: "Activé"
......@@ -1270,10 +1286,26 @@ emails:
no_subject_or_content: "Pas de sujet ou de contenu pour le mail automatique {config}"
unknown: "Inconnu"
api_ui: # templates/api/api-ui.html.twig
_label: "Configurer une API"
title: "Accédez aux données via une API"
format: "Format :"
json: "JSON"
jsonld: "JSON-LD (Sémantique)"
use_categories: "Restreindre par catégories"
include_external: "Inclure les sources externes de la base de donnée"
use_bounds: "Restreindre sur une zone géographique (dessinez un rectangle sur la carte)"
use_limit: "Limiter le nombre de résultat"
api_url: "Url de l'API"
test: "Tester"
js: # Below keys are available to javascript
import:
source_this_map: "Cette Carte"
api:
placeholder: "Sélectionnez une ou plusieurs catégories"
mapping_ontology: # templates/admin/core_custom/custom-fields/mapping-ontology.html.twig
id: "Identifiant unique (dans l'ancienne base de donnée)"
name: "Titre de la fiche"
......@@ -1307,6 +1339,10 @@ js: # Below keys are available to javascript
primary: "Non éditable"
primary_title: "Ce champ n'est actuellement pas présent dans le formulaire public. Il sera uniquement éditable depuis l'interface administrateur. Vous pouvez modifier le formulaire public pour rendre ce champ éditable par tous"
mapping_taxonomy:
selectCategory: "Sélectionnez une catégorie existante ou entrez le nom d'une nouvelle catégorie à créer"
createTerm: "{term} (Sera créé au moment de sauvegarder)"
element_form:
geocoded_marker_text: Déplacez moi pour préciser la position</br>(au centre du bâtiment)
geocode_error: Erreur lors de la géolocalisation de "{address}"
......@@ -1371,6 +1407,28 @@ js: # Below keys are available to javascript
taxonomy: Filtre Catégories
gogo_date: Filtre Date
gogo_number: Filtre Nombre
used_field: "Champ utilisé : {field}"
choose_field: "Veuillez choisir le champ à utiliser"
customize_field: "Personnaliser ce filtre dans le menu des catégories"
field_name: "Nom du champ à utiliser"
contracted_field: "Filtre replié par défaut"
date_views:
day: "Jour"
week: "Semaine"
month: "Mois"
year: "Année"
range: "Plage"
field_end: "Champ pour la Date de fin (optionel)"
multiday: "Plusieurs jours sélectionnable"
select_views: "Vues (Ctrl + Click)"
default_view: "Vue par défaut"
min: "Mini"
max: "Maxi"
step: "Pas"
type: "Type"
options:
slider: "Slider"
value: "Valeur"
osm_query_builder:
title: Liste des requêtes dans la base OpenStreetMap
\ No newline at end of file
title: Liste des requêtes dans la base OpenStreetMap
......@@ -186,38 +186,39 @@ contributor-login:
error:
#inactive_feature: "Désolé, cette fonctionnalité n'est pas activée pour le moment" # TODO translation pb avec ces chaines ?????
#inactive_iframe: "Désolé, cette fonctionnalité n'est pas disponible à l'intérieur d'une iframe"
admin_only: Attention ! Cette fonctionnalité est reservée aux administrateur
invalid_email: Veuillez renseigner une adresse mail valide
used_email: Oups, un compte avec cette adresse email existe déjà ! Connectez-vous ou utilisez une autre adresse !
oauth: Connectez-vous avec votre compte