Skip to content

Instantly share code, notes, and snippets.

@takahashim
Last active November 21, 2021 08:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takahashim/1c537cba247184e6d51c42b39cb35d03 to your computer and use it in GitHub Desktop.
Save takahashim/1c537cba247184e6d51c42b39cb35d03 to your computer and use it in GitHub Desktop.
require 'yaml'
require 'json'
# make_diff_yaml.rb : generate config/locales/ja.yml to use Decidim v0.24.3
#
# Usage:
#
# git clone https://github.com/decidim/decidim
# cd decidim
# git checkout v0.24.3
# ruby make_diff_yaml.rb
class Hash
def deep_merge(second)
merger = proc { |key, v1, v2| Hash === v1 && Hash === v2 ? v1.merge(v2, &merger) : v2 }
self.merge(second, &merger)
end
end
def diff_yaml(a, b)
diff = {}
a.keys.each do |key|
if !b.key?(key)
next if key.to_s == "one"
diff[key] = a[key]
elsif b[key].kind_of?(Hash)
sub_diff = diff_yaml(a[key], b[key])
unless sub_diff.empty?
diff[key] = sub_diff
end
end
end
diff
end
en_yaml = {}
ja_yaml = {}
Dir.glob("**/en.yml") do |d|
y = YAML.load_file(d)
en_yaml = en_yaml.deep_merge(y)
end
File.write("v0243_en.yml", en_yaml['en'].to_yaml)
Dir.glob("**/ja.yml") do |d|
y = YAML.load_file(d)
ja_yaml = ja_yaml.deep_merge(y)
end
File.write("v0243_ja.yml", ja_yaml['ja'].to_yaml)
d_yaml = diff_yaml(en_yaml['en'], ja_yaml['ja'])
ja_d_yaml = {"ja" => d_yaml}
File.write("v0243_diff_ja.yml", ja_d_yaml.to_yaml)
# replace_yaml.rb
#
# Usage:
# ruby make_diff_yaml.rb
# ruby replace_yaml.rb
require 'yaml'
def replace_yaml(a, b)
replaced = {}
a.keys.each do |key|
if a[key].kind_of?(Hash)
if b[key].kind_of?(Hash)
replaced[key] = replace_yaml(a[key], b[key])
else
replaced[key] = a[key]
end
else
replaced[key] = b[key] || a[key]
end
end
replaced
end
base_yaml_filename = 'v0243_diff_ja.yml'
master_yaml_filename = 'v0251_ja.yml'
master_yaml = {"ja" => YAML.load_file(master_yaml_filename)}
base_yaml = YAML.load_file(base_yaml_filename)
replaced_yaml = replace_yaml(base_yaml, master_yaml)
File.write('v0243_replaced_ja.yaml', replaced_yaml.to_yaml)
---
ja:
activemodel:
attributes:
meeting:
online_meeting_url: Online meeting URL
registration_url: Registration URL
type_of_meeting: Type
minutes:
audio_url: Audio URL
video_url: Video URL
answer:
choices: Choices
selected_choices: Selected choices
questionnaire_question:
max_characters: Character limit (leave to 0 if no limit)
conference:
available_slots: Available slots
end_date: End date
location: Location
main_logo: Main logo
objectives: Objectives
registration_terms: Registration terms
registrations_enabled: Registrations enabled
sign_date: Sign date
signature: Signature
signature_name: signature name
start_date: Start date
conference_media_link:
date: Date
link: Link
title: Title
conference_partner:
link: Link
logo: Logo
name: Name
partner_type: Partner type
conference_registration_invite:
email: Email
name: Name
registration_type_id: Registration type
user_id: User
conference_registration_type:
description: Description
price: Price
title: Title
conference_speaker:
affiliation: Affiliation
avatar: Avatar
conference_meeting_ids: Related meetings
personal_url: Personal url
position: Position
short_bio: Short Bio
twitter_handle: Twitter handle
user_id: User
project:
selected: Selected for implementation
voting:
end_time: Voting ends
start_time: Voting begins
proposal_answer:
cost: Cost
cost_report: Cost report
execution_period: Execution period
participatory_process:
weight: Weight
participatory_process_group:
developer_group: Promoter group
group_url: Website
hashtag: Hashtag
local_area: Organization area
meta_scope: Scope metadata
participatory_scope: What is decided
participatory_structure: How is it decided
target: Who participates
title: Title
assembly:
weight: Weight
errors:
models:
answer:
attributes:
add_documents:
needs_to_be_reattached: Needs to be reattached
body:
too_long: is too long
trustee:
attributes:
name:
cant_be_changed: can't be changed
public_key:
cant_be_changed: can't be changed
models:
decidim/resource_endorsed_event: Resource endorsed
activerecord:
models:
decidim/votings/polling_officer:
one: Polling officer
other: Polling officers
decidim/votings/polling_station:
one: Polling station
other: Polling stations
decidim/votings/voting:
one: Voting
other: Votings
errors:
models:
decidim/votings/polling_officer:
attributes:
presided_polling_station:
president_and_manager: Polling officer already is a polling station
president/manager
voting:
different_organization: The voting must be in the same organizatoin
as the user
decidim/votings/polling_station:
attributes:
polling_station_president:
different_voting: The polling officer must be in the same voting as
the polling station
decidim:
admin:
actions:
attachment:
new: New attachment
attachment_collection:
new: New attachment collection
filters:
moderations:
reportable_type_string_eq:
label: Type
search_placeholder:
reported_id_string_or_reported_content_cont: Search %{collection} by reportable
id or content.
name_or_email_or_nickname_or_presided_station_title_or_managed_station_title_cont: Search
%{collection} by name/email/nickname or polling station.
? title_or_address_or_manager_name_or_manager_email_or_manager_nickname_or_president_name_or_president_email_or_president_nickname_cont
: Search %{collection} by title, address or officer name/email/nickname.
officers_assigned_eq:
label: Officers
values:
assigned: Assigned
unassigned: Not assigned
role_eq:
label: Role
values:
manager: Manager
president: President
unassigned: Unassigned
menu:
authorization_revocation:
destroy_ok: All matched authorizations have been revocated successfully.
title: Authorizations revocation
authorization_workflows: Authorizations
participatory_process_groups_submenu:
info: Info
landing_page: Landing page
models:
participatory_process_group:
fields:
title: Title
titles:
panel: Admin
block_user:
new:
action: Block account and send justification
description: Blocking an user will render its account unusable, you may
provide in your justification and guidelines on ways you deem you would
consider unblocking the user.
conflicts:
attempts: Attempts
managed_user_name: Managed User
solved: Solved
title: Verifications's conflicts
transfer:
email: Email
error: There was a problem transfering the current participant to managed
participant.
name: Name
reason: Reason
success: The current transfer has been successfully completed.
title: Transfer
'true': 'Yes'
user_name: User
forms:
file_help:
import:
explanation: 'Guidance for file:'
message_1: CSV, JSON and Excel (.xls) files are supported
message_2: For CSV files, the separator between columns must be a semicolon
(";")
imports:
creators:
proposalcreator: Proposal creator
error: There was a problem during the import
help:
proposalcreator: The file must have column names title/en and body/en (or
another locale which you prefer eg. title/ca and body/ca). Also scope/id
and category/id columns are supported.
import_from_file: Import from a file
invalid_lines: Found error in resource number %{invalid_lines}
new:
file_legend: Add an import file that will be parsed.
moderated_users:
index:
actions:
block: Block User
unblock: Unblock User
name: Name
reason: Reason
reports: Reports count
title: Listing reported users
report:
reasons:
does_not_belong: Does not belong
offensive: Offensive
tabs:
blocked: Blocked
moderations:
reports:
index:
callout_html: A content appears in the moderation panel when it has been
signaled by a user (can be anyone with a registered account) by clicking
on the %{icon} flag next to the item.
content_original_language: Content original language
participatory_space: Participatory space
reported_content: Reported content
see_current: See current
see_original: See original
title: Moderation reports
show:
report_details: Reason details
report_language: Report language
report_reason: Reason
title: Report details
officializations:
block:
error: There was an error blocking the participant
success: Participant successfully blocked
index:
block: Block User
reports: Reports
unblock: Unblock User
unblock:
error: There was an error unblocking the participant
success: Participant successfully unblocked
organization:
form:
url: URL
participatory_space_private_users:
index:
import_via_csv: Import via CSV
consultations:
deprecation_warning: Consultations module will be deprecated in the near future.
We’re working on the next cryptographically secure version called Votings.
participatory_process_group_landing_page:
edit:
active_content_blocks: Active content blocks
inactive_content_blocks: Inactive content blocks
participatory_process_group_landing_page_content_blocks:
edit:
update: Update
components:
meetings:
settings:
global:
registration_code_enabled: Registration code enabled
terms_and_conditions_url_for_meeting_creators: Terms and conditions URL
for meeting creators
budgets:
settings:
global:
vote_rule_selected_projects_enabled: 'Enable rule: Selected projects with
minimum and maximum number of projects to be voted on'
vote_selected_projects_maximum: Maximum amount of projects to be selected
vote_selected_projects_minimum: Minimum amount of projects to be selected
surveys:
settings:
global:
ends_at: Answers accepted until
ends_at_help: Leave blank for no specific date
starts_at: Answers accepted from
starts_at_help: Leave blank for no specific date
proposals:
settings:
global:
proposal_edit_time: Proposal editing
proposal_edit_time_choices:
infinite: Allow editing proposals for an infinite amount of time
limited: Allow editing of proposals within a specific timeframe
events:
reports:
resource_hidden:
email_intro: An administrator removed your %{resource_type} because it has
been reported as %{report_reasons}.
email_outro: You have received this notification because you are an author
of the removed content.
email_subject: Your %{resource_type} has been removed
notification_title: |-
An administrator removed your %{resource_type} because it has been reported as %{report_reasons}.</br>
<i>%{resource_content}</i>
verifications:
verify_with_managed_user:
notification_title: The participant <a href="%{resource_path}">%{resource_title}</a>
has tried to verify herself with the data of the managed participant <a
href="%{managed_user_path}">%{managed_user_name}</a>
elections:
trustees:
new_election:
email_intro: You got added as a trustee for the %{resource_title} election.
email_outro: You have received this notification because you've been added
as trustee for the %{resource_title} election.
email_subject: You are a trustee for the %{resource_title} election..
notification_title: You are a trustee for <a href="%{resource_path}">%{resource_title}</a>
election.
new_trustee:
email_intro: An admin has added you as trustee for %{resource_name}. You
should create your public key <a href='%{trustee_zone_url}'>in your
trustee zone</a>
email_outro: You have received this notification because you've been added
as trustee for %{resource_name}.
email_subject: You are a trustee for %{resource_name}.
notification_title: You are a trustee for <a href="%{participatory_space_url}">%{resource_name}</a>.
votes:
accepted_votes:
email_intro: 'Your vote was accepted! Using your voting token: %{encrypted_vote_hash},
you can verify your vote <a href="%{verify_url}">here</a>.'
email_outro: You have received this notification because you've voted
for the %{resource_name} election.
email_subject: Your vote for %{resource_name} was accepted.
notification_title: 'Your vote was accepted. Verify your vote <a href="%{verify_url}">here</a>
using your vote token: %{encrypted_vote_hash}'
votings:
polling_officers:
polling_station_assigned:
email_intro: You have been assigned as %{role} of the Polling Station
%{polling_station_name} in <a href="%{resource_url}">%{resource_title}</a>.
You can manage the Polling Station from the dedicated <a href="%{polling_officer_zone_url}">Polling
Officer Zone</a>.
email_outro: You have received this notification because you have been
assigned as %{role} of %{polling_station_name}.
email_subject: You are %{role} of the Polling Station %{polling_station_name}.
notification_title: You are %{role} of the Polling Station %{polling_station_name}
in the voting <a href="%{resource_path}">%{resource_title}</a>.
comments:
comment_downvoted:
email_intro: Your comment in "%{resource_title}" has been downvoted. It
now has a total of %{upvotes} upvotes and %{downvotes} downvotes.
email_outro: You have received this notification because you are the author
of this comment.
email_subject: Your comment in "%{resource_title}" has been downvoted.
notification_title: Your <a href="%{resource_path}">comment</a> in "%{resource_title}"
has been downvoted. It now has a total of %{upvotes} upvotes and %{downvotes}
downvotes.
comment_upvoted:
email_intro: Your comment in "%{resource_title}" has been upvoted. It now
has a total of %{upvotes} upvotes and %{downvotes} downvotes.
email_outro: You have received this notification because you are the author
of this comment.
email_subject: Your comment in "%{resource_title}" has been upvoted.
notification_title: Your <a href="%{resource_path}">comment</a> in "%{resource_title}"
has been upvoted. It now has a total of %{upvotes} upvotes and %{downvotes}
downvotes.
initiatives:
initiative_sent_to_technical_validation:
email_intro: The initiative "%{resource_title}" has been sent to technical
validation. Check it out at <a href="%{admin_initiative_url}">the admin
panel</a>
email_outro: You have received this notification because you are an admin
of the platform.
email_subject: Initiative "%{resource_title}" was sent to technical validation.
notification_title: The initiative "%{resource_title}" has been sent to
technical validation. Check it out at <a href="%{admin_initiative_path}">the
admin panel</a>
support_threshold_reached:
email_intro: The initiative %{resource_title} has reached the signatures
threshold
email_subject: Signatures threshold reached
notification_title: The <a href="%{resource_path}">%{resource_title}</a>
initiative has reached the signatures threshold
meetings:
admin:
exports:
meeting_comments: Comments
meetings:
edit:
title: Edit meeting
form:
available_slots_help: Leave it to 0 if you have unlimited slots available
disclaimer: 'Disclaimer: By using an external registration system, you''re
aware that the organizers of %{organization} are not responsible for
the data provided by the users to the external service.'
location_hints_help: 'Location hints: additional info. Example: the floor
of the building if it is an in-person meeting, or the meeting password
if it is an online meeting with restricted access.'
online_meeting_url_help: 'Link: allow participants to connect directly
to your meeting'
registration_url_help: 'Link: allow participants to go on the external
service you are using for registrations'
select_a_meeting_type: Please select a meeting type
select_a_registration_type: Please select a registration type
minutes:
edit:
title: Edit minutes
last_activity:
meeting_updated_at_html: "<span>Meeting updated at %{link}</span>"
meeting_closes:
edit:
back: Back
close: Close meeting
title: Close meeting
meetings:
filters:
activity: My activity
all: All
my_meetings: My meetings
type: Type
type_values:
all: All
hybrid: Both
in_person: In-person
online: Online
form:
available_slots_help: Leave it to 0 if you have unlimited slots available
disclaimer: 'Disclaimer: By using an external registration system, you''re
aware that the organizers of %{organization} are not responsible for the
data provided by the users to the external service.'
location_hints_help: 'Location hints: additional info. Example: the floor
of the building if it is an in-person meeting, or the meeting password
if it is an online meeting with restricted access.'
online_meeting_url_help: 'Link: allow participants to connect directly to
your meeting'
registration_url_help: 'Link: allow participants to go on the external service
you are using for registrations'
select_a_meeting_type: Please select a meeting type
select_a_registration_type: Please select a registration type
show:
close_meeting: Close meeting
registration_type:
on_different_platform: On a different platform
on_this_platform: On this platform
registration_disabled: Registration disabled
type_of_meeting:
hybrid: Both
in_person: In person
online: Online
metrics:
download:
csv: Download data (CSV)
blocked_users:
object: blocked users
title: Blocked users
reported_users:
object: reported users
title: Reported users
user_reports:
object: user reports
title: User reports
account:
blocked: This account has been blocked due to Terms and Conditions violation
delete:
alert: This action cannot be undone. If you delete your account you won't
be able to log in with your credentials. The deletion of your account will
result in the anonymization of your contributions. You will still be able
to create a new account, but these contributions will not be associated
with it.
admin_log:
impersonation_log:
manage: "%{user_name} has managed %{resource_name} because %{reason}"
organization:
update_id_documents_config: "%{user_name} updated the Identity Documents authorization
configuration"
participatory_space_private_user:
create_via_csv: "%{user_name} invited %{resource_name} via CSV to be a private
participant"
user:
block: "%{user_name} blocked user %{resource_name}"
promote: "%{user_name} has promoted %{resource_name}"
transfer: "%{user_name} transfered the participant %{resource_name}"
unblock: "%{user_name} unblocked user %{resource_name}"
grant_id_documents_offline_verification: "%{user_name} verified %{resource_name}
using an offline Identity Documents authorization"
user_moderation:
unreport: "%{user_name} unreported an %{resource_type} - %{unreported_user_name}"
conferences:
partner:
create: "%{user_name} created the partner %{resource_name} in the %{space_name}
conference"
delete: "%{user_name} removed the partner %{resource_name} from the %{space_name}
conference"
update: "%{user_name} updated the partner %{resource_name} in the %{space_name}
conference"
authorization_handlers:
errors:
duplicate_authorization: A participant is already authorized with the same
data. An administrator will contact you to verify your details.
block_user_mailer:
notify:
body_1: Your account was blocked.
body_2: 'Reason: %{justification}'
greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
hello: Hello,
subject: Your account was blocked by %{organization_name}
content_blocks:
cta:
name: Image, text and Call To Action button
cta_settings_form:
background_image: Background image
button_text: Call To Action text
button_url: Call To Action URL
description: Description
highlighted_elements_settings_form:
orders:
label: 'Sort elements by:'
random: Random
recent: Most recent
data_portability:
show:
download_data_description: A file containing all the information associated
with your account will be sent to <strong>%{user_email}</strong>. This email
will contain a .zip file and a password to open it.<br/><br/>To unzip the
file, you will need <a href="https://www.7-zip.org/">7-Zip</a> (for Windows)
or <a href="https://www.keka.io/">Keka</a> (for MacOS). If you use Linux,
most of the time you will have it installed by default. If not, you can
use <a href="https://gitlab.gnome.org/GNOME/file-roller">File Roller</a>
or <a href="https://peazip.github.io">PeaZip</a>).
devise:
omniauth_registrations:
new:
nickname_help: Your alias in %{organization}. Can only contain letters,
numbers, '-' and '_'.
registrations:
new:
nickname_help: Your alias in %{organization}. Can only contain letters,
numbers, '-' and '_'.
sessions:
user:
timed_out: You were inactive for too long and you have been automatically
signed out from the service. If you would like to continue using the service,
please sign in again.
export_mailer:
data_portability_export:
click_button: 'Click the next link to download your data.<br/>The file will
be available until %{date}.<br/>You will need <a href="https://www.7-zip.org/">7-Zip</a>
(for Windows), <a href="https://www.keka.io/en/">Keka</a> (for MacOS) or
<a href="https://peazip.github.io">PeaZip</a> (for Linux) to open it. Password:
%{password}'
follows:
create:
participatory_space: Following <span class="show-for-sr">%{resource_name}</span>
forms:
file_help:
file:
message_2: For images, use preferrably landscape images, the service crops
the image. For CSV files, the separator between columns must be a comma
(",")
question_types:
files: Files
help:
participatory_spaces:
consultations:
contextual: "<p>A <strong>consultation</strong> is a space that allows you
to ask a clear question to all the people who form an organization, make
a call to participate in the consultation, spark and order the debate
for or against a response. When the consultation date arrives, you can
vote and publish the results of the votes.</p> <p>Examples: The consultations
can be about almost any aspect that affects an organization: some examples
are changing the name or logo of the organization offering several alternatives,
deciding Yes or No to become part of a larger organization, validating
or rejecting a new strategic plan or the result of a working group, or
defining whether the positions should remain a maximum of 1, 2 or 3 mandates.</p>\n"
page: "<p>A <strong>consultation</strong> is a space that allows you to
ask a clear question to all the people who form an organization, make
a call to participate in the consultation, spark and order the debate
for or against a response. When the consultation date arrives, you can
vote and publish the results of the votes.</p> <p>Examples: The consultations
can be about almost any aspect that affects an organization: some examples
are changing the name or logo of the organization offering several alternatives,
deciding Yes or No to become part of a larger organization, validating
or rejecting a new strategic plan or the result of a working group, or
defining whether the positions should remain a maximum of 1, 2 or 3 mandates
in the organization.</p>\n"
votings:
contextual: "<p>A <strong>voting</strong> is a space that allows you to
ask a clear question to all the people who form an organization, make
a call to participate in the voting, spark and order the debate for or
against a response. When the voting date arrives, you can vote and publish
the results of the votes.</p> <p>Examples: The votings can be about almost
any aspect that affects an organization: some examples are changing the
name or logo of the organization offering several alternatives, deciding
Yes or No to become part of a larger organization, validating or rejecting
a new strategic plan or the result of a working group, or defining whether
the positions should remain a maximum of 1, 2 or 3 mandates.</p>\n"
page: "<p>A <strong>voting</strong> is a space that allows you to ask a
clear question to all the people who form an organization, make a call
to participate in the voting, spark and order the debate for or against
a response. When the voting date arrives, you can vote and publish the
results of the votes.</p> <p>Examples: The votings can be about almost
any aspect that affects an organization: some examples are changing the
name or logo of the organization offering several alternatives, deciding
Yes or No to become part of a larger organization, validating or rejecting
a new strategic plan or the result of a working group, or defining whether
the positions should remain a maximum of 1, 2 or 3 mandates.</p>\n"
title: What are votings?
menu:
votings: Votings
messaging:
conversations:
show:
not_allowed: This participant does not accept direct messages.
notifications_settings:
show:
administrators: Administrators
email_on_moderations: I want to receive an email every time something is reported
for moderation.
profile:
inaccessible_message: This profile is inaccessible due to Terms and Conditions
violation!
profiles:
show:
send_private_message: Send private message
reported_mailer:
report:
content_original_language: Content original language
id: ID
see_report: See report
shared:
flag_user_modal:
already_reported: This content is already reported and it will be reviewed
by an admin.
close: Close
description: What is inappropriate about the user?
does_not_belong: Contains illegal activity, suicide threats, personal information,
or something else you think doesn't belong on %{organization_name}.
offensive: Contains racism, sexism, slurs, personal attacks, death threats,
suicide requests or any form of hate speech.
report: Report
spam: Contains clickbait, advertising, scams or script bots.
title: Report inappropriate User
user_report_mailer:
notify:
body_1: User %{user} has been reported by %{token}
body_2: 'Reason: %{reason}'
greetings: Greetings,<br/>%{organization_name}<br/><a href="%{organization_url}">%{organization_url}</a>
hello: Hello %{admin},
subject: A new user has been reported in %{organization_name}
participatory_processes:
admin:
new_import:
accepted_types:
json: JSON
participatory_process_groups:
form:
metadata: Metadata
title: General Information
visibility: Visibility
show:
belongs_to_group: This process belongs to
debates:
admin:
debates:
form:
debate_type: Debate type
finite: Finite (With start and end times)
open: Open (No start or end times)
exports:
comments: Comments
debates:
show:
open: Open debate
last_activity:
debate_updated_at_html: "<span>Debate updated at %{link}</span>"
conferences:
conference_speaker:
show:
speaking_at: Speaking at
budgets:
admin:
budgets:
index:
finished_orders: Finished votes
pending_orders: Pending votes
users_with_finished_orders: Users with finished votes
users_with_pending_orders: Users with pending votes
exports:
projects: Projects
proposals_imports:
new:
title: Import proposals
projects:
budget_excess:
budget_excess:
description: This project exceeds the maximum budget and can not be added.
If you want, you can delete a project you have already selected to add,
or make your vote according to your preferences.
description: This project exceeds the maximum budget and can not be added.
If you want, you can delete a project you have already selected to add,
or make your vote according to your preferences.
projects_excess:
description: This project exceeds the maximum number of projects and cannot
be added. If you want, you can delete a project you have already selected
to add, or make your vote according to your preferences.
title: Maximum projects exceeded
budget_summary:
minimum_projects_rule:
description: What projects do you think we should allocate budget for?
Select at least %{minimum_number} projects you want and vote according
to your preferences to define the budget.
instruction: "<li>Select at least %{minimum_number} projects you want
and vote according to your preferences to define the budget.</li>"
projects_rule:
description: What projects do you think we should allocate budget for?
Select at least %{minimum_number} and up to %{maximum_number} projects
you want and vote according to your preferences to define the budget.
instruction: "<li>Select at least %{minimum_number} and up to %{maximum_number}
projects you want and vote according to your preferences to define the
budget.</li>"
projects_rule_maximum_only:
description: What projects do you think we should allocate budget for?
Select up to %{maximum_number} projects you want and vote according
to your preferences to define the budget.
instruction: "<li>Select up to %{maximum_number} projects you want and
vote according to your preferences to define the budget.</li>"
rules:
title: Budget rules
total_budget: Total budget
total_projects: Total votes
vote_threshold_percent_rule:
description: What projects do you think we should allocate budget for?
Assign at least %{minimum_budget} to the projects you want and vote
according to your preferences to define the budget.
instruction: "<li>Assign at least %{minimum_budget} to the projects you
want and vote according to your preferences to define the budget.</li>"
project:
you_voted: You voted this
moderations:
actions:
expand: Expand
models:
moderation:
fields:
created_at: Creation date
participatory_space: Participatory space
reportable_id: Id
reportable_type: Type
report:
fields:
details: Reason details
locale: Language
reason: Reason
verifications:
csv_census:
admin:
instructions:
title: You need to activate the CSV census for this organization
dummy_authorization:
extra_explanation:
user_postal_codes:
one: Participation is restricted to participants with the postal code
%{postal_codes}, and your postal code is %{user_postal_code}.
other: 'Participation is restricted to participants with any of the following
postal codes: %{postal_codes}. Your postal code is %{user_postal_code}.'
user_scope: Participation is restricted to participants with the scope %{scope_name},
and your scope is %{user_scope_name}.
elections:
actions:
manage_answers: Manage answers
manage_questions: Manage questions
manage_steps: Manage steps
admin:
answers:
select:
disable: Unselect answer
enable: Mark answer as selected
invalid: There was a problem selecting this answer
success: Answer successfully selected
unselect:
invalid: There was a problem unselecting this answer
success: Answer successfully unselected
exports:
elections: Elections
models:
trustee:
name: Trustee
proposals_imports:
new:
title: Import proposals
steps:
create_election:
errors:
max_selections: The questions do not have a <strong>correct value for
amount of answers</strong>
minimum_answers: Questions must have <strong>at least two answers</strong>.
minimum_questions: The election <strong>must have at least one question</strong>.
published: The election is <strong>not published</strong>.
time_before: The start time is in <strong>less than 3 hours</strong>
before the election starts.
trustees_number: The participatory space <strong>must have at least
%{number} trustees with public key</strong>.
invalid: There was a problem setting up this election
no_trustees: There are no Trustees configured for this participatory space
not_used_trustee: "(not used)"
public_key:
'false': does not have a <strong>public key</strong>
'true': has a <strong>public key</strong>
requirements:
max_selections: All the questions have a correct value for <strong>maximum
of answers</strong>.
minimum_answers: Each question has <strong>at least 2 answers</strong>.
minimum_questions: The election has <strong>at least 1 question</strong>.
published: The election is <strong>published</strong>.
time_before: The setup is being done <strong>at least %{hours} hours</strong>
before the election starts.
trustees_number: The participatory space has <strong>at least %{number}
trustees with public key</strong>.
submit: Setup election
success: Election successfully sent to the Bulletin Board
title: Setup election
trustees: Election Trustees
created:
invalid: There was a problem starting the key ceremony
submit: Start the key ceremony
success: Start key ceremony request was successfully sent to the Bulletin
Board
title: Election created
trustees: Trustees
key_ceremony:
title: Key ceremony
trustees: Trustees
key_ceremony_ended:
errors:
time_before: The election is ready to start. You have to wait until
%{hours} hours before the starting time (%{start_time}) to start the
voting period.
invalid: There was a problem starting the voting period
requirements:
time_before: The election will start soon. You can start the voting
period manually, or it will be started automatically before the starting
time, at %{start_time}.
submit: Start voting period
success: Start voting period request was successfully sent to the Bulletin
Board
title: Ready to start
processing: Processing...
results_published:
title: Results published
tally:
title: Tally process
trustees: Trustees
tally_ended:
submit: Publish results
title: Results calculated
vote:
errors:
time_after: The election is still ongoing. You have to wait until the
ending time (%{end_time}) to end the voting period.
invalid: There was a problem ending the voting period
requirements:
time_after: The election has ended. You can end the voting period manually,
or it will be ended automatically in a few minutes.
submit: End voting period
success: End voting period request was successfully sent to the Bulletin
Board
title: Vote period
vote_ended:
invalid: There was a problem starting the tally
submit: Start tally
success: Start tally request was successfully sent to the Bulletin Board
title: Vote period ended
vote_stats:
no_vote_statistics_yet: No vote statistics yet
title: Vote Statistics
voters: Voters
votes: Votes
trustees_participatory_spaces:
actions:
disable: Disable
enable: Consider
create:
exists: Trustee exists for this participatory space
invalid: There was a problem creating a trustee
success: Trustee successfully created
delete:
invalid: There was a problem removing this trustee
success: Trustee successfully removed
form:
select_user: Select user
index:
title: Trustees
new:
create: Create Trustee
title: New Trustee
update:
invalid: There was a problem updating %{trustee} trustee
success: Trustee %{trustee} successfully updated
admin_log:
election:
end_vote: "%{user_name} ended the voting period for the %{resource_name}
election on the Bulletin Board"
setup: "%{user_name} created the %{resource_name} election on the Bulletin
Board"
start_key_ceremony: "%{user_name} started the key ceremony for the %{resource_name}
election on the Bulletin Board"
start_tally: "%{user_name} started the tally for the %{resource_name} election
on the Bulletin Board"
start_vote: "%{user_name} started the voting period for the %{resource_name}
election on the Bulletin Board"
elections:
preview:
available_answers: Available answers
description: These are the questions you will find in the voting process
title: Election questions
results:
description: These are the results of the voting, for each question
selected: Selected
title: Election results
votes:
one: "%{count} vote"
other: "%{count} votes"
zero: "%{count} votes"
show:
action-button:
change-vote: Change your vote
vote: Start voting
vote-again: Vote again
back: Available elections
callout:
already-voted: You have already voted in this election. You can change
your vote or verify it.
vote-rejected: It was not possible to verify your vote. Please cast it
again.
verify:
already-voted: Already voted?
verify-here: Check your vote here.
will-verify: You will be able to verify your vote once the election is
started.
voting_period_status:
ongoing: 'Active voting until: %{end_time}'
models:
election:
fields:
bb_status: Bulletin Board status
trustees_participatory_space:
fields:
considered: considered
email: Email
inactive: inactive
name: Name
notification: Notification sent at
public_key: Public Key
status: Status
trustee_zone:
elections:
backup_modal:
description: This election is being created in the Bulletin Board. Is
is very important that every Trustee participating in it creates a backup
copy of these keys and store them in a safe place. After that, the process
continues.
download_election_keys: Download keys
download_icon: Icon that indicates a download action
title: Backup election keys for %{election}
key_ceremony_steps:
back: Back
description: This election is being created in the Bulletin Board. To
complete this process, your participitation as a Trustee is needed.
keys:
create_election: Keys generation
key_ceremony:
joint_election_key: Joint Key generation
step_1: Keys publishing
list:
status: Status
task: Task
process_warning: Once the process is started, you should not exit this
page until the process ends. It will take several minutes, as all Trustees
should be connected to complete it.
start: Start
start_icon: Icon that indicates a start button to start the election keys
generation
status:
completed: Completed
pending: Pending
processing: Processing
title: Create election keys for %{election}
restore_modal:
description: The Bulletin Board has information from you as a Trustee
on this election. To continue the process, first upload the backup file
generated during the previous session.
title: Restore election keys for %{election}
upload_election_keys: Upload election keys
upload_icon: Icon that indicates a download action
tally_steps:
back: Back
description: The results for this election are being computed in the Bulletin
Board. To complete this process, your participitation as a Trustee is
needed.
keys:
end_tally: Tally ended
tally:
cast: Tally cast
share: Tally share
list:
status: Status
task: Task
process_warning: Once the process is started, you should not exit this
page until the process ends. It will take several minutes, as all Trustees
should be connected to complete it.
start: Start
start_icon: Icon that indicates a start button to start the election keys
generation
status:
completed: Completed
pending: Pending
processing: Processing
title: Tally for %{election}
update:
error: The election status wasn't updated.
success: 'The election status is: %{status}'
menu:
trustee_zone: Trustee zone
no_bulletin_board:
body: A configured Bulletin Board is required for this section. Contact
the Administrator for more details.
title: Sorry, the Bulletin Board is not configured yet.
trustees:
show:
elections:
list:
action_required:
'false': 'No'
name: Action required?
'true': Perform action
bb_status: Status
election: Election
voting_period: Voting period
no_elections: There are no elections where you act as a Trustee.
title: Elections
identification_keys:
cancel: Cancel
generate: Generate identification keys
generate_error: There was an error generating the identification keys.
generate_legend: You need to generate an identification pair of keys
to participate on elections as a Trustee.
generate_legend_1: After pressing the button you should download the
file with the generated identification keys.
generate_legend_2: Copy the downloaded file to a clean USB device
generate_legend_3: Ensure your computer doesn't have a copy of the file
(e.g. check the Downloads and Desktop folders).
generate_legend_4: Make another copy of the file on a different external
device and store it in a very safe place.
submit: Submit
submit_legend: After following all the steps explained above, complete
the process sending the public identification key to the Decidim server.
submit_title: Submit the public identification key
title: Trustee identification keys
upload: Upload your identification keys
upload_error:
invalid_format: The uploaded file doesn't contain any identification
key.
invalid_key: The identification keys in the uploaded file can't be
loaded.
invalid_public_key: The identification keys in the uploaded file doesn't
match the public identification key stored by Decidim.
upload_legend: Decidim has your public identification keys, but your
browser still doesn't have it. You need to import the file with your
identification keys to your computer from the backup you created after
generating them.
not_supported_browser_description: It looks like you are using a web browser
that can't be used to act as a Trustee. Make sure you're using the most
recent version of your browser, or try using any of the most popular
browsers to be able to complete your Trustee tasks.
not_supported_browser_title: Upgrade browser to act as a Trustee
trustee_role_description: You have been assigned to act as a Trustee in
some of the elections celebrated in this platform.
update:
success: Your identification public key was successfully stored.
votes:
confirmed:
error: Sorry, there was an error confirming the vote. Please vote again.
verify_link: To check it, copy the identifier and paste it on the <a href="%{link}">vote
verification page</a>
failed:
header: Vote failed
lead: Your vote has not been casted!
text: Something went wrong, please try it again.
processing:
header: Processing vote...
text: Your vote has been received and it is being processing. Please wait.
update:
error: There was a problem updating the vote status
success: Vote status successfully updated
verify:
content:
heading: Verify your vote
info: This verifier checks that your vote, identified with an encrypted
text string, has been cast correctly and is inside the ballot box.
error:
header: Vote not found!
info: The vote code was not found in the %{link} ballot box, try again.
form:
back: Back to Decidim
submit: Check
vote_identifier: 'Identifier code:'
header:
title: Verify your vote
success:
header: Vote located!
info: Your encrypted vote is in the %{link} ballot box
votings:
admin:
content_blocks:
highlighted_votings:
max_results: Maximum amount of elements to show
landing_page:
attachments_and_folders:
name: Voting attachments and folders
description:
name: Voting description
elections:
name: Voting elections
header:
name: Voting header
html_block_1:
name: Voting html block 1
html_block_2:
name: Voting html block 2
html_block_3:
name: Voting html block 3
metrics:
name: Voting metrics
polling_stations:
name: Voting polling stations
stats:
name: Voting statistics
timeline:
name: Voting timeline
index:
not_published: Unpublished
published: Published
landing_page:
content_blocks:
edit:
update: Update
edit:
active_content_blocks: Active content blocks
inactive_content_blocks: Inactive content blocks
menu:
votings: Votings
votings_submenu:
attachment_collections: Folders
attachment_files: Files
attachments: Attachments
components: Components
info: Information
landing_page: Landing Page
monitoring_committee_members: Monitoring Committee
polling_officers: Polling Officers
polling_stations: Polling Stations
models:
monitoring_committee_member:
fields:
email: Email
name: Name
name: Monitoring Committee Member
polling_officer:
fields:
email: Email
name: Name
polling_station: Polling station (role)
name: Polling Officer
polling_station:
fields:
address: Address
polling_station_managers: Managers
polling_station_president: President
title: Title
name: Polling Station
voting:
fields:
created_at: Created at
promoted: Highlighted
published: Published
title: Title
monitoring_committee_members:
create:
invalid: There was a problem creating this monitoring committee member
success: Monitoring committee member successfully created
destroy:
invalid: There was a problem deleting this monitoring committee member
success: Monitoring committee member successfully deleted
form:
existing_user: Existing participant
non_user: Invite new participant
select_user: Search by name, email or nickname
user_type: Participant type
index:
title: Monitoring committee
new:
create: Create
title: Create monitoring committee member
polling_officers:
create:
invalid: There was a problem creating this polling officer
success: Polling officer successfully created
destroy:
invalid: There was a problem deleting this polling officer
success: Polling officer successfully deleted
form:
existing_user: Existing participant
non_user: Invite new participant
select_user: Search by name, email or nickname
user_type: Participant type
index:
role_manager: manager
role_president: president
title: Polling officers
new:
create: Create
title: Create polling officer
polling_officers_picker:
choose_polling_officers: Choose polling officers
close: Close
more_polling_officers: There are %{number} more polling officers. Refine
your search to locate them.
no_polling_officers: No polling officers match your search criteria or
there isn't any polling officer.
polling_stations:
create:
invalid: There was a problem creating this polling station
success: Polling station successfully created
destroy:
invalid: There was a problem deleting this polling station
success: Polling station successfully deleted
edit:
title: Edit polling station
update: Update polling station
form:
address_help: 'Address: used by Geocoder to find the location'
location_help: 'Location: message directed to the voters implying the
exact place of the polling station'
location_hints_help: 'Location hints: additional info. Example: the floor
of the building where the polling station is located.'
polling_station_managers_help: 'Polling station managers: the officers
that will act as polling station managers. Make sure the officers have
already been created in Polling Officers and that they are not already
assigned to another polling station'
polling_station_president_help: 'Polling station officer: the officer
that will act as polling station president. Make sure the officer has
already been created in Polling Officers and that (s)he is not already
assigned to another polling station'
select_president: Select a polling officer as president of the polling
station
index:
title: Polling stations
new:
create: Create
title: Create polling station
update:
invalid: There was a problem updating this polling station
success: Polling station successfully updated
titles:
votings: Votings
votings:
actions:
confirm_destroy: Are you sure?
destroy: Destroy
new_voting: New Voting Space
publish: Publish
unpublish: Unpublish
create:
invalid: There was a problem creating this voting
success: Voting successfully created
edit:
add_election_component: You don't have any election configured for this
voting. Please add it in the Components section
assign_missing_officers: There are Polling Stations without President
and/or Managers. Please assign them from the Polling stations section
update: Update
form:
select_a_voting_type: Please select a voting type
slug_help: 'URL slugs are used to generate the URLs that point to this
voting. Only accepts letters, numbers and dashes, and must start with
a letter. Example: %{url}'
title: Title
voting_type:
hybrid: Hybrid
in_person: In person
online: Online
new:
create: Create
title: New Voting
publish:
success: Voting successfully published
unpublish:
success: Voting successfully unpublished
update:
invalid: There was a problem updating this voting
success: Voting successfully updated
admin_log:
voting:
create: "%{user_name} created the %{resource_name} voting"
publish: "%{user_name} published the %{resource_name} voting"
unpublish: "%{user_name} unpublished the %{resource_name} voting"
content_blocks:
highlighted_votings:
name: Highlighted votings
monitoring_committee_members:
actions:
confirm_destroy: Are you sure?
destroy: Delete
new: New member
title: Actions
pages:
home:
highlighted_votings:
active_votings: Active votings
see_all_votings: See all votings
votings_button_title: Link to the Votings page displaying all the votings
polling_officer_zone:
menu:
polling_officer_zone: Polling Officer zone
polling_officers:
show:
actions:
count_votes: Count the votes in the ballot box
identify_person: Identify and verify a person
polling_officer_role_description: You have been assigned to act as a Polling
Station Officer (President or Manager) in some of the elections celebrated
in this platform.
polling_stations:
list:
address: Address
name: Name
role: Your role
voting: Voting
no_polling_stations: You are not assigned to any Polling Station yet.
title: Polling Stations
polling_officers:
actions:
confirm_destroy: Are you sure?
destroy: Delete
new: New
title: Actions
roles:
manager: Manager
president: President
unassigned: Unassigned
polling_stations:
actions:
confirm_destroy: Are you sure?
destroy: Delete
edit: Edit
new: New
title: Actions
votings:
count:
title:
one: "%{count} voting"
other: "%{count} votings"
filters:
active: Active
all: All
finished: Finished
search: Search
state: Status
upcoming: Upcoming
filters_small_view:
close_modal: Close modal
filter: Filter
filter_by: Filter by
unfold: Unfold
index:
no_votings: No voting matches your search criteria.
only_finished: Currently, there are no scheduled votings, but here you can
find the finished votings listed.
title: Votings
orders:
label: 'Sort votings by:'
random: Random
recent: Most recent
show:
dates: Dates
votings_m:
badge_name:
finished: Finished
ongoing: Ongoing
upcoming: Upcoming
footer_button_text:
participate: Participate
view: View
vote: Vote
unspecified: Not specified
voting_type:
hybrid: Hybrid
in_person: In person
online: Online
voting_types_label: Voting type
proposals:
admin:
exports:
proposal_comments: Comments
participatory_texts:
new_import:
accepted_mime_types:
odt: ODT
document_legend: 'Add a document lesser than 2MB, each section until 3
levels deep will be parsed into proposals. Suported formats are: %{valid_mime_types}'
proposals:
form:
delete_attachment: Delete attachment
proposals_imports:
new:
title: Import proposals
content_blocks:
highlighted_proposals:
proposals: Proposals
last_activity:
proposal_updated_at_html: "<span>Proposal updated at %{link}</span>"
proposals:
dynamic_map_instructions:
instructions: <h3>You can move the point on the map. </h3><p>Don't forget
to click on the "Update Position" button before publishing your proposal.</p>
edit:
add_documents: Documents
add_images: File
delete_document: Delete Document
delete_image: Delete Image
gallery_legend: "(Optional) Add an image to the proposal card"
placeholder:
address: 37 Homewood Drive Brownsburg, IN 46112
preview:
announcement_body: Your proposal has been saved as a draft. It needs to
be published for it to appear on the site.
announcement_title: Your proposal has not yet been published
update_position: Update position
participatory_process_groups:
content_blocks:
html_1:
name: First HTML block
html_2:
name: Second HTML block
html_3:
name: Third HTML block
metadata:
developer_group: Promoted by
name: Metadata
participatory_scope: What is decided
participatory_structure: How is it decided
target: Who participates
participatory_processes:
name: Participatory processes
title:
meta_scope: Scope
name: Title, description and hashtag
participatory_processes:
one: 1 process
other: "%{count} processes"
assemblies:
statistics:
followers_count: Followers
headline: Statistics
no_stats: There are no statistics yet.
processes_count: Processes
initiatives:
admin:
content_blocks:
highlighted_initiatives:
order:
default: Default (Least recent)
label: 'Order element by:'
most_recent: Most recent
initiatives:
edit:
confirm_send_to_technical_validation: Are you sure?
initiatives_types:
form:
child_scope_threshold_enabled_help: 'This config flag doesn''t support
offline votes, it enables sub-scopes and works with an authorization
handler that associates a scope to the user, make sure you select that
authorization, bellow in authorization settings. For it to work scopes
need to be configured in hierarchical way : 1 Parent - N Child. For
more info on how this configuration works, see this <a href="https://docs.decidim.org/admin-manual/en/initiatives/"
target="_blank">link</a>.'
committee_requests:
approve:
success: Request has been approved.
revoke:
success: Request has been revoked.
create_initiative:
fill_data:
fill_data_help: "<ul> <li>Review the content of your initiative. Is your
title easy to understand? Is the objective of your initiative clear?</li>
<li>You have to choose the type of signature. In-person, online or a combination
of both</li> <li>Which is the geographic scope of the initiative?</li>
</ul>"
finish:
callout_text: Congratulations! Your initiative has been successfully created.
confirm: You are going to send the initiative for an admin to review it
and publish it. Once published you will not be able to edit it. Are you
sure?
edit_my_initiative: Edit my initiative
send_my_initiative: Send my initiative to technical validation
finish_help:
access_reminder: You can access your initiatives through the %{link} filter
on the Initiatives page.
publish_helper_text: Remember that for your initiative to be published you
must complete the required information and <strong>send it to technical
validation</strong> for an administrator to review it.
promotal_committee:
individual_help_text: This kind of initiative requires a Promoting Commission
consisting of at least %{committee_size} people (attestors). You must
share the following link with the other people that are part of this initiative.
When your contacts receive this link they will have to follow the indicated
steps.
select_initiative_type:
select_initiative_type_help: Initiatives are a means by which the participants
can intervene so that the organization can undertake actions in defence
of the general interest. Which initiative do you want to launch?
edit:
accept: Accept the initiative
back: Back
confirm: Are you sure?
discard: Discard the initiative
export_pdf_signatures: Export PDF of signatures
export_votes: Export signatures
reject: Reject initiative
title: Edit Initiative
update: Update
events:
approve_membership_request:
email_intro: "%{author_nickname} accepted your application to be part of
the promoter committee for the initiative %{resource_title}."
email_outro: 'You received this notification because you applied to this
initiative: %{resource_title}'
email_subject: "%{author_nickname} accepted your application to the promoter
committee"
notification_title: <a href="%{author_profile_url}">%{author_nickname}</a>
accepted your application to be part of the promoter committee for the
following initiative <a href="%{resource_url}">%{resource_title}</a>.
revoke_membership_request:
email_intro: "%{author_nickname} rejected your application to be part of
the promoter committee for the following initiative %{resource_title}."
email_outro: 'You received this notification because you applied to this
initiative: %{resource_title}.'
email_subject: "%{author_nickname} rejected your application to the promoter
committee"
notification_title: <a href="%{author_profile_url}">%{author_nickname}</a>
rejected your application to be part of the promoter committee for the
following initiative <a href="%{resource_url}">%{resource_title}</a>.
spawn_committee_request_event:
email_intro: "%{applicant_nickname} applied for the promoter committee of
your initiative %{resource_title}. To accept or reject the application,
go to the edit form of your initiative."
email_outro: 'You received this notification because you are the author
of this initiative: %{resource_title}'
email_subject: "%{applicant_nickname} wants to join your initiative"
notification_title: <a href="%{applicant_profile_url}">%{applicant_nickname}</a>
applied for the promoter committee of your initiative <a href="%{resource_url}">%{resource_title}</a>.
To accept or reject click <a href="%{resource_url}/edit">here</a>.
form:
add_attachments: Documents
attachment_legend: "(Optional) Add Attachments"
delete_attachment: Delete
initiatives:
committee_members:
approve: Approve
confirm_revoke: Are you sure?
invite_to_committee_help: Share this link to invite other participants to
the promoter committee
no_members_yet: There are no members in the promoter committee
revoke: Revoke
title: Committee members
print:
address: Address
author_title: Author of the initiative
email: Email
full_name: Full Name
general_title: Application for admission of an initiative
id_number: ID Number
initiative:
attachments: Attached documentation (please write the name of each document
below)
description: 'Description:'
title: 'Title:'
type: Type of initiative
legal_text: The personal data collected will be incorporated and treated
confidentially by the organization, according to current legislation.
phone_number: Phone Number
place_date: Place, Date
postal_code: Postal Code/ZIP
print: Print
province: Province/State
section: 'If requested by the organization, please print and fill out this
form to submit where indicated:'
signature: Signature
result:
answer_title: This initiative has been answered
show:
any_vote_method: This initiative collects both online and in-person signatures.
confirm: You are going to send the initiative for an admin to review it
and publish it. Once published you will not be able to edit it. Are you
sure?
edit: Edit
offline_method: This initiative only collects in-person signatures.
print: Print Initiative
send_to_technical_validation: Send to technical validation
update:
error: An error has occurred
success: The initiative has been successfully updated
forms:
length_validator:
minimum:
one: At least %{count} character
other: At least %{count} characters
layouts:
decidim:
timeout_modal:
body: You have been inactive for %{minutes} minutes. If you continue being
inactive, you will be automatically signed out for your own security.
continue_session: Continue session
sign_out: Sign out
title: Would you like to continue your session?
admin:
global_moderations:
title: Global moderations
votings:
index:
promoted_votings: Highlighted votings
promoted_voting:
more_info: More info
vote: Vote
participatory_processes:
promoted_process_group:
more_info: More info
hello: Hello world
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment