Use active record translations for labels

This way we can simplify the way we generate form fields. In some cases,
we also use the human attribute in table headers, which IMHO makes
sense.

I haven't moved all of them: for example, sometimes a label is
different depending on whether it's shown to administrators, valuators,
or users. And I haven't touched the ones related to devise, since I
wasn't sure about possible side effects.

Note I've also removed placeholders when they had the same text as their
labels, since they weren't helpful. On the contrary, the added redundant
text to the form, potentially distracting users.
This commit is contained in:
Javi Martín
2019-10-04 15:29:02 +02:00
parent 1bc66925ab
commit 6fa67b5e53
65 changed files with 277 additions and 342 deletions

View File

@@ -34,7 +34,6 @@ module DocumentsHelper
def render_attachment(builder, document)
klass = document.persisted? || document.cached_attachment.present? ? " hide" : ""
builder.file_field :attachment,
label: t("documents.form.attachment_label"),
label_options: { class: "button hollow #{klass}" },
accept: accepted_content_types_extensions(document.documentable_type.constantize),
class: "js-document-attachment",

View File

@@ -48,7 +48,6 @@ module ImagesHelper
def render_image_attachment(builder, imageable, image)
klass = image.persisted? || image.cached_attachment.present? ? " hide" : ""
builder.file_field :attachment,
label: t("images.form.attachment_label"),
label_options: { class: "button hollow #{klass}" },
accept: imageable_accepted_content_types_extensions,
class: "js-image-attachment",

View File

@@ -32,40 +32,40 @@
</div>
<div>
<%= f.check_box :public_activity, label: t("account.show.public_activity_label") %>
<%= f.check_box :public_activity %>
</div>
<div>
<%= f.check_box :public_interests, label: t("account.show.public_interests_label") %>
<%= f.check_box :public_interests %>
</div>
<% if @account.email.present? %>
<h2><%= t("account.show.notifications") %></h2>
<div>
<%= f.check_box :email_on_comment, label: t("account.show.email_on_comment_label") %>
<%= f.check_box :email_on_comment %>
</div>
<div>
<%= f.check_box :email_on_comment_reply, label: t("account.show.email_on_comment_reply_label") %>
<%= f.check_box :email_on_comment_reply %>
</div>
<div>
<%= f.check_box :newsletter, label: t("account.show.subscription_to_website_newsletter_label") %>
<%= f.check_box :newsletter %>
</div>
<div>
<%= f.check_box :email_digest, label: t("account.show.email_digest_label") %>
<%= f.check_box :email_digest %>
</div>
<div>
<%= f.check_box :email_on_direct_message, label: t("account.show.email_on_direct_message_label") %>
<%= f.check_box :email_on_direct_message %>
</div>
<% end %>
<% if @account.official_level == 1 %>
<div>
<%= f.check_box :official_position_badge, label: t("account.show.official_position_badge_label") %>
<%= f.check_box :official_position_badge %>
</div>
<% end %>
@@ -74,13 +74,13 @@
<% if feature?("user.recommendations_on_debates") %>
<div>
<%= f.check_box :recommended_debates, label: t("account.show.show_debates_recommendations") %>
<%= f.check_box :recommended_debates %>
</div>
<% end %>
<% if feature?("user.recommendations_on_proposals") %>
<div>
<%= f.check_box :recommended_proposals, label: t("account.show.show_proposals_recommendations") %>
<%= f.check_box :recommended_proposals %>
</div>
<% end %>
<% end %>

View File

@@ -8,8 +8,6 @@
<% date_started_at = @banner.post_started_at.present? ? I18n.localize(@banner.post_started_at) : "" %>
<div class="small-12 medium-3 column">
<%= f.text_field :post_started_at,
label: t("admin.banners.banner.post_started_at"),
placeholder: t("admin.banners.banner.post_started_at"),
value: date_started_at,
class: "js-calendar-full",
id: "post_started_at" %>
@@ -17,8 +15,6 @@
<% date_ended_at = @banner.post_ended_at.present? ? I18n.localize(@banner.post_ended_at) : "" %>
<div class="small-12 medium-3 column end">
<%= f.text_field :post_ended_at,
label: t("admin.banners.banner.post_ended_at"),
placeholder: t("admin.banners.banner.post_ended_at"),
value: date_ended_at,
class: "js-calendar-full",
id: "post_ended_at" %>
@@ -29,25 +25,19 @@
<%= f.translatable_fields do |translations_form| %>
<div class="small-12 medium-6 column">
<%= translations_form.text_field :title,
placeholder: t("admin.banners.banner.title"),
data: { js_banner_title: "js_banner_title" },
label: t("admin.banners.banner.title") %>
data: { js_banner_title: "js_banner_title" } %>
</div>
<div class="small-12 column">
<%= translations_form.text_field :description,
placeholder: t("admin.banners.banner.description"),
data: { js_banner_description: "js_banner_description" },
label: t("admin.banners.banner.description") %>
data: { js_banner_description: "js_banner_description" } %>
</div>
<% end %>
</div>
<div class="row">
<div class="small-12 medium-6 column">
<%= f.text_field :target_url,
label: t("admin.banners.banner.target_url"),
placeholder: t("admin.banners.banner.target_url") %>
<%= f.text_field :target_url %>
</div>
</div>

View File

@@ -11,8 +11,8 @@
<table>
<thead>
<tr id="<%= dom_id(banner) %>">
<th scope="col"><%= t("admin.banners.banner.post_started_at") %></th>
<th scope="col"><%= t("admin.banners.banner.post_ended_at") %></th>
<th scope="col"><%= Banner.human_attribute_name(:post_started_at) %></th>
<th scope="col"><%= Banner.human_attribute_name(:post_ended_at) %></th>
<th scope="col" class="small-4"><%= t("admin.actions.actions") %></th>
</tr>
</thead>

View File

@@ -7,10 +7,7 @@
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="small-12 medium-6 column end">
<%= translations_form.text_field :name,
label: t("admin.budget_groups.form.name"),
maxlength: 50,
placeholder: t("admin.budget_groups.form.name") %>
<%= translations_form.text_field :name, maxlength: 50 %>
</div>
<% end %>
</div>
@@ -18,10 +15,7 @@
<% if @group.persisted? %>
<div class="row">
<div class="small-12 medium-6 column">
<%= f.select :max_votable_headings,
(1..@group.headings.count),
label: t("admin.budget_groups.max_votable_headings"),
placeholder: t("admin.budget_groups.max_votable_headings") %>
<%= f.select :max_votable_headings, (1..@group.headings.count) %>
</div>
</div>
<% end %>

View File

@@ -14,7 +14,7 @@
<thead>
<tr id="<%= dom_id(@budget) %>">
<th><%= t("admin.budget_groups.name") %></th>
<th><%= t("admin.budget_groups.max_votable_headings") %></th>
<th><%= Budget::Group.human_attribute_name(:max_votable_headings) %></th>
<th><%= t("admin.budget_groups.headings_name") %></th>
<th><%= t("admin.budget_groups.headings_edit") %></th>
<th><%= t("admin.actions.actions") %></th>

View File

@@ -7,42 +7,27 @@
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="small-12 medium-6 column end">
<%= translations_form.text_field :name,
label: t("admin.budget_headings.form.name"),
maxlength: 50,
placeholder: t("admin.budget_headings.form.name") %>
<%= translations_form.text_field :name, maxlength: 50 %>
</div>
<% end %>
</div>
<div class="row">
<div class="small-12 medium-6 column">
<%= f.text_field :price,
label: t("admin.budget_headings.form.amount"),
maxlength: 8,
placeholder: t("admin.budget_headings.form.amount") %>
<%= f.text_field :price, maxlength: 8 %>
<%= f.text_field :population,
label: t("admin.budget_headings.form.population"),
maxlength: 8,
placeholder: t("admin.budget_headings.form.population"),
data: { toggle_focus: "population-info" },
hint: t("admin.budget_headings.form.population_info") %>
<%= f.text_field :latitude,
label: t("admin.budget_headings.form.latitude"),
maxlength: 22,
placeholder: "latitude" %>
<%= f.text_field :longitude,
label: t("admin.budget_headings.form.longitude"),
maxlength: 22,
placeholder: "longitude" %>
<%= f.text_field :latitude, maxlength: 22 %>
<%= f.text_field :longitude, maxlength: 22 %>
<p class="help-text" id="budgets-coordinates-help-text">
<%= t("admin.budget_headings.form.coordinates_info") %>
</p>
<%= f.check_box :allow_custom_content, label: t("admin.budget_headings.form.allow_content_block") %>
<%= f.check_box :allow_custom_content %>
<p class="help-text" id="budgets-content-blocks-help-text">
<%= t("admin.budget_headings.form.content_blocks_info") %>
</p>

View File

@@ -11,10 +11,10 @@
<table>
<thead>
<tr id="<%= dom_id(@group) %>">
<th><%= t("admin.budget_headings.name") %></th>
<th><%= t("admin.budget_headings.form.amount") %></th>
<th><%= t("admin.budget_headings.form.population") %></th>
<th><%= t("admin.budget_headings.form.allow_content_block") %></th>
<th><%= Budget::Heading.human_attribute_name(:name) %></th>
<th><%= Budget::Heading.human_attribute_name(:price) %></th>
<th><%= Budget::Heading.human_attribute_name(:population) %></th>
<th><%= Budget::Heading.human_attribute_name(:allow_custom_content) %></th>
<th><%= t("admin.actions.actions") %></th>
</tr>
</thead>

View File

@@ -58,7 +58,7 @@
</div>
<div class="small-12 column">
<%= f.label :valuation_tag_list, t("admin.budget_investments.edit.tags") %>
<%= f.label :valuation_tag_list %>
<div class="tags">
<% @tags.each do |tag| %>
<a class="js-add-tag-link"><%= tag.name %></a>
@@ -72,7 +72,7 @@
</div>
<div class="small-12 column margin-top">
<%= f.label :valuator_ids, t("admin.budget_investments.edit.user_groups") %>
<%= f.label :valuator_ids %>
<ul>
<%= f.collection_check_boxes :valuator_group_ids, @valuator_groups, :id, :name do |group| %>
<li><%= group.label(title: group.object.name) { group.check_box + truncate(group.object.name, length: 60) } %></li>
@@ -106,22 +106,19 @@
<div class="small-12 medium-3 column">
<h2 id="incompatible"><%= t("admin.budget_investments.edit.compatibility") %></h2>
<%= f.check_box :incompatible,
title: t("admin.budget_investments.edit.compatibility"),
label: t("admin.budget_investments.edit.mark_as_incompatible") %>
title: t("admin.budget_investments.edit.compatibility") %>
</div>
<% end %>
<div class="small-12 medium-3 column float-left">
<h2 id="selected"><%= t("admin.budget_investments.edit.selection") %></h2>
<%= f.check_box :selected,
title: t("admin.budget_investments.edit.selection"),
label: t("admin.budget_investments.edit.mark_as_selected") %>
title: t("admin.budget_investments.edit.selection") %>
</div>
</div>
<div class="small-12 column">
<%= f.text_field :milestone_tag_list,
value: @investment.milestone_tag_list.sort.join(", "),
label: t("admin.budget_investments.edit.milestone_tags") %>
value: @investment.milestone_tag_list.sort.join(", ") %>
</div>
<div class="small-12 column margin-top">

View File

@@ -9,15 +9,13 @@
<%= f.text_field :starts_at,
value: format_date_for_calendar_form(@phase.starts_at),
class: "js-calendar-full",
id: "start_date",
label: t("admin.budget_phases.edit.start_date") %>
id: "start_date" %>
</div>
<div class="small-12 medium-6 column">
<%= f.text_field :ends_at,
value: format_date_for_calendar_form(@phase.ends_at),
class: "js-calendar-full",
id: "end_date",
label: t("admin.budget_phases.edit.end_date") %>
id: "end_date" %>
</div>
</div>
@@ -27,7 +25,6 @@
<div class="ckeditor">
<%= translations_form.cktext_area :description,
maxlength: Budget::Phase::DESCRIPTION_MAX_LENGTH,
label: t("admin.budget_phases.edit.description"),
hint: t("admin.budget_phases.edit.description_help_text") %>
</div>
</div>
@@ -36,7 +33,6 @@
<div class="ckeditor">
<%= translations_form.cktext_area :summary,
maxlength: Budget::Phase::SUMMARY_MAX_LENGTH,
label: t("admin.budget_phases.edit.summary"),
hint: t("admin.budget_phases.edit.summary_help_text") %>
</div>
</div>
@@ -45,7 +41,7 @@
<div class="row">
<div class="small-12 column margin-top">
<%= f.check_box :enabled, label: t("admin.budget_phases.edit.enabled") %>
<%= f.check_box :enabled %>
<span class="help-text" id="phase-summary-help-text">
<%= t("admin.budget_phases.edit.enabled_help_text") %>

View File

@@ -9,10 +9,7 @@
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="small-12 medium-9 column end">
<%= translations_form.text_field :name,
label: t("activerecord.attributes.budget.name"),
maxlength: Budget.title_max_length,
placeholder: t("activerecord.attributes.budget.name") %>
<%= translations_form.text_field :name, maxlength: Budget.title_max_length %>
</div>
<% end %>
</div>

View File

@@ -1,7 +1,7 @@
<% default_actions.each do |action| %>
<tr>
<td><%= t("admin.dashboard.actions.index.default.#{action}") %></td>
<td><%= t("admin.dashboard.actions.action_type.resource") %></td>
<td><%= Dashboard::Action.human_attribute_name("action_type_resource") %></td>
<td class="text-center"><%= t("admin.dashboard.actions.index.active") %></td>
<td colspan="4">&nbsp;</td>
<td class="text-right">

View File

@@ -6,7 +6,6 @@
<% ::Dashboard::Action.action_types.keys.each do |action_type_value| %>
<span class="margin-right">
<%= f.radio_button :action_type, action_type_value,
label: t("admin.dashboard.actions.action_type.#{action_type_value}"),
data: { toggle: "request_to_administrators short_description" } %>
</span>
<% end %>
@@ -40,7 +39,7 @@
<div class="row expanded margin-top">
<div class="small-12 column">
<%= f.check_box :published_proposal, label: t("admin.dashboard.actions.form.published_proposal") %>
<%= f.check_box :published_proposal %>
<p class="help-text"><%= t("admin.dashboard.actions.form.published_proposal_help_text") %></p>
</div>
</div>

View File

@@ -25,7 +25,7 @@
<% @dashboard_actions.each do |action| %>
<tr id="<%= dom_id(action) %>">
<td><%= action.title %></td>
<td><%= t("admin.dashboard.actions.action_type.#{action.action_type}") %></td>
<td><%= Dashboard::Action.human_attribute_name("action_type_#{action.action_type}") %></td>
<td class="text-center"><%= active_human_readable(action.active) %></td>
<td class="text-center"><%= active_human_readable(action.published_proposal) %></td>
<td class="text-center"><%= number_with_delimiter(action.day_offset, delimiter: ".") %></td>

View File

@@ -71,7 +71,7 @@
<div class="small-12 medium-9 column">
<%= f.label :status %>
<% ::Legislation::DraftVersion::VALID_STATUSES.each do |status| %>
<%= f.radio_button :status, status, label: t("admin.legislation.draft_versions.statuses.#{status}") %>
<%= f.radio_button :status, status %>
<span class="help-text"><%= t("admin.legislation.draft_versions.form.hints.status.#{status}") %></span>
<br>
<% end %>

View File

@@ -37,10 +37,10 @@
<td><%= draft_version.created_at.to_date %></td>
<td>
<% if draft_version.status == "draft" %>
<%= t("admin.legislation.draft_versions.statuses.draft") %>
<%= Legislation::DraftVersion.human_attribute_name(:status_draft) %>
<%= link_to "(#{t(".preview")})", legislation_process_draft_version_path(@process, draft_version) %>
<% else %>
<%= t("admin.legislation.draft_versions.statuses.published") %>
<%= Legislation::DraftVersion.human_attribute_name(:status_published) %>
<% end %>
</td>
<td class="text-center"><%= draft_version.total_comments %></td>

View File

@@ -8,7 +8,7 @@
<%= render "shared/errors", resource: @process %>
<div class="row">
<div class="small-12 column margin-top">
<%= f.check_box :homepage_enabled, label: t("admin.legislation.processes.form.homepage_enabled") %>
<%= f.check_box :homepage_enabled %>
</div>
</div>
@@ -18,7 +18,6 @@
<div class="ckeditor">
<%= translations_form.cktext_area :homepage,
language: I18n.locale,
label: t("admin.legislation.processes.form.homepage"),
ckeditor: { height: 500, toolbar: "admin" },
hint: t("admin.legislation.processes.form.homepage_description") %>
</div>

View File

@@ -20,10 +20,8 @@
<div class="row">
<%= f.translatable_fields do |translations_form| %>
<div class="small-12 medium-9 column end">
<%= translations_form.text_area :title,
rows: 5,
placeholder: t("admin.legislation.questions.form.title_placeholder"),
label: t("admin.legislation.questions.form.title") %>
<%= translations_form.text_area :title, rows: 5,
placeholder: t("admin.legislation.questions.form.title_placeholder") %>
</div>
<% end %>
</div>

View File

@@ -17,8 +17,7 @@
<div class="date-of-birth small-12">
<%= f.date_select :date_of_birth,
prompt: true,
start_year: 1900, end_year: minimum_required_age.years.ago.year,
label: t("admin.local_census_records.form.date_of_birth") %>
start_year: 1900, end_year: minimum_required_age.years.ago.year %>
</div>
</div>

View File

@@ -4,7 +4,7 @@
<%= f.select :segment_recipient, options_for_select(user_segments_options,
@newsletter[:segment_recipient]) %>
<%= f.text_field :subject %>
<%= f.text_field :from, label: t("admin.newsletters.new.from") %>
<%= f.text_field :from %>
<%= f.cktext_area :body, ckeditor: { language: I18n.locale } %>
<div class="margin-top">

View File

@@ -9,8 +9,7 @@
<div class="ckeditor column">
<span class="help-text"><%= t("admin.active_polls.form.description.help_text") %></span>
<%= translations_form.cktext_area :description,
maxlength: ActivePoll.description_max_length,
label: t("admin.active_polls.form.description.text") %>
maxlength: ActivePoll.description_max_length %>
</div>
<% end %>
</div>

View File

@@ -1,13 +1,9 @@
<div class="small-12 medium-6 column">
<%= f.text_field :name,
placeholder: t("admin.booths.new.name"),
label: t("admin.booths.new.name") %>
<%= f.text_field :name %>
</div>
<div class="small-12 medium-6 column clear">
<%= f.text_field :location,
placeholder: t("admin.booths.new.location"),
label: t("admin.booths.new.location") %>
<%= f.text_field :location %>
</div>
<div class="small-12 medium-4 large-3 column clear end">

View File

@@ -17,8 +17,7 @@
<% select_options = Poll.all.map { |p| [p.name, p.id] } %>
<%= f.select :poll_id,
options_for_select(select_options),
prompt: t("admin.questions.index.select_poll"),
label: t("admin.questions.new.poll_label") %>
prompt: t("admin.questions.index.select_poll") %>
</div>
<% end %>
</div>

View File

@@ -35,7 +35,7 @@
</p>
<% if !@question.votation_type.max_votes.nil? %>
<p>
<strong><%= t("question.max_votes") %></strong>
<strong><%= VotationType.human_attribute_name(:max_votes) %></strong>
<br>
<%= @question.votation_type.max_votes %>
</p>
@@ -49,7 +49,7 @@
<% end %>
<% if !@question.votation_type.max_groups_answers.nil? %>
<p>
<strong><%= t("question.max_group_answers") %></strong>
<strong><%= VotationType.human_attribute_name(:max_groups_answers) %></strong>
<br>
<%= @question.votation_type.max_groups_answers %>
</p>

View File

@@ -15,7 +15,7 @@
<div class="small-12 medium-3 column">
<%= f.select :task,
Poll::Shift.tasks.map { |k, v| [t("admin.poll_shifts.#{k}"), k] },
{ prompt: t("admin.poll_shifts.new.select_task"), label: t("admin.poll_shifts.new.task") },
{ prompt: t("admin.poll_shifts.new.select_task") },
class: "js-poll-shifts" %>
</div>

View File

@@ -5,7 +5,7 @@
<th><%= t("admin.poll_shifts.new.date") %></th>
<th><%= t("admin.poll_shifts.new.officer") %></th>
<th><%= t("admin.poll_shifts.new.table_email") %></th>
<th><%= t("admin.poll_shifts.new.task") %></th>
<th><%= Poll::Shift.human_attribute_name(:task) %></th>
<th class="small-3"><%= t("admin.poll_shifts.new.shift") %></th>
</tr>
</thead>

View File

@@ -22,8 +22,7 @@
<h3><%= t("admin.site_customization.pages.form.options") %></h3>
<%= f.label :status %>
<% ::SiteCustomization::Page::VALID_STATUSES.each do |status| %>
<%= f.radio_button :status, status,
label: t("admin.site_customization.pages.page.status_#{status}") %>
<%= f.radio_button :status, status %>
<br>
<% end %>

View File

@@ -3,7 +3,7 @@
<%= form_for(@tag, url: admin_tags_path, as: :tag) do |f| %>
<div class="small-12 medium-6">
<%= f.text_field :name, placeholder: t("admin.tags.name.placeholder"), label: t("admin.tags.name.placeholder") %>
<%= f.text_field :name %>
</div>
<%= f.submit(t("admin.tags.create"), class: "button success") %>

View File

@@ -2,7 +2,7 @@
<div class="small-12 medium-6 margin-top">
<%= form_for [:admin, @group] do |f| %>
<%= f.text_field :name, label: t("admin.valuator_groups.form.name") %>
<%= f.text_field :name %>
<%= f.submit t("admin.valuator_groups.form.edit"), class: "button success" %>
<% end %>
</div>

View File

@@ -2,7 +2,7 @@
<div class="small-12 medium-6 margin-top">
<%= form_for [:admin, @group] do |f| %>
<%= f.text_field :name, label: t("admin.valuator_groups.form.name") %>
<%= f.text_field :name %>
<%= f.submit t("admin.valuator_groups.form.new"), class: "button success" %>
<% end %>
</div>

View File

@@ -59,7 +59,7 @@
<% end %>
<div class="small-12 column">
<%= f.text_field :location, label: t("budgets.investments.form.location") %>
<%= f.text_field :location %>
</div>
<div class="small-12 column">

View File

@@ -26,9 +26,7 @@
<%= form_for poll, remote: true, data: { type: :json },
url: proposal_dashboard_poll_path(proposal, poll) do |f| %>
<%= f.check_box :results_enabled,
label: t("dashboard.polls.poll.show_results"),
class: "js-submit-on-change" %>
<%= f.check_box :results_enabled, class: "js-submit-on-change" %>
<% end %>
<p class="help-text"><%= t("dashboard.polls.poll.show_results_help") %></p>

View File

@@ -27,7 +27,6 @@
<div class="small-12 column">
<%= f.text_field :tag_list, value: @debate.tag_list.to_s,
label: t("debates.form.tags_label"),
hint: t("debates.form.tags_instructions"),
placeholder: t("debates.form.tags_placeholder"),
data: { js_url: suggest_tags_path },

View File

@@ -23,8 +23,8 @@
<%= form_for [@receiver, @direct_message] do |f| %>
<%= render "shared/errors", resource: @direct_message %>
<%= f.text_field :title, label: t("users.direct_messages.new.title_label") %>
<%= f.text_area :body, label: t("users.direct_messages.new.body_label"), rows: "3" %>
<%= f.text_field :title %>
<%= f.text_area :body, rows: "3" %>
<div class="small-12 medium-4">
<%= f.submit t("users.direct_messages.new.submit_button"), class: "button expanded" %>

View File

@@ -5,32 +5,24 @@
<div class="row">
<div class="small-12 column">
<%= f.text_field :title,
maxlength: Legislation::Proposal.title_max_length,
placeholder: t("proposals.form.proposal_title"),
label: t("proposals.form.proposal_title") %>
<%= f.text_field :title, maxlength: Legislation::Proposal.title_max_length %>
</div>
<%= f.invisible_captcha :subtitle %>
<div class="small-12 column">
<%= f.text_area :summary, rows: 4, maxlength: 200,
label: t("proposals.form.proposal_summary"),
placeholder: t("proposals.form.proposal_summary"),
hint: t("proposals.form.proposal_summary_note") %>
</div>
<div class="ckeditor small-12 column">
<%= f.cktext_area :description,
maxlength: Legislation::Proposal.description_max_length,
ckeditor: { language: I18n.locale },
label: t("proposals.form.proposal_text") %>
ckeditor: { language: I18n.locale } %>
</div>
<div class="small-12 column">
<%= f.text_field :video_url,
placeholder: t("proposals.form.proposal_video_url"),
label: t("proposals.form.proposal_video_url"),
hint: t("proposals.form.proposal_video_url_note") %>
</div>
@@ -45,8 +37,7 @@
</div>
<div class="small-12 medium-6 column">
<%= f.select :geozone_id, geozone_select_options,
include_blank: t("geozones.none"), label: t("proposals.form.geozone") %>
<%= f.select :geozone_id, geozone_select_options, include_blank: t("geozones.none") %>
</div>
<div class="small-12 column">

View File

@@ -20,8 +20,8 @@
<%= form_for @notification do |f| %>
<%= render "shared/errors", resource: @notification %>
<%= f.text_field :title, label: t("proposal_notifications.new.title_label") %>
<%= f.text_area :body, label: t("proposal_notifications.new.body_label"), rows: "3" %>
<%= f.text_field :title %>
<%= f.text_area :body, rows: "3" %>
<%= f.hidden_field :proposal_id, value: @proposal.id %>
<div class="small-12 medium-4">

View File

@@ -9,7 +9,6 @@
<div class="small-12 column">
<%= translations_form.text_field :title,
maxlength: Proposal.title_max_length,
placeholder: t("proposals.form.proposal_title"),
data: { js_suggest_result: "js_suggest_result",
js_suggest: ".js-suggest",
js_url: suggest_proposals_path } %>
@@ -19,7 +18,6 @@
<div class="small-12 column">
<%= translations_form.text_area :summary,
rows: 4, maxlength: 200,
placeholder: t("proposals.form.proposal_summary"),
hint: t("proposals.form.proposal_summary_note") %>
</div>
@@ -91,8 +89,6 @@
<% if current_user.unverified? %>
<div class="small-12 column">
<%= f.text_field :responsible_name,
placeholder: t("proposals.form.proposal_responsible_name"),
label: t("proposals.form.proposal_responsible_name"),
hint: t("proposals.form.proposal_responsible_name_note") %>
</div>
<% end %>

View File

@@ -17,8 +17,7 @@
<div class="row">
<div class="small-12 medium-6 large-4 column">
<%= f.select :retired_reason, retire_proposals_options,
include_blank: t("proposals.retire_form.retired_reason_blank"),
label: t("proposals.retire_form.retired_reason_label") %>
include_blank: t("proposals.retire_form.retired_reason_blank") %>
</div>
</div>

View File

@@ -31,8 +31,7 @@
<%= form_for(@resource, url: new_url_path, method: :get) do |f| %>
<div class="small-12 medium-4">
<%= f.select :geozone_id, geozone_select_options,
include_blank: t("geozones.none"), label: t("map.select_district") %>
<%= f.select :geozone_id, geozone_select_options, include_blank: t("geozones.none") %>
</div>
<div class="actions small-12">

View File

@@ -4,8 +4,8 @@
<div class="row">
<div class="small-12 column">
<%= f.text_field :title, label: t("community.topic.form.topic_title") %>
<%= f.text_area :description, label: t("community.topic.form.topic_text"), rows: "5" %>
<%= f.text_field :title %>
<%= f.text_area :description, rows: "5" %>
<%= f.submit(class: "button", value: t("community.topic.form.#{action_name}.submit_button")) %>
</div>

View File

@@ -18,9 +18,7 @@
<div class="column">
<%= translations_form.hidden_field :title, value: l(Time.current, format: :datetime),
maxlength: Milestone.title_max_length %>
<%= translations_form.text_area :description,
rows: 5,
label: t("tracking.milestones.new.description") %>
<%= translations_form.text_area :description, rows: 5 %>
</div>
<% end %>
</div>

View File

@@ -1,13 +1,15 @@
<% budget = investment.budget %>
<p>
<h3><%= t("valuation.budget_investments.edit.valuation_finished") %></h3>
<h3><%= Budget::Investment.human_attribute_name(:valuation_finished) %></h3>
</p>
<p>
<strong><%= t("valuation.budget_investments.edit.feasibility") %>:</strong>
<%= t("admin.budget_investments.index.feasibility.#{investment.feasibility}") %>
</p>
<p>
<strong><%= t("valuation.budget_investments.edit.feasible_explanation_html") %>:</strong>
<strong>
<%= sanitize(Budget::Investment.human_attribute_name(:unfeasibility_explanation)) %>:
</strong>
<%= investment.unfeasibility_explanation.presence || "-" %>
</p>
<p>
@@ -19,10 +21,12 @@
<%= investment.price_first_year.presence || "-" %>
</p>
<p>
<strong><%= t("valuation.budget_investments.edit.price_explanation_html") %>:</strong>
<strong>
<%= sanitize(Budget::Investment.human_attribute_name(:price_explanation)) %>:
</strong>
<%= investment.price_explanation.presence || "-" %>
</p>
<p>
<strong><%= t("valuation.budget_investments.edit.duration_html") %>:</strong>
<strong><%= sanitize(Budget::Investment.human_attribute_name(:duration)) %>:</strong>
<%= investment.duration.presence || "-" %>
</p>

View File

@@ -30,9 +30,7 @@
<div class="row">
<div class="small-12 column">
<%= f.text_area :unfeasibility_explanation,
label: t("valuation.budget_investments.edit.feasible_explanation_html"),
rows: 3 %>
<%= f.text_area :unfeasibility_explanation, rows: 3 %>
</div>
</div>
@@ -56,15 +54,13 @@
<div class="row">
<div class="small-12 column">
<%= f.text_area :price_explanation,
label: t("valuation.budget_investments.edit.price_explanation_html"),
rows: 3 %>
<%= f.text_area :price_explanation, rows: 3 %>
</div>
</div>
<div class="row">
<div class="small-12 medium-6 column">
<%= f.text_field :duration, label: t("valuation.budget_investments.edit.duration_html") %>
<%= f.text_field :duration %>
</div>
</div>
@@ -73,7 +69,6 @@
<div class="row">
<div class="small-12 medium-8 column">
<%= f.check_box :valuation_finished,
label: t("valuation.budget_investments.edit.valuation_finished"),
id: "js-investment-report-alert",
"data-alert": t("valuation.budget_investments.edit.valuation_finished_alert"),
"data-not-feasible-alert": t("valuation.budget_investments.edit.not_feasible_alert") %>

View File

@@ -194,7 +194,6 @@ ignore_unused:
- "shared.download.*"
- "shared.suggest.*"
- "invisible_captcha.*"
- "admin.site_customization.pages.page.status_*"
- "admin.legislation.processes.process.*"
- "legislation.processes.index.*"
- "stats.budgets.participants_*_phase"

View File

@@ -1,5 +1,6 @@
en:
attributes:
geozone_id: "Scope of operation"
results_enabled: "Show results"
stats_enabled: "Show stats"
advanced_stats_enabled: "Show advanced stats"
@@ -143,19 +144,30 @@ en:
budget_milestone_tags: "Milestone tags"
budget_valuation_tags: "Valuation tags"
help_link: "Help link"
budget/translation:
name: "Name"
budget/investment:
heading_id: "Heading"
title: "Title"
description: "Description"
external_url: "Link to additional documentation"
administrator_id: "Administrator"
location: "Location (optional)"
location: "Location additional info"
organization_name: "If you are proposing in the name of a collective/organization, or on behalf of more people, write its name"
image: "Proposal descriptive image"
image_title: "Image title"
duration: "Time scope"
feasibility_feasible: "Feasible"
feasibility_undecided: "Undefined"
feasibility_unfeasible: "Unfeasible"
incompatible: "Mark as incompatible"
milestone_tag_list: "Milestone tags"
price_explanation: "Price explanation"
selected: "Mark as selected"
unfeasibility_explanation: "Feasibility explanation"
valuation_finished: "Valuation finished"
valuator_ids: "Groups"
valuation_tag_list: "Tags"
budget/investment/translation:
title: "Title"
description: "Description"
@@ -169,6 +181,8 @@ en:
title: "Title"
description: "Description (optional if there's an status assigned)"
publication_date: "Date"
milestone/translation:
description: "Description"
milestone/status:
name: "Name"
description: "Description (optional)"
@@ -179,16 +193,33 @@ en:
progress_bar/kind:
primary: "Primary"
secondary: "Secondary"
budget/group:
max_votable_headings: "Maximum number of headings in which a user can vote"
budget/group/translation:
name: "Group name"
budget/heading:
allow_custom_content: "Allow content block"
latitude: "Latitude (optional)"
longitude: "Longitude (optional)"
name: "Heading name"
price: "Price"
population: "Population"
price: "Amount"
population: "Population (optional)"
budget/heading/translation:
name: "Heading name"
budget/phase:
enabled: "Phase enabled"
ends_at: "End date"
starts_at: "Start date"
budget/phase/translation:
description: "Description"
summary: "Summary"
comment:
body: "Comment"
user: "User"
debate:
author: "Author"
description: "Opinion"
tag_list: "Topics"
terms_of_service: "Terms of service"
title: "Title"
debate/translation:
@@ -199,6 +230,8 @@ en:
title: "Title"
question: "Question"
description: "Description"
responsible_name: "Full name of the person submitting the proposal"
retired_reason: "Reason to retire the proposal"
selected: "Mark as selected"
terms_of_service: "Terms of service"
video_url: "External video URL"
@@ -214,10 +247,23 @@ en:
password_confirmation: "Password confirmation"
password: "Password"
current_password: "Current password"
phone_number: "Phone number"
email_digest: "Receive a summary of proposal notifications"
email_on_comment: "Notify me by email when someone comments on my proposals or debates"
email_on_comment_reply: "Notify me by email when someone replies to my comments"
email_on_direct_message: "Receive emails about direct messages"
newsletter: "Receive by email website relevant information"
official_position: "Official position"
official_position_badge: "Show official position badge"
official_level: "Official level"
phone_number: "Phone number"
public_activity: "Keep my list of activities public"
public_interests: "Keep the labels of the elements I follow public"
recommended_debates: "Show debates recommendations"
recommended_proposals: "Show proposals recommendations"
redeemable_code: "Verification code received via email"
direct_message:
title: "Title"
body: "Message"
organization:
name: "Name of organisation"
responsible_name: "Person responsible for the group"
@@ -228,11 +274,17 @@ en:
geozone_restricted: "Restricted by geozone"
summary: "Summary"
description: "Description"
active_poll/translation:
description: "Description"
poll/booth:
name: "Name"
location: "Location"
poll/translation:
name: "Name"
summary: "Summary"
description: "Description"
poll/question:
poll_id: "Poll"
title: "Question"
summary: "Summary"
description: "Description"
@@ -243,6 +295,11 @@ en:
data: CSV data
poll_id: Poll
officer_assignment_id: Officer assignment
poll/shift:
task: "Task"
proposal_notification:
body: "Message"
title: "Title"
signature_sheet:
signable_type: "Signable type"
signable_id: "Signable ID"
@@ -253,6 +310,8 @@ en:
subtitle: Subtitle
slug: Slug
status: Status
status_draft: "Draft"
status_published: "Published"
title: Title
updated_at: Updated at
more_info_flag: Show in help page
@@ -269,9 +328,20 @@ en:
name: Name
locale: locale
body: Body
tag:
name: "Type the name of the topic"
topic:
title: "Title"
description: "Initial text"
banner:
background_color: Background color
font_color: Font color
post_ended_at: "Post ended at"
post_started_at: "Post started at"
target_url: "Link"
banner/translation:
title: "Title"
description: "Description"
legislation/process:
title: Process Title
summary: Summary
@@ -291,17 +361,26 @@ en:
result_publication_date: Final result publication date
background_color: Background color
font_color: Font color
homepage_enabled: "Homepage enabled"
legislation/process/translation:
title: Process Title
summary: Summary
description: Description
additional_info: Additional info
homepage: "Description"
milestones_summary: Summary
legislation/proposal:
description: "Proposal text"
summary: "Proposal summary"
title: "Proposal title"
video_url: "Link to external video"
legislation/draft_version:
title: Version title
body: Text
changelog: Changes
status: Status
status_draft: "Draft"
status_published: "Published"
final_version: Final version
legislation/draft_version/translation:
title: Version title
@@ -310,16 +389,18 @@ en:
legislation/question:
title: Title
question_options: Options
legislation/question/translation:
title: Question
legislation/question_option:
value: Value
legislation/annotation:
text: Comment
document:
title: Title
attachment: Attachment
attachment: "Choose document"
image:
title: Title
attachment: Attachment
attachment: "Choose image"
poll/question/answer:
title: Answer
description: Description
@@ -332,7 +413,7 @@ en:
newsletter:
segment_recipient: Recipients
subject: Subject
from: From
from: "E-mail address that will appear as sending the newsletter"
body: Email content
admin_notification:
segment_recipient: Recipients
@@ -367,6 +448,9 @@ en:
order: You can enter the position where this action will be shown to the user in the list of actions
active: Active
action_type: Type
action_type_proposed_action: "Proposed action"
action_type_resource: "Resource"
published_proposal: "For published proposals?"
dashboard/administrator_task:
source: Source
user: Executed by
@@ -378,6 +462,8 @@ en:
valuator_group_id: Valuator group
can_comment: Can create comments
can_edit_dossier: Can edit dossiers
valuator_group:
name: "Group name"
local_census_record:
document_type: Document type
document_number: Document number

View File

@@ -28,11 +28,6 @@ en:
with_inactive: Inactive
preview: Preview
banner:
title: Title
description: Description
target_url: Link
post_started_at: Post started at
post_ended_at: Post ended at
sections_label: Sections where it will appear
sections:
homepage: Homepage
@@ -138,7 +133,6 @@ en:
headings_name: "Headings"
headings_edit: "Edit Headings"
headings_manage: "Manage headings"
max_votable_headings: "Maximum number of headings in which a user can vote"
no_groups: "There are no groups."
amount:
one: "There is 1 group"
@@ -153,12 +147,10 @@ en:
form:
create: "Create new group"
edit: "Edit group"
name: "Group name"
submit: "Save group"
index:
back: "Go back to budgets"
budget_headings:
name: "Name"
no_headings: "There are no headings."
amount:
one: "There is 1 heading"
@@ -171,14 +163,8 @@ en:
success_notice: "Heading deleted successfully"
unable_notice: "You cannot delete a Heading that has associated investments"
form:
name: "Heading name"
amount: "Amount"
population: "Population (optional)"
population_info: "Budget Heading population field is used for Statistic purposes at the end of the Budget to show for each Heading that represents an area with population what percentage voted. The field is optional so you can leave it empty if it doesn't apply."
latitude: "Latitude (optional)"
longitude: "Longitude (optional)"
coordinates_info: "If latitude and longitude are provided, the investments page for this heading will include a map. This map will be centered using those coordinates."
allow_content_block: "Allow content block"
content_blocks_info: "If allow content block is checked, you will be able to create custom content related to this heading from the section Settings > Custom content blocks. This content will appear on the investments page for this heading."
create: "Create new heading"
edit: "Edit heading"
@@ -187,13 +173,8 @@ en:
back: "Go back to groups"
budget_phases:
edit:
start_date: Start date
end_date: End date
summary: Summary
summary_help_text: This text will inform the user about the phase. To show it even if the phase is not active, select the checkbox below
description: Description
description_help_text: This text will appear in the header when the phase is active
enabled: Phase enabled
enabled_help_text: This phase will be public in the budget's phases timeline, as well as active for any other purpose
save_changes: Save changes
budget_investments:
@@ -286,19 +267,14 @@ en:
edit:
classification: Classification
compatibility: Compatibility
mark_as_incompatible: Mark as incompatible
selection: Selection
mark_as_selected: Mark as selected
assigned_valuators: Valuators
select_heading: Select heading
submit_button: Update
user_tags: User assigned tags
tags: Tags
tags_placeholder: "Write the tags you want separated by commas (,)"
undefined: Undefined
user_groups: "Groups"
assigned_trackers: "Trackers"
milestone_tags: Milestone tags
search_unfeasible: Search unfeasible
milestones:
index:
@@ -373,9 +349,6 @@ en:
title: Administration
description: Welcome to the %{org} admin panel.
actions:
action_type:
proposed_action: Proposed action
resource: Resource
index:
description: "When users create proposals they can access a dashboard of their proposal, where you can propose resources and recommendations to get support for their idea."
create: Create resource or action
@@ -408,7 +381,6 @@ en:
form:
submit_button: Save
help_text: Enter 0 so that this value is not taken into account
published_proposal: For published proposals?
published_proposal_help_text: Mark this checkbox to create the action only for published proposals
administrator_tasks:
index:
@@ -516,9 +488,7 @@ en:
summary_placeholder: Short summary of the description
description_placeholder: Add a description of the process
additional_info_placeholder: Add an additional information you consider useful
homepage: Description
homepage_description: Here you can explain the content of the process
homepage_enabled: Homepage enabled
banner_title: Header colors
index:
create: New process
@@ -606,9 +576,6 @@ en:
back: Back
title: Create new version
submit_button: Create version
statuses:
draft: Draft
published: Published
table:
title: Title
created_at: Created at
@@ -633,7 +600,6 @@ en:
error: Error
form:
add_option: Add option
title: Question
title_placeholder: Add question
value_placeholder: Add a closed answer
question_options: "Possible answers (optional, by default open answers)"
@@ -801,7 +767,6 @@ en:
empty_newsletters: There are no newsletters to show
new:
title: New newsletter
from: E-mail address that will appear as sending the newsletter
header_footer_help_text_html: "The heading and footer are the same for all emails, you can modify them on <code>app/views/layouts/mailer_header</code> and <code>app/views/layouts/mailer_footer</code>.<br>You can replace header image on %{link}."
image_link: "custom images"
edit:
@@ -957,7 +922,6 @@ en:
title: "Valuators group: %{group}"
no_valuators: "There are no valuators assigned to this group"
form:
name: "Group name"
new: "Create valuators group"
edit: "Save valuators group"
poll_officers:
@@ -991,7 +955,6 @@ en:
shift: "Assignment"
shifts: "Shifts in this booth"
date: "Date"
task: "Task"
edit_shifts: Edit shifts
new_shift: "New shift"
no_shifts: "This booth has no shifts"
@@ -1049,7 +1012,6 @@ en:
title: "Polls description"
form:
description:
text: "Description"
help_text: "This text will appear in the header of the polls page. It can be used to add a context to the open polls."
polls:
index:
@@ -1104,7 +1066,6 @@ en:
new:
title: "Create question to poll %{poll}"
title_proposal: "Create question"
poll_label: "Poll"
answers:
images:
add_image: "Add image"
@@ -1184,8 +1145,6 @@ en:
no_location: "No Location"
new:
title: "New booth"
name: "Name"
location: "Location"
submit_button: "Create booth"
edit:
title: "Edit booth"
@@ -1497,8 +1456,6 @@ en:
title: Proposal topics
topic: Topic
help: "When a user creates a proposal, the following topics are suggested as default tags."
name:
placeholder: Type the name of the topic
users:
columns:
name: Name
@@ -1590,8 +1547,6 @@ en:
created_at: Created at
status: Status
updated_at: Updated at
status_draft: Draft
status_published: Published
title: Title
slug: Slug
cards_title: Cards
@@ -1685,8 +1640,6 @@ en:
placeholder: Search by document number
search: Search
import: Import CSV
form:
date_of_birth: Date of birth
new:
creating: Creating new local census record
create:

View File

@@ -69,7 +69,6 @@ en:
map_location: "Map location"
map_location_instructions: "Navigate the map to the location and place the marker."
map_remove_marker: "Remove map marker"
location: "Location additional info"
map_skip_checkbox: "This investment doesn't have a concrete location or I'm not aware of it."
index:
title: Participatory budgeting

View File

@@ -35,8 +35,6 @@ en:
create: Create a topic
edit: Edit Topic
form:
topic_title: Title
topic_text: Initial text
new:
submit_button: Create topic
edit:

View File

@@ -6,7 +6,6 @@ en:
form:
title: Documents
title_placeholder: Add a descriptive title for the document
attachment_label: Choose document
delete_button: Remove document
cancel_button: Cancel
note: "You can upload up to a maximum of %{max_documents_allowed} documents of following content types: %{accepted_content_types}, up to %{max_file_size} MB per file."

View File

@@ -2,8 +2,6 @@ en:
account:
show:
change_credentials_link: Change my credentials
email_on_comment_label: Notify me by email when someone comments on my proposals or debates
email_on_comment_reply_label: Notify me by email when someone replies to my comments
erase_account_link: Erase my account
finish_verification: Complete verification
notifications: Notifications
@@ -11,18 +9,10 @@ en:
organization_responsible_name_placeholder: Representative of the organization/collective
personal: Personal details
phone_number_label: Phone number
public_activity_label: Keep my list of activities public
public_interests_label: Keep the labels of the elements I follow public
public_interests_my_title_list: Tags of elements you follow
public_interests_user_title_list: Tags of elements this user follows
save_changes_submit: Save changes
subscription_to_website_newsletter_label: Receive by email website relevant information
email_on_direct_message_label: Receive emails about direct messages
email_digest_label: Receive a summary of proposal notifications
official_position_badge_label: Show official position badge
recommendations: Recommendations
show_debates_recommendations: Show debates recommendations
show_proposals_recommendations: Show proposals recommendations
title: My account
user_permission_debates: Participate on debates
user_permission_info: With your account you can...
@@ -102,7 +92,6 @@ en:
form:
debate_title: Debate title
tags_instructions: Tag this debate.
tags_label: Topics
tags_placeholder: "Enter the tags you would like to use, separated by commas (',')"
index:
featured_debates: Featured
@@ -286,7 +275,6 @@ en:
map:
title: "Districts"
proposal_for_district: "Start a proposal for your district"
select_district: Scope of operation
start_proposal: Create a proposal
omniauth:
facebook:
@@ -330,7 +318,6 @@ en:
retire_form:
title: Retire proposal
warning: "If you retire the proposal it would still accept supports, but will be removed from the main list and a message will be visible to all users stating that the author considers the proposal should not be supported anymore"
retired_reason_label: Reason to retire the proposal
retired_reason_blank: Choose an option
retired_explanation_placeholder: Explain shortly why you think this proposal should not receive more supports
submit_button: Retire proposal
@@ -341,14 +328,8 @@ en:
done: Done
other: Other
form:
geozone: Scope of operation
proposal_responsible_name: Full name of the person submitting the proposal
proposal_responsible_name_note: "(individually or as representative of a collective; will not be displayed publically)"
proposal_summary: Proposal summary
proposal_summary_note: "(maximum 200 characters)"
proposal_text: Proposal text
proposal_title: Proposal title
proposal_video_url: Link to external video
proposal_video_url_note: You may add a link to YouTube or Vimeo
tag_category_label: "Categories"
tags_instructions: "Tag this proposal. You can choose from proposed categories or add your own"
@@ -571,7 +552,6 @@ en:
other: "%{count} responses"
view_results: View results
edit_poll: Edit survey
show_results: Show results
show_results_help: If you check this box the results will be public and all users will be able to see them
delete: Delete survey
alert_notice: This action will remove the survey and all its associated questions.
@@ -712,8 +692,6 @@ en:
proposal_notifications:
new:
title: "Send message"
title_label: "Title"
body_label: "Message"
submit_button: "Send message"
info_about_receivers_html: "This message will be sent to <strong>%{count} people</strong> and it will be visible in %{proposal_page}.<br> Messages are not sent immediately, users will receive periodically an email with all proposal notifications."
proposal_page: "the proposal's page"
@@ -862,11 +840,9 @@ en:
verify_account: "verify your account"
direct_messages:
new:
body_label: Message
direct_messages_bloqued: "This user has decided not to receive direct messages"
submit_button: Send message
title: Send private message to %{receiver}
title_label: Title
verified_only: To send a private message %{verify_account}
show:
receiver: Message sent to %{receiver}

View File

@@ -4,7 +4,6 @@ en:
form:
title: Descriptive image
title_placeholder: Add a descriptive title for the image
attachment_label: Choose image
delete_button: Remove image
note: "You can upload one image of following content types: %{accepted_content_types}, up to %{max_file_size} MB."
add_new_image: Add image

View File

@@ -53,7 +53,6 @@ en:
no_statuses_defined: There are no defined statuses yet
new:
creating: Create milestone
description: Description
edit:
title: Edit milestone
create:

View File

@@ -58,13 +58,9 @@ en:
dossier: Dossier
price_html: "Price (%{currency})"
price_first_year_html: "Cost during the first year (%{currency}) <small>(optional, data not public)</small>"
price_explanation_html: Price explanation
feasibility: Feasibility
feasible_explanation_html: Feasibility explanation
valuation_finished: Valuation finished
valuation_finished_alert: "Are you sure you want to mark this report as completed? If you do it, it can no longer be modified."
not_feasible_alert: "An email will be sent immediately to the author of the project with the report of unfeasibility."
duration_html: Time scope
save: Save changes
notice:
valuate: "Dossier updated"

View File

@@ -1,5 +1,6 @@
es:
attributes:
geozone_id: "Ámbito de actuación"
results_enabled: "Mostrar resultados"
stats_enabled: "Mostrar estadísticas"
advanced_stats_enabled: "Mostrar estadísticas avanzadas"
@@ -145,19 +146,30 @@ es:
budget_milestone_tags: "Etiquetas de seguimiento"
budget_valuation_tags: "Etiquetas de evaluación"
help_link: "Enlace de ayuda"
budget/translation:
name: "Nombre"
budget/investment:
heading_id: "Partida presupuestaria"
title: "Título"
description: "Descripción"
external_url: "Enlace a documentación adicional"
administrator_id: "Administrador"
location: "Ubicación (opcional)"
location: "Información adicional de la ubicación"
organization_name: "Si estás proponiendo en nombre de una organización o colectivo, o en nombre de más gente, escribe su nombre"
image: "Imagen descriptiva del proyecto de gasto"
image_title: "Título de la imagen"
duration: "Plazo de ejecución <small>(opcional, dato no público)</small>"
feasibility_feasible: "Viable"
feasibility_undecided: "Sin decidir"
feasibility_unfeasible: "Inviable"
incompatible: "Marcar como incompatible"
milestone_tag_list: "Etiquetas de Seguimiento"
price_explanation: "Informe de coste <small>(opcional, dato público)</small>"
selected: "Marcar como seleccionado"
unfeasibility_explanation: "Informe de inviabilidad <small>(en caso de que lo sea, dato público)</small>"
valuation_finished: "Informe finalizado"
valuator_ids: "Grupos"
valuation_tag_list: "Etiquetas"
budget/investment/translation:
title: "Título"
description: "Descripción"
@@ -171,6 +183,8 @@ es:
title: "Título"
description: "Descripción (opcional si hay un estado asignado)"
publication_date: "Fecha"
milestone/translation:
description: "Descripción"
milestone/status:
name: "Nombre"
description: "Descripción (opcional)"
@@ -181,16 +195,33 @@ es:
progress_bar/kind:
primary: "Principal"
secondary: "Secundaria"
budget/group:
max_votable_headings: "Máximo número de partidas en que un usuario puede votar"
budget/group/translation:
name: "Nombre del grupo"
budget/heading:
allow_custom_content: "Permitir bloque de contenidos"
latitude: "Latitud (opcional)"
longitude: "Longitud (opcional)"
name: "Nombre de la partida"
price: "Coste"
population: "Población"
price: "Cantidad"
population: "Población (opcional)"
budget/heading/translation:
name: "Nombre de la partida"
budget/phase:
enabled: "Fase habilitada"
ends_at: "Fecha de fin"
starts_at: "Fecha de inicio"
budget/phase/translation:
description: "Descripción"
summary: "Resumen"
comment:
body: "Comentario"
user: "Usuario"
debate:
author: "Autor"
description: "Opinión"
tag_list: "Temas"
terms_of_service: "Términos de servicio"
title: "Título del debate"
debate/translation:
@@ -201,6 +232,8 @@ es:
title: "Título"
question: "Pregunta"
description: "Descripción"
responsible_name: "Nombre y apellidos de la persona que hace esta propuesta"
retired_reason: "Razón por la que se retira la propuesta"
selected: "Marcar como seleccionada"
terms_of_service: "Términos de servicio"
video_url: "Enlace a vídeo externo"
@@ -216,10 +249,23 @@ es:
password_confirmation: "Confirmación de contraseña"
password: "Contraseña"
current_password: "Contraseña actual"
phone_number: "Teléfono"
email_digest: "Recibir resumen de notificaciones sobre propuestas"
email_on_comment: "Recibir un email cuando alguien comenta en mis propuestas o debates"
email_on_comment_reply: "Recibir un email cuando alguien contesta a mis comentarios"
email_on_direct_message: "Recibir emails con mensajes privados"
newsletter: "Recibir emails con información interesante sobre la web"
official_position: "Cargo público"
official_position_badge: "Mostrar etiqueta de tipo de usuario"
official_level: "Nivel del cargo"
phone_number: "Teléfono"
public_activity: "Mostrar públicamente mi lista de actividades"
public_interests: "Mostrar públicamente las etiquetas de los elementos que sigo"
recommended_debates: "Mostrar recomendaciones en el listado de debates"
recommended_proposals: "Mostrar recomendaciones en el listado de propuestas"
redeemable_code: "Código de verificación por carta (opcional)"
direct_message:
title: "Título"
body: "Mensaje"
organization:
name: "Nombre de la organización"
responsible_name: "Persona responsable del colectivo"
@@ -230,11 +276,17 @@ es:
geozone_restricted: "Restringida por zonas"
summary: "Resumen"
description: "Descripción"
active_poll/translation:
description: "Descripción"
poll/booth:
name: "Nombre"
location: "Ubicación"
poll/translation:
name: "Nombre"
summary: "Resumen"
description: "Descripción"
poll/question:
poll_id: "Votación"
title: "Pregunta"
summary: "Resumen"
description: "Descripción"
@@ -245,6 +297,11 @@ es:
data: Datos de CSV
poll_id: Votación
officer_assignment_id: Turno
poll/shift:
task: "Tarea"
proposal_notification:
body: "Mensaje"
title: "Título"
signature_sheet:
signable_type: "Tipo de hoja de firmas"
signable_id: "ID Propuesta ciudadana/Proyecto de gasto"
@@ -255,6 +312,8 @@ es:
subtitle: Subtítulo
slug: Slug
status: Estado
status_draft: "Borrador"
status_published: "Publicada"
title: Título
updated_at: Última actualización
more_info_flag: Mostrar en la página de ayuda
@@ -271,9 +330,20 @@ es:
name: Nombre
locale: Idioma
body: Contenido
tag:
name: "Escribe el nombre del tema"
topic:
title: "Título"
description: "Texto inicial"
banner:
background_color: Color del fondo
font_color: Color del texto
post_ended_at: "Fin de publicación"
post_started_at: "Inicio de publicación"
target_url: "Enlace"
banner/translation:
title: "Título"
description: "Descripción"
legislation/process:
title: Título del proceso
summary: Resumen
@@ -293,17 +363,26 @@ es:
result_publication_date: Fecha de publicación del resultado final
background_color: Color del fondo
font_color: Color del texto
homepage_enabled: "Homepage activada"
legislation/process/translation:
title: Título del proceso
summary: Resumen
description: En qué consiste
additional_info: Información adicional
homepage: "Descripción"
milestones_summary: Seguimiento del proceso
legislation/proposal:
description: "Texto desarrollado de la propuesta"
summary: "Resumen de la propuesta"
title: "Título de la propuesta"
video_url: "Enlace a vídeo externo"
legislation/draft_version:
title: Título de la versión
body: Texto
changelog: Cambios
status: Estado
status_draft: "Borrador"
status_published: "Publicado"
final_version: Versión final
legislation/draft_version/translation:
title: Título de la versión
@@ -312,16 +391,18 @@ es:
legislation/question:
title: Título
question_options: Respuestas
legislation/question/translation:
title: "Pregunta"
legislation/question_option:
value: Valor
legislation/annotation:
text: Comentario
document:
title: Título
attachment: Archivo adjunto
attachment: "Selecciona un documento"
image:
title: Título
attachment: Archivo adjunto
attachment: "Selecciona una imagen"
poll/question/answer:
title: Respuesta
description: Descripción
@@ -334,7 +415,7 @@ es:
newsletter:
segment_recipient: Destinatarios
subject: Asunto
from: Enviado por
from: "Dirección de correo electrónico que aparecerá como remitente de la newsletter"
body: Contenido del email
admin_notification:
segment_recipient: Destinatarios
@@ -369,6 +450,9 @@ es:
order: Puedes introducir la posición en la que se mostrará al usuario esta acción en la lista de acciones
active: Activa
action_type: Tipo
action_type_proposed_action: "Acción propuesta"
action_type_resource: "Recurso"
published_proposal: "¿Para propuestas publicadas?"
dashboard/administrator_task:
source: Fuente
user: Ejecutado por
@@ -380,6 +464,8 @@ es:
valuator_group_id: Grupo de evaluación
can_comment: Puede comentar
can_edit_dossier: Puede editar informes
valuator_group:
name: "Nombre del grupo"
local_census_record:
document_type: Tipo de documento
document_number: Número de documento

View File

@@ -28,11 +28,6 @@ es:
with_inactive: Inactivos
preview: Vista previa de presupuesto
banner:
title: Título
description: Descripción
target_url: Enlace
post_started_at: Inicio de publicación
post_ended_at: Fin de publicación
sections_label: Secciones en las que aparece
sections:
homepage: Homepage
@@ -138,7 +133,6 @@ es:
headings_name: "Partidas"
headings_edit: "Editar Partidas"
headings_manage: "Gestionar partidas"
max_votable_headings: "Máximo número de partidas en que un usuario puede votar"
no_groups: "No hay grupos."
amount:
one: "Hay 1 grupo de partidas presupuestarias"
@@ -153,12 +147,10 @@ es:
form:
create: "Crear nuevo grupo"
edit: "Editar grupo"
name: "Nombre del grupo"
submit: "Guardar grupo"
index:
back: "Volver a presupuestos"
budget_headings:
name: "Nombre"
no_headings: "No hay partidas."
amount:
one: "Hay 1 partida presupuestarias"
@@ -171,14 +163,8 @@ es:
success_notice: "Partida presupuestaria eliminada correctamente"
unable_notice: "No se puede eliminar una partida presupuestaria con proyectos asociados"
form:
name: "Nombre de la partida"
amount: "Cantidad"
population: "Población (opcional)"
population_info: "El campo población de las partidas presupuestarias se usa con fines estadísticos únicamente, con el objetivo de mostrar el porcentaje de votos habidos en cada partida que represente un área con población. Es un campo opcional, así que puedes dejarlo en blanco si no aplica."
latitude: "Latitud (opcional)"
longitude: "Longitud (opcional)"
coordinates_info: "Si se añaden los campos latitud y longitud, en la página de proyectos de esta partida aparecerá un mapa, que estará centrado en esas coordenadas."
allow_content_block: "Permitir bloque de contenidos"
content_blocks_info: "Si se permite el bloque de contenidos, se tendrá la oportunidad de crear bloques de contenido relativos a esta partida desde la sección Configuración > Personalizar bloques. Este contenido aparecerá en la página de proyectos de esta partida."
create: "Crear nueva partida"
edit: "Editar partida"
@@ -187,13 +173,8 @@ es:
back: "Volver a grupos"
budget_phases:
edit:
start_date: Fecha de inicio
end_date: Fecha de fin
summary: Resumen
summary_help_text: Este texto informará al usuario sobre la fase. Para mostrarlo aunque la fase no esté activa, marca la opción de más abajo.
description: Descripción
description_help_text: Este texto aparecerá en la cabecera cuando la fase esté activa
enabled: Fase habilitada
enabled_help_text: Esta fase será pública en el calendario de fases del presupuesto y estará activa para otros propósitos
save_changes: Guardar cambios
budget_investments:
@@ -286,19 +267,14 @@ es:
edit:
classification: Clasificación
compatibility: Compatibilidad
mark_as_incompatible: Marcar como incompatible
selection: Selección
mark_as_selected: Marcar como seleccionado
assigned_valuators: Evaluadores
select_heading: Seleccionar partida
submit_button: Actualizar
user_tags: Etiquetas asignadas por el usuario
tags: Etiquetas
tags_placeholder: "Escribe las etiquetas que desees separadas por comas (,)"
undefined: Sin definir
user_groups: "Grupos"
assigned_trackers: "Gestores de seguimiento"
milestone_tags: Etiquetas de Seguimiento
search_unfeasible: Buscar inviables
milestones:
index:
@@ -375,9 +351,6 @@ es:
title: Administración
description: Bienvenido al panel de administración de %{org}.
actions:
action_type:
proposed_action: Acción propuesta
resource: Recurso
index:
description: "Cuando los usuarios crean propuestas pueden acceder a un panel de progreso de su propuesta, donde se le puede proponer recursos y recomendaciones para conseguir apoyos a su idea."
create: Crear recurso o acción
@@ -410,7 +383,6 @@ es:
form:
submit_button: Guardar
help_text: Introduce 0 para que este valor no se tenga en cuenta
published_proposal: '¿Para propuestas publicadas?'
published_proposal_help_text: Marca este checkbox para crear la acción solo para propuestas publicadas
administrator_tasks:
index:
@@ -518,9 +490,7 @@ es:
summary_placeholder: Resumen corto de la descripción
description_placeholder: Añade una descripción del proceso
additional_info_placeholder: Añade cualquier información adicional que pueda ser de interés
homepage: Descripción
homepage_description: Aquí puedes explicar el contenido del proceso
homepage_enabled: Homepage activada
banner_title: Colores del encabezado
index:
create: Nuevo proceso
@@ -607,9 +577,6 @@ es:
back: Volver
title: Crear nueva versión
submit_button: Crear versión
statuses:
draft: Borrador
published: Publicado
table:
title: Título
created_at: Creado
@@ -634,7 +601,6 @@ es:
error: Error
form:
add_option: Añadir respuesta cerrada
title: Pregunta
title_placeholder: Escribe un título a la pregunta
value_placeholder: Escribe una respuesta cerrada
question_options: "Posibles respuestas (opcional, por defecto respuestas abiertas)"
@@ -802,7 +768,6 @@ es:
empty_newsletters: No hay newsletters para mostrar
new:
title: Nueva newsletter
from: Dirección de correo electrónico que aparecerá como remitente de la newsletter
header_footer_help_text_html: "El encabezado y pie son los mismos en todos los emails, puedes modificarlos en <code>app/views/layouts/mailer_header</code> y <code>app/views/layouts/mailer_footer</code>.<br>Puedes reemplazar la imagen del encabezado en %{link}."
image_link: "personalizar imágenes"
edit:
@@ -958,7 +923,6 @@ es:
title: "Grupo de evaluadores: %{group}"
no_valuators: "No hay evaluadores asigandos a este grupo"
form:
name: "Nombre del grupo"
new: "Crear grupo de evaluadores"
edit: "Guardar grupo de evaluadores"
poll_officers:
@@ -992,7 +956,6 @@ es:
shift: "Asignación"
shifts: "Turnos en esta urna"
date: "Fecha"
task: "Tarea"
edit_shifts: Asignar turno
new_shift: "Nuevo turno"
no_shifts: "Esta urna no tiene turnos asignados"
@@ -1050,7 +1013,6 @@ es:
title: "Descripción general de votaciones"
form:
description:
text: "Descripción"
help_text: "Este texto aparecerá en la cabecera de la página de votaciones. Puedes usarlo para añadir un contexto a las votaciones abiertas"
polls:
index:
@@ -1105,7 +1067,6 @@ es:
new:
title: "Crear pregunta ciudadana para la votación %{poll}"
title_proposal: "Crear pregunta ciudadana"
poll_label: "Votación"
answers:
images:
add_image: "Añadir imagen"
@@ -1185,8 +1146,6 @@ es:
no_location: "Sin Ubicación"
new:
title: "Nueva urna"
name: "Nombre"
location: "Ubicación"
submit_button: "Crear urna"
edit:
title: "Editar urna"
@@ -1495,8 +1454,6 @@ es:
title: Temas de propuesta
topic: Tema
help: "Cuando un usuario crea una propuesta se le sugieren como etiquetas por defecto los siguientes temas."
name:
placeholder: Escribe el nombre del tema
users:
columns:
name: Nombre
@@ -1588,8 +1545,6 @@ es:
created_at: Creada
status: Estado
updated_at: Última actualización
status_draft: Borrador
status_published: Publicada
title: Título
slug: Slug
cards_title: Tarjetas
@@ -1683,8 +1638,6 @@ es:
placeholder: Búsqueda por número de documento
search: Buscar
import: Importar CSV
form:
date_of_birth: Fecha de nacimiento
new:
creating: Creando nuevo registro de censo local
create:

View File

@@ -69,7 +69,6 @@ es:
map_location: "Ubicación en el mapa"
map_location_instructions: "Navega por el mapa hasta la ubicación y coloca el marcador."
map_remove_marker: "Eliminar el marcador"
location: "Información adicional de la ubicación"
map_skip_checkbox: "Este proyecto no tiene una ubicación concreta o no la conozco."
index:
title: Presupuestos participativos

View File

@@ -35,8 +35,6 @@ es:
create: Crear un tema
edit: Editar tema
form:
topic_title: Título
topic_text: Texto inicial
new:
submit_button: Crear tema
edit:

View File

@@ -6,7 +6,6 @@ es:
form:
title: Documentos
title_placeholder: Añade un título descriptivo para el documento
attachment_label: Selecciona un documento
delete_button: Eliminar documento
cancel_button: Cancelar
note: "Puedes subir hasta un máximo de %{max_documents_allowed} documentos en los formatos: %{accepted_content_types}, y de hasta %{max_file_size} MB por archivo."

View File

@@ -2,8 +2,6 @@ es:
account:
show:
change_credentials_link: Cambiar mis datos de acceso
email_on_comment_label: Recibir un email cuando alguien comenta en mis propuestas o debates
email_on_comment_reply_label: Recibir un email cuando alguien contesta a mis comentarios
erase_account_link: Darme de baja
finish_verification: Finalizar verificación
notifications: Notificaciones
@@ -11,18 +9,10 @@ es:
organization_responsible_name_placeholder: Representante de la asociación/colectivo
personal: Datos personales
phone_number_label: Teléfono
public_activity_label: Mostrar públicamente mi lista de actividades
public_interests_label: Mostrar públicamente las etiquetas de los elementos que sigo
public_interests_my_title_list: Etiquetas de los elementos que sigues
public_interests_user_title_list: Etiquetas de los elementos que sigue este usuario
save_changes_submit: Guardar cambios
subscription_to_website_newsletter_label: Recibir emails con información interesante sobre la web
email_on_direct_message_label: Recibir emails con mensajes privados
email_digest_label: Recibir resumen de notificaciones sobre propuestas
official_position_badge_label: Mostrar etiqueta de tipo de usuario
recommendations: Recomendaciones
show_debates_recommendations: Mostrar recomendaciones en el listado de debates
show_proposals_recommendations: Mostrar recomendaciones en el listado de propuestas
title: Mi cuenta
user_permission_debates: Participar en debates
user_permission_info: Con tu cuenta ya puedes...
@@ -102,7 +92,6 @@ es:
form:
debate_title: Título del debate
tags_instructions: Etiqueta este debate.
tags_label: Temas
tags_placeholder: "Escribe las etiquetas que desees separadas por coma (',')"
index:
featured_debates: Destacar
@@ -286,7 +275,6 @@ es:
map:
title: "Distritos"
proposal_for_district: "Crea una propuesta para tu distrito"
select_district: Ámbito de actuación
start_proposal: Crea una propuesta
omniauth:
facebook:
@@ -330,7 +318,6 @@ es:
retire_form:
title: Retirar propuesta
warning: "Si sigues adelante tu propuesta podrá seguir recibiendo apoyos, pero dejará de ser listada en la lista principal, y aparecerá un mensaje para todos los usuarios avisándoles de que el autor considera que esta propuesta no debe seguir recogiendo apoyos."
retired_reason_label: Razón por la que se retira la propuesta
retired_reason_blank: Selecciona una opción
retired_explanation_placeholder: Explica brevemente por que consideras que esta propuesta no debe recoger más apoyos
submit_button: Retirar propuesta
@@ -341,14 +328,8 @@ es:
done: Realizada
other: Otra
form:
geozone: Ámbito de actuación
proposal_responsible_name: Nombre y apellidos de la persona que hace esta propuesta
proposal_responsible_name_note: "(individualmente o como representante de un colectivo; no se mostrará públicamente)"
proposal_summary: Resumen de la propuesta
proposal_summary_note: "(máximo 200 caracteres)"
proposal_text: Texto desarrollado de la propuesta
proposal_title: Título de la propuesta
proposal_video_url: Enlace a vídeo externo
proposal_video_url_note: Puedes añadir un enlace a YouTube o Vimeo
tag_category_label: "Categorías"
tags_instructions: "Etiqueta esta propuesta. Puedes elegir entre las categorías propuestas o introducir las que desees"
@@ -571,7 +552,6 @@ es:
other: "%{count} respuestas"
view_results: Ver resultados
edit_poll: Editar encuesta
show_results: Mostrar resultados
show_results_help: Si marcas esta casilla los resultados serán públicos y todos los usuarios podrán verlos
delete: Eliminar encuesta
alert_notice: Esta acción eliminará la encuesta y todas sus preguntas asociadas.
@@ -709,8 +689,6 @@ es:
proposal_notifications:
new:
title: "Enviar mensaje"
title_label: "Título"
body_label: "Mensaje"
submit_button: "Enviar mensaje"
info_about_receivers_html: "Este mensaje se enviará a <strong>%{count} usuarios</strong> y se publicará en %{proposal_page}.<br> El mensaje no se enviará inmediatamente, los usuarios recibirán periódicamente un email con todas las notificaciones de propuestas."
proposal_page: "la página de la propuesta"
@@ -859,11 +837,9 @@ es:
verify_account: "verifica tu cuenta"
direct_messages:
new:
body_label: Mensaje
direct_messages_bloqued: "Este usuario ha decidido no recibir mensajes privados"
submit_button: Enviar mensaje
title: Enviar mensaje privado a %{receiver}
title_label: Título
verified_only: Para enviar un mensaje privado %{verify_account}
show:
receiver: Mensaje enviado a %{receiver}

View File

@@ -4,7 +4,6 @@ es:
form:
title: Imagen descriptiva
title_placeholder: Añade un título descriptivo para la imagen
attachment_label: Selecciona una imagen
delete_button: Eliminar imagen
note: "Puedes subir una imagen en los formatos: %{accepted_content_types}, y de hasta %{max_file_size} MB por archivo."
add_new_image: Añadir imagen

View File

@@ -53,7 +53,6 @@ es:
no_statuses_defined: No hay estados definidos
new:
creating: Crear hito
description: Descripción
edit:
title: Editar hito
create:

View File

@@ -58,13 +58,9 @@ es:
dossier: Informe
price_html: "Coste (%{currency}) <small>(dato público)</small>"
price_first_year_html: "Coste en el primer año (%{currency}) <small>(opcional, dato no público)</small>"
price_explanation_html: Informe de coste <small>(opcional, dato público)</small>
feasibility: Viabilidad
feasible_explanation_html: Informe de inviabilidad <small>(en caso de que lo sea, dato público)</small>
valuation_finished: Informe finalizado
valuation_finished_alert: "¿Estás seguro/a de querer marcar este informe como completado? Una vez hecho, no se puede deshacer la acción."
not_feasible_alert: "Un email será enviado inmediatamente al autor del proyecto con el informe de inviabilidad."
duration_html: Plazo de ejecución <small>(opcional, dato no público)</small>
save: Guardar cambios
notice:
valuate: "Dossier actualizado"

View File

@@ -254,6 +254,8 @@ pt-BR:
legislation/question:
title: Título
question_options: Opções
legislation/question/translation:
title: "Questão"
legislation/question_option:
value: Valor
legislation/annotation:

View File

@@ -78,13 +78,13 @@ describe "Admin custom information texts" do
end
scenario "Update a translation", :js do
key = "proposals.form.proposal_title"
create(:i18n_content, key: key, value_fr: "Titre de la proposition")
key = "proposals.show.share"
create(:i18n_content, key: key, value_fr: "Partager la proposition")
visit admin_site_customization_information_texts_path(tab: "proposals")
select "Français", from: :select_language
fill_in "contents_content_#{key}values_value_fr", with: "Titre personalise de la proposition"
fill_in "contents_content_#{key}values_value_fr", with: "Partager personalise"
click_button "Save"
expect(page).to have_content "Translation updated successfully"
@@ -92,8 +92,8 @@ describe "Admin custom information texts" do
visit admin_site_customization_information_texts_path(tab: "proposals")
select "Français", from: :select_language
expect(page).to have_content "Titre personalise de la proposition"
expect(page).not_to have_content "Titre de la proposition"
expect(page).to have_content "Partager personalise"
expect(page).not_to have_content "Partager la proposition"
end
scenario "Remove a translation", :js do