diff --git a/Gemfile b/Gemfile
index e9045460ae..71a6ae789c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -156,6 +156,9 @@ group :development do
# Solargraph
gem 'solargraph'
+
+ # i18n-tasks
+ gem 'i18n-tasks', '~> 1.0.14'
end
group :test do
diff --git a/Gemfile.lock b/Gemfile.lock
index 1037c4b416..2452ad4608 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -276,12 +276,24 @@ GEM
hana (1.3.7)
hashdiff (1.1.1)
hashie (5.0.0)
+ highline (3.1.0)
+ reline
holidays (8.8.0)
htmlbeautifier (1.4.3)
htmlentities (4.3.4)
httpclient (2.8.3)
i18n (1.14.5)
concurrent-ruby (~> 1.0)
+ i18n-tasks (1.0.14)
+ activesupport (>= 4.0.2)
+ ast (>= 2.1.0)
+ erubi
+ highline (>= 2.0.0)
+ i18n
+ parser (>= 3.2.2.1)
+ rails-i18n
+ rainbow (>= 2.2.2, < 4.0)
+ terminal-table (>= 1.5.1)
importmap-rails (2.0.1)
actionpack (>= 6.0.0)
activesupport (>= 6.0.0)
@@ -445,6 +457,9 @@ GEM
rails-html-sanitizer (1.6.0)
loofah (~> 2.21)
nokogiri (~> 1.14)
+ rails-i18n (7.0.9)
+ i18n (>= 0.7, < 2)
+ railties (>= 6.0.0, < 8)
railties (7.2.0)
actionpack (= 7.2.0)
activesupport (= 7.2.0)
@@ -576,6 +591,8 @@ GEM
railties (>= 7.0.0)
tailwindcss-rails (2.7.3-x86_64-linux)
railties (>= 7.0.0)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
thor (1.3.1)
tilt (2.4.0)
timecop (0.9.10)
@@ -661,6 +678,7 @@ DEPENDENCIES
graphiql-rails
graphql
holidays
+ i18n-tasks (~> 1.0.14)
importmap-rails
jbuilder
listen
diff --git a/app/components/groups/table_component.en.yml b/app/components/groups/table_component.en.yml
deleted file mode 100644
index f2cef4fd8d..0000000000
--- a/app/components/groups/table_component.en.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-en:
- group_name: Group
- namespace_name: Source
- updated_at: Access Granted
- group_access_level: Access Level
- expires_at: Expiration
- action: Action
diff --git a/app/components/groups/table_component.fr.yml b/app/components/groups/table_component.fr.yml
deleted file mode 100644
index 42871e1b72..0000000000
--- a/app/components/groups/table_component.fr.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-fr:
- group_name: Group
- namespace_name: Source
- updated_at: Access Granted
- group_access_level: Access Level
- expires_at: Expiration
- action: Action
diff --git a/app/components/namespace_tree/row/row_contents_component.en.yml b/app/components/namespace_tree/row/row_contents_component.en.yml
deleted file mode 100644
index 52d873bfea..0000000000
--- a/app/components/namespace_tree/row/row_contents_component.en.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-en:
- stats:
- subnamespaces: Subgroups
- projects: Projects
\ No newline at end of file
diff --git a/app/components/namespace_tree/row/row_contents_component.fr.yml b/app/components/namespace_tree/row/row_contents_component.fr.yml
deleted file mode 100644
index aa1df8efd8..0000000000
--- a/app/components/namespace_tree/row/row_contents_component.fr.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-fr:
- stats:
- subnamespaces: Subgroups
- projects: Projects
diff --git a/app/components/nextflow/samplesheet/column_component.en.yml b/app/components/nextflow/samplesheet/column_component.en.yml
deleted file mode 100644
index 02a137e3a5..0000000000
--- a/app/components/nextflow/samplesheet/column_component.en.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-en:
- required: Required
- dropdown_prompt: Select an option
- default: "%{label} (default)"
diff --git a/app/components/nextflow/samplesheet/column_component.fr.yml b/app/components/nextflow/samplesheet/column_component.fr.yml
deleted file mode 100644
index 43f61c17b9..0000000000
--- a/app/components/nextflow/samplesheet/column_component.fr.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-fr:
- required: Required
- dropdown_prompt: Select an option
- default: "%{label} (default)"
-
diff --git a/app/components/nextflow/samplesheet_component.en.yml b/app/components/nextflow/samplesheet_component.en.yml
deleted file mode 100644
index 3290252dd5..0000000000
--- a/app/components/nextflow/samplesheet_component.en.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-en:
- label: Samples
- loading: Loading ...
diff --git a/app/components/nextflow/samplesheet_component.fr.yml b/app/components/nextflow/samplesheet_component.fr.yml
deleted file mode 100644
index 4969b25f0f..0000000000
--- a/app/components/nextflow/samplesheet_component.fr.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-fr:
- label: Samples
- loading: Loading ...
diff --git a/app/components/nextflow_component.en.yml b/app/components/nextflow_component.en.yml
deleted file mode 100644
index ced1212d00..0000000000
--- a/app/components/nextflow_component.en.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-en:
- name:
- label: Name (Optional)
- helper: A custom name will make it easier to search for this in the future.
\ No newline at end of file
diff --git a/app/components/nextflow_component.fr.yml b/app/components/nextflow_component.fr.yml
deleted file mode 100644
index 04c288840d..0000000000
--- a/app/components/nextflow_component.fr.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-fr:
- name:
- label: Name (Optional)
- helper: A custom name will make it easier to search for this workflow execution in the future.
\ No newline at end of file
diff --git a/app/components/samples/table_component.en.yml b/app/components/samples/table_component.en.yml
deleted file mode 100644
index 9de760d154..0000000000
--- a/app/components/samples/table_component.en.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-en:
- puid: Sample ID
- name: Sample Name
- project: Project
- created_at: Created
- updated_at: Last Updated
- attachments_updated_at: Files Last Updated
- action: Action
- counts:
- samples: Samples
- selected: Selected
- select_page: Select / Deselect visible samples
- limit:
- item: Samples
diff --git a/app/components/samples/table_component.fr.yml b/app/components/samples/table_component.fr.yml
deleted file mode 100644
index f2d04cfc58..0000000000
--- a/app/components/samples/table_component.fr.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-fr:
- puid: Sample ID
- name: Sample Name
- project: Project
- created_at: Created
- updated_at: Last Updated
- attachments_updated_at: Files Last Updated
- action: Action
- counts:
- samples: Samples
- selected: Selected
- select_page: Select / Deselect visible samples
- limit:
- item: Samples
diff --git a/app/components/viral/form/select_component.en.yml b/app/components/viral/form/select_component.en.yml
deleted file mode 100644
index 8812d1dcf5..0000000000
--- a/app/components/viral/form/select_component.en.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-en:
- default: Please select an option
diff --git a/app/components/viral/form/select_component.fr.yml b/app/components/viral/form/select_component.fr.yml
deleted file mode 100644
index e45567f4fe..0000000000
--- a/app/components/viral/form/select_component.fr.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-fr:
- default: Please select an option
diff --git a/app/components/viral/pagy/limit_component.en.yml b/app/components/viral/pagy/limit_component.en.yml
deleted file mode 100644
index e770a54331..0000000000
--- a/app/components/viral/pagy/limit_component.en.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-en:
- summary:
- one: "Displaying %{count} item"
- other: "Displaying %{from}-%{to} of %{count} items"
- items: "%{items} per page:"
diff --git a/app/components/viral/pagy/limit_component.fr.yml b/app/components/viral/pagy/limit_component.fr.yml
deleted file mode 100644
index 68b643ffca..0000000000
--- a/app/components/viral/pagy/limit_component.fr.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-fr:
- summary:
- one: "Displaying %{count} item"
- other: "Displaying %{from}-%{to} of %{count} items"
- items: "%{items} per page:"
diff --git a/app/components/viral/pagy/pagination_component.en.yml b/app/components/viral/pagy/pagination_component.en.yml
deleted file mode 100644
index 9f1826dc6f..0000000000
--- a/app/components/viral/pagy/pagination_component.en.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-en:
- aria-label: "Pagination"
- previous: "Previous"
- next: "Next"
diff --git a/app/components/viral/pagy/pagination_component.fr.yml b/app/components/viral/pagy/pagination_component.fr.yml
deleted file mode 100644
index 1a3e247322..0000000000
--- a/app/components/viral/pagy/pagination_component.fr.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-fr:
- aria-label: "Pagination"
- previous: "Précédente"
- next: "Suivante"
diff --git a/app/components/workflow_executions/table_component.en.yml b/app/components/workflow_executions/table_component.en.yml
deleted file mode 100644
index 9929399a08..0000000000
--- a/app/components/workflow_executions/table_component.en.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-en:
- id: ID
- name: Name
- state: State
- run_id: Run ID
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
- actions: Actions
- counts:
- workflow_executions: Workflow Executions
- selected: Selected
- select_page: Select / Deselect visible samples
diff --git a/app/components/workflow_executions/table_component.fr.yml b/app/components/workflow_executions/table_component.fr.yml
deleted file mode 100644
index 62c942f7fb..0000000000
--- a/app/components/workflow_executions/table_component.fr.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-fr:
- id: ID
- name: Name
- state: State
- run_id: Run ID
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
- actions: Actions
- counts:
- workflow_executions: Workflow Executions
- selected: Selected
- select_page: Select / Deselect visible samples
diff --git a/app/controllers/concerns/bot_actions.rb b/app/controllers/concerns/bot_actions.rb
index 05e54ab1fb..a4b53cc158 100644
--- a/app/controllers/concerns/bot_actions.rb
+++ b/app/controllers/concerns/bot_actions.rb
@@ -37,7 +37,7 @@ def create # rubocop:disable Metrics/MethodLength
if @new_bot_account[:bot_user_account].persisted?
render status: :ok, locals: {
type: 'success',
- message: t('.success'),
+ message: t('concerns.bot_actions.create.success'),
personal_access_token: @new_bot_account[:personal_access_token]
}
else
@@ -60,7 +60,7 @@ def destroy # rubocop:disable Metrics/MethodLength
if @bot_account.deleted?
render status: :ok, locals: {
type: 'success',
- message: t('.success')
+ message: t('concerns.bot_actions.destroy.success')
}
else
render status: :unprocessable_entity,
diff --git a/app/controllers/concerns/bot_personal_access_token_actions.rb b/app/controllers/concerns/bot_personal_access_token_actions.rb
index 7b2582c101..c29834146a 100644
--- a/app/controllers/concerns/bot_personal_access_token_actions.rb
+++ b/app/controllers/concerns/bot_personal_access_token_actions.rb
@@ -39,7 +39,7 @@ def create # rubocop:disable Metrics/MethodLength
if @personal_access_token.persisted?
render status: :ok, locals: {
type: 'success',
- message: t('.success'),
+ message: t('concerns.bot_personal_access_token_actions.create.success'),
personal_access_token: @personal_access_token
}
else
@@ -61,7 +61,7 @@ def revoke
if @personal_access_token.revoke!
render status: :ok, locals: {
personal_access_token: @personal_access_token, type: 'success',
- message: t('.success', pat_name: @personal_access_token.name)
+ message: t('concerns.bot_personal_access_token_actions.revoke.success', pat_name: @personal_access_token.name)
}
else
render status: :unprocessable_entity, locals: { type: 'alert',
diff --git a/app/controllers/concerns/file_import_actions.rb b/app/controllers/concerns/file_import_actions.rb
index 6b621c9a67..53582a1bd9 100644
--- a/app/controllers/concerns/file_import_actions.rb
+++ b/app/controllers/concerns/file_import_actions.rb
@@ -13,10 +13,11 @@ def create
@imported_metadata = ::Samples::Metadata::FileImportService.new(@namespace, current_user,
file_import_params).execute
if @namespace.errors.empty?
- render status: :ok, locals: { type: :success, message: t('.success') }
+ render status: :ok, locals: { type: :success, message: t('concerns.file_import_actions.create.success') }
elsif @namespace.errors.include?(:sample)
errors = @namespace.errors.messages_for(:sample)
- render status: :partial_content, locals: { type: :alert, message: t('.error'), errors: }
+ render status: :partial_content,
+ locals: { type: :alert, message: t('concerns.file_import_actions.create.error'), errors: }
else
error = @namespace.errors.full_messages_for(:base).first
render status: :unprocessable_entity, locals: { type: :danger, message: error }
diff --git a/app/controllers/concerns/membership_actions.rb b/app/controllers/concerns/membership_actions.rb
index 363b526670..0e07f29f86 100644
--- a/app/controllers/concerns/membership_actions.rb
+++ b/app/controllers/concerns/membership_actions.rb
@@ -42,7 +42,8 @@ def create # rubocop:disable Metrics/MethodLength
respond_to do |format|
format.turbo_stream do
render status: :ok, locals: { member: @new_member, type: 'success',
- message: t('.success', user: @new_member.user.email) }
+ message: t('concerns.membership_actions.create.success',
+ user: @new_member.user.email) }
end
end
else
@@ -60,7 +61,7 @@ def destroy # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/Per
if @member.deleted?
if current_user == @member.user
- flash[:success] = t('.leave_success', name: @namespace.name)
+ flash[:success] = t('concerns.membership_actions.destroy.leave_success', name: @namespace.name)
if @namespace.group_namespace?
redirect_to dashboard_groups_path(format: :html)
else
@@ -70,7 +71,8 @@ def destroy # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/Per
respond_to do |format|
format.turbo_stream do
render status: :ok, locals: { member: @member, type: 'success',
- message: t('.success', user: @member.user.email) }
+ message: t('concerns.membership_actions.destroy.success',
+ user: @member.user.email) }
end
end
end
@@ -91,13 +93,14 @@ def destroy # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/Per
end
end
- def update
+ def update # rubocop:disable Metrics/MethodLength
updated = Members::UpdateService.new(@member, @namespace, current_user, member_params).execute
respond_to do |format|
if updated
format.turbo_stream do
render status: :ok, locals: { member: @member, access_levels: @access_levels, type: 'success',
- message: t('.success', user_email: @member.user.email) }
+ message: t('concerns.membership_actions.update.success',
+ user_email: @member.user.email) }
end
else
format.turbo_stream do
diff --git a/app/controllers/concerns/share_actions.rb b/app/controllers/concerns/share_actions.rb
index 760c19f67e..1dd2b03e26 100644
--- a/app/controllers/concerns/share_actions.rb
+++ b/app/controllers/concerns/share_actions.rb
@@ -39,7 +39,7 @@ def create # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
locals: { namespace_group_link: @created_namespace_group_link,
access_levels: @access_levels,
type: 'success',
- message: t('.success',
+ message: t('concerns.share_actions.create.success',
namespace_name: @created_namespace_group_link.namespace.human_name,
group_name: @created_namespace_group_link.group.human_name) }
end
@@ -65,8 +65,9 @@ def destroy # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
if @namespace_group_link.deleted?
format.turbo_stream do
render status: :ok, locals: { namespace_group_link: @namespace_group_link, type: 'success',
- message: t('.success', namespace_name: @namespace.human_name,
- group_name: @namespace_group_link.group.human_name) }
+ message: t('concerns.share_actions.destroy.success',
+ namespace_name: @namespace.human_name,
+ group_name: @namespace_group_link.group.human_name) }
end
else
format.turbo_stream do
@@ -79,7 +80,7 @@ def destroy # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
format.turbo_stream do
render status: :bad_request,
locals: { type: 'alert',
- message: t('error') }
+ message: t('concerns.share_actions.destroy.error') }
end
end
end
@@ -88,9 +89,9 @@ def destroy # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
def update # rubocop:disable Metrics/MethodLength
@updated = GroupLinks::GroupLinkUpdateService.new(current_user, @namespace_group_link, group_link_params).execute
updated_param = if group_link_params[:group_access_level].nil?
- t('.params.expiration_date')
+ t('concerns.share_actions.update.params.expiration_date')
else
- t('.params.group_access_level')
+ t('concerns.share_actions.update.params.group_access_level')
end
respond_to do |format|
@@ -99,15 +100,16 @@ def update # rubocop:disable Metrics/MethodLength
render status: :ok, locals: { namespace_group_link: @namespace_group_link,
access_levels: @access_levels,
type: 'success',
- message: t('.success', namespace_name: @namespace.human_name,
- group_name: @namespace_group_link.group.human_name,
- param_name: updated_param) }
+ message: t('concerns.share_actions.update.success',
+ namespace_name: @namespace.human_name,
+ group_name: @namespace_group_link.group.human_name,
+ param_name: updated_param) }
end
else
format.turbo_stream do
render status: :unprocessable_entity,
locals: { namespace_group_link: @namespace_group_link, type: 'alert',
- message: t('.error') }
+ message: t('concerns.share_actions.update.error') }
end
end
end
diff --git a/app/controllers/concerns/workflow_execution_actions.rb b/app/controllers/concerns/workflow_execution_actions.rb
index f54181453f..6f88cb4604 100644
--- a/app/controllers/concerns/workflow_execution_actions.rb
+++ b/app/controllers/concerns/workflow_execution_actions.rb
@@ -36,24 +36,27 @@ def show
end
end
- def destroy
+ def destroy # rubocop:disable Metrics/MethodLength
WorkflowExecutions::DestroyService.new(@workflow_execution, current_user).execute
respond_to do |format|
format.turbo_stream do
if @workflow_execution.deleted?
- flash[:success] = t('.success', workflow_name: @workflow_execution.metadata['workflow_name'])
+ flash[:success] =
+ t('concerns.workflow_execution_actions.destroy.success',
+ workflow_name: @workflow_execution.metadata['workflow_name'])
redirect_to redirect_path
else
render status: :unprocessable_entity, locals: {
- type: 'alert', message: t('.error', workflow_name: @workflow_execution.metadata['workflow_name'])
+ type: 'alert', message: t('concerns.workflow_execution_actions.destroy.error',
+ workflow_name: @workflow_execution.metadata['workflow_name'])
}
end
end
end
end
- def cancel
+ def cancel # rubocop:disable Metrics/MethodLength
WorkflowExecutions::CancelService.new(@workflow_execution, current_user).execute
respond_to do |format|
@@ -61,10 +64,12 @@ def cancel
if @workflow_execution.canceled? || @workflow_execution.canceling?
render status: :ok,
locals: { type: 'success',
- message: t('.success', workflow_name: @workflow_execution.metadata['workflow_name']) }
+ message: t('concerns.workflow_execution_actions.cancel.success',
+ workflow_name: @workflow_execution.metadata['workflow_name']) }
else
render status: :unprocessable_entity, locals: {
- type: 'alert', message: t('.error', workflow_name: @workflow_execution.metadata['workflow_name'])
+ type: 'alert', message: t('concerns.workflow_execution_actions.cancel.error',
+ workflow_name: @workflow_execution.metadata['workflow_name'])
}
end
end
diff --git a/app/controllers/projects/samples/clones_controller.rb b/app/controllers/projects/samples/clones_controller.rb
index 8ff7f660d6..df567382e5 100644
--- a/app/controllers/projects/samples/clones_controller.rb
+++ b/app/controllers/projects/samples/clones_controller.rb
@@ -33,9 +33,11 @@ def clone_params
def render_sample_errors
errors = @project.errors.messages_for(:sample)
if @cloned_sample_ids.count.positive?
- render status: :partial_content, locals: { type: :alert, message: t('.error'), errors: }
+ render status: :partial_content,
+ locals: { type: :alert, message: t('projects.samples.clones.create.error'), errors: }
else
- render status: :unprocessable_entity, locals: { type: :alert, message: t('.error'), errors: }
+ render status: :unprocessable_entity,
+ locals: { type: :alert, message: t('projects.samples.clones.create.error'), errors: }
end
end
diff --git a/app/controllers/projects/samples/deletions_controller.rb b/app/controllers/projects/samples/deletions_controller.rb
index 432eedb562..627f6e39ce 100644
--- a/app/controllers/projects/samples/deletions_controller.rb
+++ b/app/controllers/projects/samples/deletions_controller.rb
@@ -71,9 +71,9 @@ def destroy_multiple_params
end
def set_multi_status_destroy_multiple_message(deleted_samples_count, samples_to_delete_count)
- flash[:success] = t('.partial_success',
+ flash[:success] = t('projects.samples.deletions.destroy_multiple.partial_success',
deleted: "#{deleted_samples_count}/#{samples_to_delete_count}")
- flash[:error] = t('.partial_error',
+ flash[:error] = t('projects.samples.deletions.destroy_multiple.partial_error',
not_deleted: "#{samples_to_delete_count - deleted_samples_count}/#{samples_to_delete_count}")
end
end
diff --git a/app/controllers/projects/samples/metadata/deletions_controller.rb b/app/controllers/projects/samples/metadata/deletions_controller.rb
index f2e954b27f..78340d5ff9 100644
--- a/app/controllers/projects/samples/metadata/deletions_controller.rb
+++ b/app/controllers/projects/samples/metadata/deletions_controller.rb
@@ -46,9 +46,13 @@ def get_destroy_messages(deleted_keys)
messages = []
if deleted_keys.count == 1
- messages << { type: 'success', message: t('.single_success', deleted_key: deleted_keys[0]) }
+ messages << { type: 'success',
+ message: t('projects.samples.metadata.deletions.destroy.single_success',
+ deleted_key: deleted_keys[0]) }
elsif deleted_keys.count.positive?
- messages << { type: 'success', message: t('.multi_success', deleted_keys: deleted_keys.join(', ')) }
+ messages << { type: 'success',
+ message: t('projects.samples.metadata.deletions.destroy.multi_success',
+ deleted_keys: deleted_keys.join(', ')) }
end
messages << { type: 'error', message: @sample.errors.full_messages.first } if @sample.errors.any?
messages
diff --git a/app/controllers/projects/samples/metadata/fields_controller.rb b/app/controllers/projects/samples/metadata/fields_controller.rb
index e7b111bd6e..81dcd376d6 100644
--- a/app/controllers/projects/samples/metadata/fields_controller.rb
+++ b/app/controllers/projects/samples/metadata/fields_controller.rb
@@ -62,18 +62,25 @@ def get_create_status(added_keys, existing_keys)
end
end
- def get_create_messages(added_keys, existing_keys)
+ def get_create_messages(added_keys, existing_keys) # rubocop:disable Metrics/MethodLength
messages = []
if added_keys.count == 1
- messages << { type: 'success', message: t('.single_success', key: added_keys[0]) }
+ messages << { type: 'success',
+ message: t('projects.samples.metadata.fields.create.single_success', key: added_keys[0]) }
elsif added_keys.count.positive?
- messages << { type: 'success', message: t('.multi_success', keys: added_keys.join(', ')) }
+ messages << { type: 'success',
+ message: t('projects.samples.metadata.fields.create.multi_success',
+ keys: added_keys.join(', ')) }
end
if existing_keys.count == 1
- messages << { type: 'error', message: t('.single_key_exists', key: existing_keys[0]) }
+ messages << { type: 'error',
+ message: t('projects.samples.metadata.fields.create.single_key_exists',
+ key: existing_keys[0]) }
elsif existing_keys.count.positive?
- messages << { type: 'error', message: t('.multi_keys_exists', keys: existing_keys.join(', ')) }
+ messages << { type: 'error',
+ message: t('projects.samples.metadata.fields.create.multi_keys_exists',
+ keys: existing_keys.join(', ')) }
end
messages
end
@@ -84,7 +91,8 @@ def get_update_status_and_message(updated_metadata_field)
updated_metadata_field[:deleted]
if modified_metadata.count.positive?
update_render_params[:status] = :ok
- update_render_params[:message] = { type: 'success', message: t('.success') }
+ update_render_params[:message] =
+ { type: 'success', message: t('projects.samples.metadata.fields.update.success') }
else
update_render_params[:status] = :unprocessable_entity
update_render_params[:message] = { type: 'error', message: @sample.errors.full_messages.first }
diff --git a/app/controllers/projects/samples/transfers_controller.rb b/app/controllers/projects/samples/transfers_controller.rb
index fe5f162907..11d8d45b0a 100644
--- a/app/controllers/projects/samples/transfers_controller.rb
+++ b/app/controllers/projects/samples/transfers_controller.rb
@@ -30,7 +30,8 @@ def create
else
errors = @project.errors.full_messages_for(:base)
render status: :unprocessable_entity,
- locals: { type: :alert, message: t('.no_samples_transferred_error'), errors: }
+ locals: { type: :alert, message: t('.no_samples_transferred_error'),
+ errors: }
end
end
@@ -43,9 +44,13 @@ def transfer_params
def render_sample_errors
errors = @project.errors.messages_for(:samples)
if @transferred_samples_ids.count.positive?
- render status: :partial_content, locals: { type: :alert, message: t('.error'), errors: }
+ render status: :partial_content,
+ locals: { type: :alert, message: t('projects.samples.transfers.create.error'),
+ errors: }
else
- render status: :unprocessable_entity, locals: { type: :alert, message: t('.error'), errors: }
+ render status: :unprocessable_entity,
+ locals: { type: :alert, message: t('projects.samples.transfers.create.error'),
+ errors: }
end
end
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index a29d3757a4..d68c714fa9 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -66,7 +66,7 @@ def activity
def transfer
if Projects::TransferService.new(@project, current_user).execute(new_namespace)
- flash[:success] = t('.transfer.success', project_name: @project.name)
+ flash[:success] = t('.success', project_name: @project.name)
respond_to do |format|
format.turbo_stream { redirect_to project_path(@project) }
end
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
new file mode 100644
index 0000000000..f506e5034e
--- /dev/null
+++ b/config/i18n-tasks.yml
@@ -0,0 +1,181 @@
+# i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks
+
+# The "main" locale.
+base_locale: en
+## All available locales are inferred from the data by default. Alternatively, specify them explicitly:
+# locales: [es, fr]
+## Reporting locale, default: en. Available: en, ru.
+# internal_locale: en
+
+# Read and write translations.
+data:
+ ## Translations are read from the file system. Supported format: YAML, JSON.
+ ## Provide a custom adapter:
+ # adapter: I18n::Tasks::Data::FileSystem
+
+ # Locale files or `Dir.glob` patterns where translations are read from:
+ read:
+ - config/locales/%{locale}.yml
+ - config/locales/devise.%{locale}.yml
+ - app/components/**/*.%{locale}.yml
+
+ # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom:
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
+ write:
+ - ["devise.*", "config/locales/devise.%{locale}.yml"]
+ # - ["{*}.{*}.{*_component}.:", 'app/components/\1/\2/\3.%{locale}.yml']
+ # - ["{*}.{*_component}.:", 'app/components/\1/\2.%{locale}.yml']
+ # - ["{*_component}.:", 'app/components/\1.%{locale}.yml']
+ - "config/locales/%{locale}.yml"
+
+ # External locale data (e.g. gems).
+ # This data is not considered unused and is never written to.
+ external:
+ ## Example (replace %#= with %=):
+ # - "<%#= %x[bundle info vagrant --path].chomp %>/templates/locales/%{locale}.yml"
+
+ ## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class.
+ # router: conservative_router
+
+ yaml:
+ write:
+ # do not wrap lines at 80 characters
+ line_width: -1
+
+ ## Pretty-print JSON:
+ # json:
+ # write:
+ # indent: ' '
+ # space: ' '
+ # object_nl: "\n"
+ # array_nl: "\n"
+
+# Find translate calls
+search:
+ ## Paths or `Find.find` patterns to search in:
+ # paths:
+ # - app/
+
+ ## Root directories for relative keys resolution.
+ relative_roots:
+ - app/controllers
+ - app/helpers
+ - app/mailers
+ - app/views
+ - app/components
+
+ ## Directories where method names which should not be part of a relative key resolution.
+ # By default, if a relative translation is used inside a method, the name of the method will be considered part of the resolved key.
+ # Directories listed here will not consider the name of the method part of the resolved key
+ relative_exclude_method_name_paths:
+ - app/components
+
+ ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
+ ## *.jpg *.jpeg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less
+ ## *.yml *.json *.zip *.tar.gz *.swf *.flv *.mp3 *.wav *.flac *.webm *.mp4 *.ogg *.opus *.webp *.map *.xlsx
+ exclude:
+ - app/assets/images
+ - app/assets/fonts
+ - app/assets/videos
+ - app/assets/builds
+
+ ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`:
+ ## If specified, this settings takes priority over `exclude`, but `exclude` still applies.
+ # only: ["*.rb", "*.html.slim"]
+
+ ## If `strict` is `false`, guess usages such as t("categories.#{category}.title"). The default is `true`.
+ # strict: true
+
+ ## Allows adding ast_matchers for finding translations using the AST-scanners
+ ## The available matchers are:
+ ## - RailsModelMatcher
+ ## Matches ActiveRecord translations like
+ ## User.human_attribute_name(:email) and User.model_name.human
+ ## - DefaultI18nSubjectMatcher
+ ## Matches ActionMailer's default_i18n_subject method
+ ##
+ ## To implement your own, please see `I18n::Tasks::Scanners::AstMatchers::BaseMatcher`.
+ # ast_matchers:
+ # - 'I18n::Tasks::Scanners::AstMatchers::RailsModelMatcher'
+ # - 'I18n::Tasks::Scanners::AstMatchers::DefaultI18nSubjectMatcher'
+
+ ## Multiple scanners can be used. Their results are merged.
+ ## The options specified above are passed down to each scanner. Per-scanner options can be specified as well.
+ ## See this example of a custom scanner: https://github.com/glebm/i18n-tasks/wiki/A-custom-scanner-example
+## Translation Services
+# translation:
+# # Google Translate
+# # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
+# google_translate_api_key: "AbC-dEf5"
+# # DeepL Pro Translate
+# # Get an API key and subscription at https://www.deepl.com/pro to use DeepL Pro
+# deepl_api_key: "48E92789-57A3-466A-9959-1A1A1A1A1A1A"
+# # deepl_host: "https://api.deepl.com"
+# # deepl_version: "v2"
+# # deepl_glossary_ids:
+# # - f28106eb-0e06-489e-82c6-8215d6f95089
+# # - 2c6415be-1852-4f54-9e1b-d800463496b4
+# # add additional options to the DeepL.translate call: https://www.deepl.com/docs-api/translate-text/translate-text/
+# deepl_options:
+# formality: prefer_less
+# # OpenAI
+# openai_api_key: "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+# # openai_model: "gpt-3.5-turbo" # see https://platform.openai.com/docs/models
+# # may contain `%{from}` and `%{to}`, which will be replaced by source and target locale codes, respectively (using `Kernel.format`)
+# # openai_system_prompt: >-
+# # You are a professional translator that translates content from the %{from} locale
+# # to the %{to} locale in an i18n locale array.
+# #
+# # The array has a structured format and contains multiple strings. Your task is to translate
+# # each of these strings and create a new array with the translated strings.
+# #
+# # HTML markups (enclosed in < and > characters) must not be changed under any circumstance.
+# # Variables (starting with %%{ and ending with }) must not be changed under any circumstance.
+# #
+# # Keep in mind the context of all the strings for a more accurate translation.
+
+## Do not consider these keys missing:
+ignore_missing:
+ - "action_policy.*"
+ - "activerecord.*"
+# - 'errors.messages.{accepted,blank,invalid,too_short,too_long}'
+# - '{devise,simple_form}.*'
+
+## Consider these keys used:
+ignore_unused:
+ - "action_policy.*"
+ - "activerecord.*"
+ - "*.sorting.*"
+ - "time.formats.full_date"
+# - '{devise,kaminari,will_paginate}.*'
+# - 'simple_form.{yes,no}'
+# - 'simple_form.{placeholders,hints,labels}.*'
+# - 'simple_form.{error_notification,required}.:'
+
+## Exclude these keys from the `i18n-tasks eq-base' report:
+# ignore_eq_base:
+# all:
+# - common.ok
+# fr,es:
+# - common.brand
+
+## Exclude these keys from the `i18n-tasks check-consistent-interpolations` report:
+# ignore_inconsistent_interpolations:
+# - 'activerecord.attributes.*'
+
+## Ignore these keys completely:
+# ignore:
+# - kaminari.*
+
+## Sometimes, it isn't possible for i18n-tasks to match the key correctly,
+## e.g. in case of a relative key defined in a helper method.
+## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:
+#
+# <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
+# only: %w(*.html.haml *.html.slim),
+# patterns: [['= title\b', '.page_title']] %>
+#
+# The PatternMapper can also match key literals via a special %{key} interpolation, e.g.:
+#
+# <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
+# patterns: [['\bSpree\.t[( ]\s*%{key}', 'spree.%{key}']] %>
diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml
index b55692e22a..7502b5938c 100644
--- a/config/locales/devise.en.yml
+++ b/config/locales/devise.en.yml
@@ -1,127 +1,77 @@
-# Additional translations at https://github.com/heartcombo/devise/wiki/I18n
-
+---
en:
devise:
+ confirmations:
+ new:
+ submit_button: Submit button
+ title: Title
layout:
title: IRIDA Next
- confirmations:
- title: "Resend confirmation instructions"
- confirmed: "Your email address has been successfully confirmed."
- send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
- send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
- submit_button: "Resend confirmation instructions"
- failure:
- already_authenticated: "You are already signed in."
- inactive: "Your account is not activated yet."
- invalid: "Invalid %{authentication_keys} or password."
- locked: "Your account is locked."
- last_attempt: "You have one more attempt before your account is locked."
- not_found_in_database: "Invalid %{authentication_keys} or password."
- timeout: "Your session expired. Please sign in again to continue."
- unauthenticated: "You need to sign in or sign up before continuing."
- unconfirmed: "You have to confirm your email address before continuing."
mailer:
confirmation_instructions:
- subject: "Confirmation instructions"
- greeting: "Welcome %{email}!"
- instructions: "You can confirm your account email through the link below:"
- confirm_button: "Confirm my account"
- reset_password_instructions:
- subject: "Reset password instructions"
- greeting: "Hello %{email}!"
- instructions: "Someone has requested a link to change your password. You can do this through the link below."
- disclaimer_info: "If you didn't request this, please ignore this email."
- link_info: "Your password won't change until you access the link above and create a new one."
- reset_button: "Change my password"
- unlock_instructions:
- subject: "Unlock instructions"
- greeting: "Hello %{email}!"
- locked_info: "Your account has been locked due to an excessive number of unsuccessful sign in attempts."
- instructions: "Click the link below to unlock your account:"
- unlock_button: "Unlock my account"
+ confirm_button: Confirm my account
+ greeting: Welcome %{email}!
+ instructions: 'You can confirm your account email through the link below:'
email_changed:
- subject: "Email Changed"
- greeting: "Hello %{email}!"
- confirmed_email_info: "We're contacting you to notify you that your email has been changed to %{email}."
- unconfirmed_email_info: "We're contacting you to notify you that your email is being changed to %{email}."
+ confirmed_email_info: We're contacting you to notify you that your email has been changed to %{email}.
+ greeting: Hello %{email}!
+ unconfirmed_email_info: We're contacting you to notify you that your email is being changed to %{email}.
password_change:
- subject: "Password Changed"
- greeting: "Hello %{email}!"
- password_change_info: "We're contacting you to notify you that your password has been changed."
- omniauth_callbacks:
- failure: 'Could not authenticate you from %{kind} because "%{reason}".'
- success: "Successfully authenticated from %{kind} account."
+ greeting: Hello %{email}!
+ password_change_info: We're contacting you to notify you that your password has been changed.
+ reset_password_instructions:
+ disclaimer_info: If you didn't request this, please ignore this email.
+ greeting: Hello %{email}!
+ instructions: Someone has requested a link to change your password. You can do this through the link below.
+ link_info: Your password won't change until you access the link above and create a new one.
+ reset_button: Change my password
+ unlock_instructions:
+ greeting: Hello %{email}!
+ instructions: 'Click the link below to unlock your account:'
+ locked_info: Your account has been locked due to an excessive number of unsuccessful sign in attempts.
+ unlock_button: Unlock my account
passwords:
- no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
- send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
- send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
- updated: "Your password has been changed successfully. You are now signed in."
- updated_not_active: "Your password has been changed successfully."
- new:
- submit_button: "Send me reset password instructions"
edit:
- title: Change your password
- password_label: "New password"
- password_confirmation_label: "Confirm new password"
+ password_confirmation_label: Confirm new password
password_hint: "(%{minimum_password_length} characters minimum)"
- submit_button: "Change my password"
- registrations:
+ password_label: New password
+ submit_button: Change my password
+ title: Change your password
new:
- password_hint: "(%{minimum_password_length} characters minimum)"
- signed_up: "Already signed up?"
- submit_button: "Sign up"
+ submit_button: Send me reset password instructions
+ registrations:
edit:
- title: "Edit %{resource_name}"
- cancel_title: "Cancel my account"
+ back_link: Back
+ cancel_button: Cancel my account
+ cancel_confirmation: Are you sure?
+ cancel_title: Cancel my account
+ confirmation_message: 'Currently waiting confirmation for: %{email}'
+ current_password_hint: "(we need your current password to confirm your changes)"
password_blank_hint: "(leave blank if you don't want to change it)"
password_length_hint: "(%{minimum_password_length} characters minimum)"
- current_password_hint: "(we need your current password to confirm your changes)"
- confirmation_message: "Currently waiting confirmation for: %{email}"
+ submit_button: Update
+ title: Edit %{resource_name}
unhappy: Unhappy?
- submit_button: "Update"
- cancel_button: "Cancel my account"
- cancel_confirmation: "Are you sure?"
- back_link: "Back"
- destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
- signed_up: "Welcome! You have signed up successfully."
- signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
- signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
- signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
- update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirmation link to confirm your new email address."
- updated: "Your account has been updated successfully."
- updated_but_not_signed_in: "Your account has been updated successfully, but since your password was changed, you need to sign in again."
+ new:
+ password_hint: "(%{minimum_password_length} characters minimum)"
+ signed_up: Already signed up?
+ submit_button: Sign up
sessions:
- signed_in: "Signed in successfully."
- signed_out: "Signed out successfully."
- already_signed_out: "Signed out successfully."
new_with_providers:
- local_button: "Sign in with Local Account"
- return_button: "Return to sign in selection"
- omniauth: "Sign in with %{provider}"
+ local_button: Sign in with Local Account
+ omniauth: Sign in with %{provider}
+ return_button: Return to sign in selection
shared:
form:
- sign_in: "Sign in"
+ sign_in: Sign in
links:
- create_an_account: "Don't have an account?"
- create_an_account_link: "Register now"
- forgot_password_link: "Forgot your password?"
- confirmation_link: "Didn't receive confirmation instructions?"
- unlock_link: "Didn't receive unlock instructions?"
- sign_in_link: "Sign in"
+ confirmation_link: Didn't receive confirmation instructions?
+ create_an_account: Don't have an account?
+ create_an_account_link: Register now
+ forgot_password_link: Forgot your password?
+ sign_in_link: Sign in
+ unlock_link: Didn't receive unlock instructions?
unlocks:
new:
- title: "Resend unlock instructions"
- submit_button: "Resend unlock instructions"
- send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
- send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
- unlocked: "Your account has been unlocked successfully. Please sign in to continue."
- errors:
- messages:
- already_confirmed: "was already confirmed, please try signing in"
- confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
- expired: "has expired, please request a new one"
- not_found: "not found"
- not_locked: "was not locked"
- not_saved:
- one: "1 error prohibited this %{resource} from being saved:"
- other: "%{count} errors prohibited this %{resource} from being saved:"
+ submit_button: Resend unlock instructions
+ title: Resend unlock instructions
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 7ea840a5ea..a9b0954da5 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -1,127 +1,77 @@
-# Additional translations at https://github.com/heartcombo/devise/wiki/I18n
-
+---
fr:
devise:
+ confirmations:
+ new:
+ submit_button: Submit button
+ title: Title
layout:
title: IRIDA Next
- confirmations:
- title: "Resend confirmation instructions"
- confirmed: "Your email address has been successfully confirmed."
- send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
- send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
- submit_button: "Resend confirmation instructions"
- failure:
- already_authenticated: "You are already signed in."
- inactive: "Your account is not activated yet."
- invalid: "Invalid %{authentication_keys} or password."
- locked: "Your account is locked."
- last_attempt: "You have one more attempt before your account is locked."
- not_found_in_database: "Invalid %{authentication_keys} or password."
- timeout: "Your session expired. Please sign in again to continue."
- unauthenticated: "You need to sign in or sign up before continuing."
- unconfirmed: "You have to confirm your email address before continuing."
mailer:
confirmation_instructions:
- subject: "Confirmation instructions"
- greeting: "Welcome %{email}!"
- instructions: "You can confirm your account email through the link below:"
- confirm_button: "Confirm my account"
- reset_password_instructions:
- subject: "Reset password instructions"
- greeting: "Hello %{email}!"
- instructions: "Someone has requested a link to change your password. You can do this through the link below."
- disclaimer_info: "If you didn't request this, please ignore this email."
- link_info: "Your password won't change until you access the link above and create a new one."
- reset_button: "Change my password"
- unlock_instructions:
- subject: "Unlock instructions"
- greeting: "Hello %{email}!"
- locked_info: "Your account has been locked due to an excessive number of unsuccessful sign in attempts."
- instructions: "Click the link below to unlock your account:"
- unlock_button: "Unlock my account"
+ confirm_button: Confirm my account
+ greeting: Welcome %{email}!
+ instructions: 'You can confirm your account email through the link below:'
email_changed:
- subject: "Email Changed"
- greeting: "Hello %{email}!"
- confirmed_email_info: "We're contacting you to notify you that your email has been changed to %{email}."
- unconfirmed_email_info: "We're contacting you to notify you that your email is being changed to %{email}."
+ confirmed_email_info: We're contacting you to notify you that your email has been changed to %{email}.
+ greeting: Hello %{email}!
+ unconfirmed_email_info: We're contacting you to notify you that your email is being changed to %{email}.
password_change:
- subject: "Password Changed"
- greeting: "Hello %{email}!"
- password_change_info: "We're contacting you to notify you that your password has been changed."
- omniauth_callbacks:
- failure: 'Could not authenticate you from %{kind} because "%{reason}".'
- success: "Successfully authenticated from %{kind} account."
+ greeting: Hello %{email}!
+ password_change_info: We're contacting you to notify you that your password has been changed.
+ reset_password_instructions:
+ disclaimer_info: If you didn't request this, please ignore this email.
+ greeting: Hello %{email}!
+ instructions: Someone has requested a link to change your password. You can do this through the link below.
+ link_info: Your password won't change until you access the link above and create a new one.
+ reset_button: Change my password
+ unlock_instructions:
+ greeting: Hello %{email}!
+ instructions: 'Click the link below to unlock your account:'
+ locked_info: Your account has been locked due to an excessive number of unsuccessful sign in attempts.
+ unlock_button: Unlock my account
passwords:
- no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
- send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
- send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
- updated: "Your password has been changed successfully. You are now signed in."
- updated_not_active: "Your password has been changed successfully."
- new:
- submit_button: "Send me reset password instructions"
edit:
- title: Change your password
- password_label: "New password"
- password_confirmation_label: "Confirm new password"
+ password_confirmation_label: Confirm new password
password_hint: "(%{minimum_password_length} characters minimum)"
- submit_button: "Change my password"
- registrations:
+ password_label: New password
+ submit_button: Change my password
+ title: Change your password
new:
- password_hint: "(%{minimum_password_length} characters minimum)"
- signed_up: "Already signed up?"
- submit_button: "Sign up"
+ submit_button: Send me reset password instructions
+ registrations:
edit:
- title: "Edit %{resource_name}"
- cancel_title: "Cancel my account"
+ back_link: Back
+ cancel_button: Cancel my account
+ cancel_confirmation: Are you sure?
+ cancel_title: Cancel my account
+ confirmation_message: 'Currently waiting confirmation for: %{email}'
+ current_password_hint: "(we need your current password to confirm your changes)"
password_blank_hint: "(leave blank if you don't want to change it)"
password_length_hint: "(%{minimum_password_length} characters minimum)"
- current_password_hint: "(we need your current password to confirm your changes)"
- confirmation_message: "Currently waiting confirmation for: %{email}"
+ submit_button: Update
+ title: Edit %{resource_name}
unhappy: Unhappy?
- submit_button: "Update"
- cancel_button: "Cancel my account"
- cancel_confirmation: "Are you sure?"
- back_link: "Back"
- destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
- signed_up: "Welcome! You have signed up successfully."
- signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
- signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
- signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
- update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirmation link to confirm your new email address."
- updated: "Your account has been updated successfully."
- updated_but_not_signed_in: "Your account has been updated successfully, but since your password was changed, you need to sign in again."
+ new:
+ password_hint: "(%{minimum_password_length} characters minimum)"
+ signed_up: Already signed up?
+ submit_button: Sign up
sessions:
- signed_in: "Signed in successfully."
- signed_out: "Signed out successfully."
- already_signed_out: "Signed out successfully."
new_with_providers:
- local_button: "Sign in with Local Account"
- return_button: "Return to sign in selection"
- omniauth: "Sign in with %{provider}"
+ local_button: Sign in with Local Account
+ omniauth: Sign in with %{provider}
+ return_button: Return to sign in selection
shared:
form:
- sign_in: "Sign in"
+ sign_in: Sign in
links:
- create_an_account: "Don't have an account?"
- create_an_account_link: "Register now"
- forgot_password_link: "Forgot your password?"
- confirmation_link: "Didn't receive confirmation instructions?"
- unlock_link: "Didn't receive unlock instructions?"
- sign_in_link: "Sign in"
+ confirmation_link: Didn't receive confirmation instructions?
+ create_an_account: Don't have an account?
+ create_an_account_link: Register now
+ forgot_password_link: Forgot your password?
+ sign_in_link: Sign in
+ unlock_link: Didn't receive unlock instructions?
unlocks:
new:
- title: "Resend unlock instructions"
- submit_button: "Resend unlock instructions"
- send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
- send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
- unlocked: "Your account has been unlocked successfully. Please sign in to continue."
- errors:
- messages:
- already_confirmed: "was already confirmed, please try signing in"
- confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
- expired: "has expired, please request a new one"
- not_found: "not found"
- not_locked: "was not locked"
- not_saved:
- one: "1 error prohibited this %{resource} from being saved:"
- other: "%{count} errors prohibited this %{resource} from being saved:"
+ submit_button: Resend unlock instructions
+ title: Resend unlock instructions
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 318725f301..a5bb08ac73 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1,136 +1,98 @@
-# Files in the config/locales directory are used for internationalization
-# and are automatically loaded by Rails. If you want to use locales other
-# than English, add the necessary files in this directory.
-#
-# To use the locales, use `I18n.t`:
-#
-# I18n.t "hello"
-#
-# In views, this is aliased to just `t`:
-#
-# <%= t("hello") %>
-#
-# To use a different locale, set it with `I18n.locale`:
-#
-# I18n.locale = :es
-#
-# This would use the information in config/locales/es.yml.
-#
-# The following keys must be escaped otherwise they will not be retrieved by
-# the default I18n backend:
-#
-# true, false, on, off, yes, no
-#
-# Instead, surround them with single quotes.
-#
-# en:
-# "true": "foo"
-#
-# To learn more, please read the Rails Internationalization guide
-# available at https://guides.rubyonrails.org/i18n.html.
-
+---
en:
- time:
- formats:
- default: "%Y-%m-%d %H:%M:%S"
- full_date: "%B %d, %Y"
- abbreviated: "%a %b%e %Y %H:%M"
- date:
- formats:
- iso: "YYYY-MM-DD"
action_policy:
policy:
create?: You are not authorized to create this resource on this server.
- destroy?: You are not authorized to remove the requested resource from this server.
- edit?: You are not authorized to update this resource on this server.
- index?: You are not authorized to view the listing of resources on this server.
- new?: You are not authorized to create this resource on this server.
- read?: You are not authorized to view this resource on this server.
- transfer?: You are not authorized to transfer the requested resource.
- transfer_into_namespace?: You are not authorized to transfer to the requested namespace.
- update?: You are not authorized to update this resource on this server.
data_export:
destroy?: You are not authorized to remove this data export on this server.
+ destroy?: You are not authorized to remove the requested resource from this server.
+ edit?: You are not authorized to update this resource on this server.
group:
create?: You are not authorized to create a project under group %{name} on this server.
+ create_bot_accounts?: You are not authorized to create bot accounts for group %{name} on this server.
+ create_member?: You are not authorized to create members for group %{name} on this server.
create_subgroup?: You are not authorized to create a subgroup within group %{name} on this server.
destroy?: You are not authorized to remove group %{name} from this server.
+ destroy_bot_accounts?: You are not authorized to destroy bot accounts for group %{name} on this server.
+ destroy_member?: You are not authorized to remove members for group %{name} on this server.
edit?: You are not authorized to modify group %{name} on this server.
+ export_data?: You are not authorized to export data from project %{name} on this server.
+ link_namespace_with_group?: You are not authorized to link group %{name} with other groups on this server.
+ member_listing?: You are not authorized to view members for group %{name} on this server.
new?: You are not authorized to create a project under group %{name} on this server.
read?: You are not authorized to view group %{name} on this server.
+ sample_listing?: You are not authorized to view samples for group %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within group %{name} on this server.
transfer?: You are not authorized to transfer group %{name} on this server.
transfer_into_namespace?: You are not authorized to transfer into the group namespace %{name} on this server.
+ unlink_namespace_with_group?: You are not authorized to unlink group %{name} from other groups on this server.
update?: You are not authorized to update group %{name} on this server.
- member_listing?: You are not authorized to view members for group %{name} on this server.
- create_member?: You are not authorized to create members for group %{name} on this server.
- destroy_member?: You are not authorized to remove members for group %{name} on this server.
update_member?: You are not authorized to update members for group %{name} on this server.
- sample_listing?: You are not authorized to view samples for group %{name} on this server.
- link_namespace_with_group?: You are not authorized to link group %{name} with other groups on this server.
- unlink_namespace_with_group?: You are not authorized to unlink group %{name} from other groups on this server.
update_namespace_with_group_link?: You are not authorized to update group %{name} links with other groups on this server.
- submit_workflow?: You are not authorized to submit workflows for samples within group %{name} on this server.
- create_bot_accounts?: You are not authorized to create bot accounts for group %{name} on this server.
- destroy_bot_accounts?: You are not authorized to destroy bot accounts for group %{name} on this server.
- export_data?: You are not authorized to export data from project %{name} on this server.
update_sample_metadata?: You are not authorized to update sample metadata for group %{name} on this server.
- project:
- activity?: You are not authorized to view the activity for project %{name} on this server.
- destroy?: You are not authorized to remove project %{name} from this server.
- edit?: You are not authorized to modify project %{name} on this server.
- new?: You are not authorized to create a project under the %{name} namespace on this server.
- read?: You are not authorized to view project %{name} on this server.
- transfer?: You are not authorized to transfer project %{name} on this server.
- update?: You are not authorized to update project %{name} on this server.
- sample_listing?: You are not authorized to view samples for project %{name} on this server.
- create_sample?: You are not authorized to create samples for project %{name} on this server.
- destroy_sample?: You are not authorized to remove samples from project %{name} on this server.
- read_sample?: You are not authorized to view this sample for project %{name} on this server.
- update_sample?: You are not authorized to update samples for project %{name} on this server.
- transfer_sample?: You are not authorized to transfer samples for project %{name} on this server.
- transfer_sample_into_project?: You are not authorized to transfer samples to project %{name} on this server.
- clone_sample?: You are not authorized to clone samples from project %{name} on this server.
- clone_sample_into_project?: You are not authorized to clone samples to project %{name} on this server.
- submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
+ index?: You are not authorized to view the listing of resources on this server.
namespaces/project_namespace:
- update?: You are not authorized to update the namespace for project %{name} on this server.
- member_listing?: You are not authorized to view members for the project namespace %{name} on this server.
+ create_automated_workflow_executions?: You are not authorized to create automated workflow executions for project %{name}
+ create_bot_accounts?: You are not authorized to create bot accounts for project %{name} on this server.
create_member?: You are not authorized to create members for the project namespace %{name} on this server.
+ destroy_automated_workflow_executions?: You are not authorized to destroy automated workflow executions for project %{name}
+ destroy_bot_accounts?: You are not authorized to destroy bot accounts for project %{name} on this server.
destroy_member?: You are not authorized to remove members from the project namespace %{name} on this server.
- update_member?: You are not authorized to update members for the project namespace %{name} on this server.
+ export_data?: You are not authorized to export data from project %{name} on this server.
link_namespace_with_group?: You are not authorized to link project %{name} with other groups on this server.
+ member_listing?: You are not authorized to view members for the project namespace %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
unlink_namespace_with_group?: You are not authorized to unlink project %{name} from other groups on this server.
+ update?: You are not authorized to update the namespace for project %{name} on this server.
+ update_automated_workflow_executions?: You are not authorized to update automated workflow executions for project %{name}
+ update_member?: You are not authorized to update members for the project namespace %{name} on this server.
update_namespace_with_group_link?: You are not authorized to update project %{name} links with other groups on this server.
- create_bot_accounts?: You are not authorized to create bot accounts for project %{name} on this server.
- destroy_bot_accounts?: You are not authorized to destroy bot accounts for project %{name} on this server.
- create_automated_workflow_executions?: "You are not authorized to create automated workflow executions for project %{name}"
- destroy_automated_workflow_executions?: "You are not authorized to destroy automated workflow executions for project %{name}"
- update_automated_workflow_executions?: "You are not authorized to update automated workflow executions for project %{name}"
- view_automated_workflow_executions?: "You are not authorized to view automated workflow executions for project %{name}"
- submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
- view_workflow_executions?: You are not authorized to view workflow executions for project %{name} on this server.
- export_data?: You are not authorized to export data from project %{name} on this server.
update_sample_metadata?: You are not authorized to update sample metadata for project %{name} on this server.
+ view_automated_workflow_executions?: You are not authorized to view automated workflow executions for project %{name}
+ view_workflow_executions?: You are not authorized to view workflow executions for project %{name} on this server.
namespaces/user_namespace:
create?: You are not authorized to create a project under the %{name} namespace
transfer_into_namespace?: You are not authorized to transfer to the user %{name} namespace
+ new?: You are not authorized to create this resource on this server.
+ project:
+ activity?: You are not authorized to view the activity for project %{name} on this server.
+ clone_sample?: You are not authorized to clone samples from project %{name} on this server.
+ clone_sample_into_project?: You are not authorized to clone samples to project %{name} on this server.
+ create_sample?: You are not authorized to create samples for project %{name} on this server.
+ destroy?: You are not authorized to remove project %{name} from this server.
+ destroy_sample?: You are not authorized to remove samples from project %{name} on this server.
+ edit?: You are not authorized to modify project %{name} on this server.
+ new?: You are not authorized to create a project under the %{name} namespace on this server.
+ read?: You are not authorized to view project %{name} on this server.
+ read_sample?: You are not authorized to view this sample for project %{name} on this server.
+ sample_listing?: You are not authorized to view samples for project %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
+ transfer?: You are not authorized to transfer project %{name} on this server.
+ transfer_sample?: You are not authorized to transfer samples for project %{name} on this server.
+ transfer_sample_into_project?: You are not authorized to transfer samples to project %{name} on this server.
+ update?: You are not authorized to update project %{name} on this server.
+ update_sample?: You are not authorized to update samples for project %{name} on this server.
+ read?: You are not authorized to view this resource on this server.
sample:
destroy_attachment?: You are not authorized to delete attachments belonging to sample %{name}.
+ transfer?: You are not authorized to transfer the requested resource.
+ transfer_into_namespace?: You are not authorized to transfer to the requested namespace.
+ update?: You are not authorized to update this resource on this server.
user:
create?: You are not authorized to create a user on this server.
destroy?: You are not authorized to remove user %{name} from this server.
edit?: You are not authorized to update user %{name} on this server.
index?: You are not authorized to view listing of users on this server.
new?: You are not authorized to create a user on this server.
- revoke?: You are not authorized to revoke personal access tokens for user %{name} on this server.
read?: You are not authorized to view profile for user %{name} on this server.
+ revoke?: You are not authorized to revoke personal access tokens for user %{name} on this server.
update?: You are not authorized to update user %{name} on this server.
workflow_execution:
- index?: "You are not authorized to view workflow executions for %{namespace_type} %{name}"
- destroy?: "You are not authorized to destroy workflow executions for %{namespace_type} %{name}"
- read?: "You are not authorized to view workflow execution %{id}"
- create?: "You are not authorized to submit workflow executions for %{namespace_type} %{name}"
- cancel?: "You are not authorized to cancel workflow executions for %{namespace_type} %{name}"
+ cancel?: You are not authorized to cancel workflow executions for %{namespace_type} %{name}
+ create?: You are not authorized to submit workflow executions for %{namespace_type} %{name}
+ destroy?: You are not authorized to destroy workflow executions for %{namespace_type} %{name}
+ index?: You are not authorized to view workflow executions for %{namespace_type} %{name}
+ read?: You are not authorized to view workflow execution %{id}
unauthorized: You are not authorized to perform this action
activerecord:
attributes:
@@ -140,34 +102,37 @@ en:
group:
description: Description
name: Group name
- path: Path
parent_id: Group URL
+ path: Path
+ member:
+ access_level: Access Level
+ expires_at: Access expiration (optional)
+ user_id: User
namespaces/project_namespace:
- name: Project Name
description: Description
+ name: Project Name
parent_id: Project URL
path: Path
personal_access_token:
- name: Token name
- scopes: Scopes
created_at: Created
- last_used_at: Last Used
expires_at: Expiration Date
+ last_used_at: Last Used
+ name: Token name
+ scopes: Scopes
sample:
- name: Name
description: Description
- member:
- access_level: Access Level
- user_id: User
- expires_at: Access expiration (optional)
+ name: Name
user:
+ email: Email
+ first_name: First Name
+ last_name: Last Name
password: Password
password_confirmation: Password confirmation
- email: Email
provider: Authentication Provider
uid: Authentication Provider UID
- first_name: First Name
- last_name: Last Name
+ concerns:
+ history:
+ system: System
errors:
models:
attachment:
@@ -177,830 +142,849 @@ en:
data_export:
attributes:
export_parameters:
- missing_ids: does not contain any ids to export.
- missing_metadata_fields: must contain metadata fields for linelist exports
- missing_file_format: must contain a format for linelist exports
+ invalid_analysis_type: Invalid analysis type
+ invalid_attachment_format: "%{invalid_formats} are not valid attachment formats"
invalid_file_format: must have either a .xlsx or .csv format for linelist exports
- missing_namespace_id: must have a namespace id
invalid_namespace_id: must have valid namespace
- invalid_attachment_format: "%{invalid_formats} are not valid attachment formats"
+ missing_analysis_type: Missing analysis type
missing_attachment_formats: must have attachment formats for sample exports
- namespace:
- attributes:
- name:
- blank: can't be blank
- taken: has already been taken
+ missing_file_format: must contain a format for linelist exports
+ missing_ids: does not contain any ids to export.
+ missing_metadata_fields: must contain metadata fields for linelist exports
+ missing_namespace_id: must have a namespace id
member:
attributes:
access_level:
+ inclusion: provided is not included in the list of valid access levels
invalid: " for %{user} should be greater than or equal to %{access_level} which is inherited via membership from group %{group_name}"
- inclusion: "provided is not included in the list of valid access levels"
destroy:
- last_member: "Cannot remove this member as this would leave the %{namespace_type} without an owner."
- last_member_self: "You cannot remove yourself as this would leave the %{namespace_type} without an owner."
- personal_access_token:
+ last_member: Cannot remove this member as this would leave the %{namespace_type} without an owner.
+ last_member_self: You cannot remove yourself as this would leave the %{namespace_type} without an owner.
+ namespace:
attributes:
- scopes:
- inclusion: can only contain available scopes
+ name:
+ blank: can't be blank
+ taken: has already been taken
namespace_group_link:
attributes:
+ group_access_level:
+ inclusion: provided is not included in the list of valid access levels
group_id:
blank: Group must exist
+ comparison: Group must be other than %{group_id}
taken: has already been shared with this namespace
- comparison: "Group must be other than %{group_id}"
namespace_id:
blank: Namespace must exist
taken: The namespace has already been shared with this group
namespace_type:
inclusion: can only be Group or Project
- group_access_level:
- inclusion: "provided is not included in the list of valid access levels"
+ personal_access_token:
+ attributes:
+ scopes:
+ inclusion: can only contain available scopes
exceptions:
personal_access_token:
- not_found: "Could not find personal access token with id %{token_id}"
- concerns:
- history:
- system: System
+ not_found: Could not find personal access token with id %{token_id}
models:
+ group:
+ one: Group
+ other: Groups
member:
- one: Member
- other: Members
access_level:
- no_access: No Access
- guest: Guest
- uploader: Uploader
analyst: Analyst
+ guest: Guest
maintainer: Maintainer
+ no_access: No Access
owner: Owner
- its_you: It's you
+ uploader: Uploader
bot: Bot
direct: Direct member
- group:
- one: Group
- other: Groups
- sample:
- one: Sample
- other: Samples
- namespaces/project_namespace:
- one: Project
- other: Projects
+ its_you: It's you
+ one: Member
+ other: Members
namespace_group_link:
+ direct: Direct shared
one: Namespace Group Link
other: Namespace Group Links
- direct: Direct shared
- datetime:
- distance_in_words:
- updated:
- about_x_hours:
- one: Updated about %{count} hour ago
- other: Updated about %{count} hours ago
- about_x_months:
- one: Updated about %{count} month ago
- other: Updated about %{count} months ago
- about_x_years:
- one: Updated about %{count} year ago
- other: Updated about %{count} years ago
- almost_x_years:
- one: Updated almost %{count} year ago
- other: Updated almost %{count} years ago
- half_a_minute: Updated half a minute ago
- less_than_x_seconds:
- one: Updated less than %{count} second ago
- other: Updated less than %{count} seconds ago
- less_than_x_minutes:
- one: Updated less than a minute ago
- other: Updated less than %{count} minutes ago
- over_x_years:
- one: Updated over %{count} year ago
- other: Updated over %{count} years ago
- x_seconds:
- one: "Updated %{count} second ago"
- other: "Updated %{count} seconds ago"
- x_minutes:
- one: "Updated %{count} minute ago"
- other: "Updated %{count} minutes ago"
- x_days:
- one: "Updated %{count} day ago"
- other: "Updated %{count} days ago"
- x_months:
- one: "Updated %{count} month ago"
- other: "Updated %{count} months ago"
- x_years:
- one: "Updated %{count} year ago"
- other: "Updated %{count} years ago"
- about_x_hours:
- one: about %{count} hour ago
- other: about %{count} hours ago
- about_x_months:
- one: about %{count} month ago
- other: about %{count} months ago
- about_x_years:
- one: about %{count} year ago
- other: about %{count} years ago
- almost_x_years:
- one: almost %{count} year ago
- other: almost %{count} years ago
- half_a_minute: half a minute ago
- less_than_x_seconds:
- one: less than %{count} second ago
- other: less than %{count} seconds ago
- less_than_x_minutes:
- one: less than a minute ago
- other: less than %{count} minutes ago
- over_x_years:
- one: over %{count} year ago
- other: over %{count} years ago
- x_seconds:
- one: "%{count} second ago"
- other: "%{count} seconds ago"
- x_minutes:
- one: "%{count} minute ago"
- other: "%{count} minutes ago"
- x_days:
- one: "%{count} day ago"
- other: "%{count} days ago"
- x_months:
- one: "%{count} month ago"
- other: "%{count} months ago"
- x_years:
- one: "%{count} year ago"
- other: "%{count} years ago"
+ namespaces/project_namespace:
+ one: Project
+ other: Projects
+ sample:
+ one: Sample
+ other: Samples
+ application:
+ errors:
+ access_denied: Access Denied.
+ not_found_on_server: The requested resource could not be found on the server.
+ resource_not_found: Resource Not Found.
auth:
scopes:
- label: Scopes
api: Grants complete read/write access to the API.
+ label: Scopes
read_api: Grants read access to the API.
components:
- pagination:
- previous: Prev
- next: Next
clipboard:
copied: Copied!
copy: Copy to clipboard
toggle_visible: Toggle visibility
- dialog:
- close: Close dialog
confirmation:
- title: Confirmation required
cancel: Cancel
confirm: Confirm
confirm_label: Confirmation value
+ title: Confirmation required
+ dialog:
+ close: Close dialog
flash:
- success_icon: Check icon
error_icon: X icon
- warning_icon: Exclamation icon
information_icon: Information icon
- nextflow:
- required: Required
- update_samples: Update samples with analysis results
- email_notification: Receive an email notification when your analysis has completed?
+ success_icon: Check icon
+ warning_icon: Exclamation icon
history:
- latest: Latest
created_by: "%{type} created by %{user}"
deleted_by: "%{type} deleted by %{user}"
+ latest: Latest
+ link_text: Version %{version}
modified_by: "%{type} modified by %{user}"
restored_by: "%{type} restored by %{user}"
transferred_by: "%{type} transferred by %{user}"
- link_text: "Version %{version}"
history_version:
- previous_version: "Previous (Version %{version})"
- current_version: "Current (Version %{version})"
- keys_deleted: "Keys deleted:"
+ current_version: Current (Version %{version})
+ keys_deleted: 'Keys deleted:'
+ previous_version: Previous (Version %{version})
list_filter:
- title: Filter by sample names or Id
- clear: Remove all tags
- description: 'Paste a list of , seperated sample names or identifiers'
apply: Apply filter
+ clear: Remove all tags
+ description: Paste a list of , seperated sample names or identifiers
remove_tag: Remove
- viral:
- sortable_lists_component:
- add_all: Add all
- remove_all: Remove all
- layouts:
- application:
- site_title: IRIDA Next
- general:
- name: IRIDA Next
- help: Help
- expand_sidebar: Expand sidebar
- collapse_sidebar: Collapse sidebar
- screen_reader:
- close: Close
- default_sidebar:
- title: Your work
- groups: Groups
- projects: Projects
- workflows: Workflow Executions
- data_exports: Data Exports
- navbar:
- collapse:
- aria_label: Collapse navigation menu
- main_dropdown:
- aria-label: Main navigation menu
- groups: Groups
- projects: Projects
- search:
- placeholder: Search
- new_dropdown:
- aria_label: New menu item
- project: Create new project
- group: Create new group
- account_dropdown:
- aria_label: Account menu dropdown
- profile: Edit profile
- sign_out: Sign out
- dashboard:
- projects:
- index:
- title: Projects
- create_project_button: New project
- all: All
- personal: Personal
- search:
- placeholder: Filter by name
- sorting:
- updated_at_desc: Updated At
- created_at_desc: Last created
- namespace_name_asc: Name
- namespace_name_desc: Name, descending
- updated_at_asc: Oldest updated
- created_at_asc: Oldest created
+ title: Filter by sample names or Id
+ nextflow:
+ email_notification: Receive an email notification when your analysis has completed?
+ required: Required
+ update_samples: Update samples with analysis results
+ pagination:
+ next: Next
+ previous: Prev
+ concerns:
+ bot_actions:
+ create:
+ success: Bot account was successfully added to the group
+ destroy:
+ success: Bot account was successfully removed from the group
+ bot_personal_access_token_actions:
+ create:
+ success: Successfully generated new personal access token for bot
+ revoke:
+ success: Successfully revoked personal access token %{pat_name}
+ file_import_actions:
+ create:
+ error: 'Metadata was not successfully imported for the following samples:'
+ success: Sample metadata was successfully imported.
+ membership_actions:
+ create:
+ success: Member %{user} added successfully
+ destroy:
+ leave_success: You have successfully left %{name}
+ success: Member %{user} successfully removed
+ update:
+ success: Member %{user_email} updated successfully
+ share_actions:
+ create:
+ success: Successfully linked group %{namespace_name} with group %{group_name}
+ destroy:
+ error: There was an error unlinking group from group
+ success: Successfully unlinked group %{namespace_name} from group %{group_name}
+ update:
+ error: There was an error updating the namespace group link
+ params:
+ expiration_date: expiration date
+ group_access_level: group access level
+ success: Successfully updated group %{namespace_name} with group %{group_name} link %{param_name}
+ workflow_execution_actions:
+ cancel:
+ error: Could not cancel workflow %{workflow_name}
+ success: Workflow %{workflow_name} was successfully canceled
+ destroy:
+ error: Could not delete workflow %{workflow_name}
+ success: Workflow %{workflow_name} was successfully deleted
+ dashboard:
groups:
index:
- title: Groups
create_group_button: New group
- more_items: "%{count} more items"
- row_aria_label: "See %{name} subgroups"
- subgroups: Subgroups
+ row_aria_label: See %{name} subgroups
sorting:
- updated_at_desc: Updated At
+ created_at_asc: Oldest created
created_at_desc: Last created
name_asc: Name
name_desc: Name, descending
updated_at_asc: Oldest updated
- created_at_asc: Oldest created
- profiles:
- sidebar:
- header: User Settings
- profile: Profile
- password: Password
- account: Account
- access_tokens: Access Tokens
- preferences: Preferences
- show:
- email:
- title: Email
- subtitle: Email address linked to this account
- pending: "Pending confirmation of %{email}"
- submit: Update profile settings
- missing: This field has not been provided by the Authentication Provider.
- email_address: Email Address
- first_name: First Name
- last_name: Last Name
- update:
- success: Profile updated successfully
- passwords:
- update:
- success: Password updated successfully
- hint: You must provide your current password to update it
- title: Password
- subtitle: Update your account password
- submit: Save password
- forgot: Forgot your password?
- accounts:
- delete:
- description: Deleting your account has the following effects
- effects:
- - All projects and groups you own will be deleted
- - All projects and groups you are a member of will be left intact
- button: Delete account
- confirm: Are you sure you want to delete your account?
- preferences:
- show:
- theme_title: Colour theme
- system_theme: System
- system_desc: The colour theme will update based on your operating system settings.
- light_theme: Light
- dark_theme: Dark
- locale_title: Language
- preferences: Preferences
- update:
- success: Language updated successfully
- success: Preferences updated successfully
- locale_form:
- en: English
- fr: French
- personal_access_tokens:
- access_token_section:
- label: Your new personal access token
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- submit: Create personal access token
- subtitle: Enter the name of your application, and we'll return a unique personal access token.
- title: Add a personal access token
+ updated_at_desc: Updated At
+ title: Groups
+ projects:
index:
- active_personal_access_tokens: Active Personal Access Tokens (%{count})
- expires_at: Expires
- subtitle: You can generate a personal access token for each application you use that needs access to the IRIDA Next API.
- title: Personal Access Tokens
+ all: All
+ create_project_button: New project
+ personal: Personal
+ search:
+ placeholder: Filter by name
+ sorting:
+ created_at_asc: Oldest created
+ created_at_desc: Last created
+ namespace_name_asc: Name
+ namespace_name_desc: Name, descending
+ updated_at_asc: Oldest updated
+ updated_at_desc: Updated At
+ title: Projects
+ data_exports:
+ create:
+ success: Data export '%{name}' was successfully started.
+ destroy:
+ error: Data export '%{name}' could not be deleted.
+ success: Data export '%{name}' was successfully deleted.
+ index:
+ actions:
+ delete: Delete
+ delete_aria_label: Delete data export %{name}
+ download: Download
+ download_aria_label: Download data export %{name}
+ delete_confirmation: Are you sure you would like to delete data export '%{name}'?
+ no_data_exports: No Data Exports
+ no_data_exports_message: You currently have no data exports.
+ table_header:
action: Action
- personal_access_token:
- never: Never
- revoke_button: Revoke
- revoke_confirm: Are you sure you want to revoke this personal access token? This action cannot be undone.
- groups:
- owner: Owner
- sidebar:
- details: Details
- members: Members
- history: History
+ created_at: Created
+ expires_at: Expires
+ id: ID
+ name: Name
+ status: Status
+ type: Type
+ title: Data Exports
+ list_workflow_execution:
+ id: Id
+ name: Name
+ run_id: Run
+ workflow: Workflow
+ new:
+ after_submission_description_html: After submission, you will be redirected to the export page. While the export status is processing, the contents of the export are being created. Once the export status is ready, it will be available for download. You will have 3 business days to download the export before it's deleted.
+ email_label: Receive an email notification when your export is ready to download?
+ name_label: 'Export Name (Optional):'
+ sample_description:
+ plural: This export will contain COUNT_PLACEHOLDER samples.
+ singular: This export will contain 1 sample.
+ zero: This export will contain no samples.
+ samples_count:
+ non_zero: Samples (COUNT_PLACEHOLDER selected)
+ zero: Samples (0 selected)
+ submit_button: Submit button
+ new_analysis_export_dialog:
+ description:
+ plural: This export will contain COUNT_PLACEHOLDER workflow executions.
+ singular: This export will contain 1 workflow execution.
+ zero: This export will contain no workflow executions.
+ selection_count:
+ non_zero: Workflow Executions (COUNT_PLACEHOLDER selected)
+ zero: Workflow Executions (0 selected)
+ title: Analysis Export
+ new_linelist_export_dialog:
+ available: Available
+ csv: ".csv"
+ format: Format
+ metadata: Metadata
+ metadata_description: Select the metadata fields for export by moving the metadata fields from the %{available} list to the %{selected} list. The export's metadata ordering will be determined by the ordering of the %{selected} list.
+ selected: Selected
+ title: Linelist Export
+ xlsx: ".xslx"
+ new_sample_export_dialog:
+ available: Available
+ format_description: By default, all files are included in sample exports. If you would like to filter which files are included based on format, include only those formats within the %{selected} list.
samples: Samples
- settings: Settings
- general: General
- bot_accounts: Bot Accounts
- index:
- create_group_button: New group
- group_dropdown:
- label: Actions for group %{group_name}
- delete: Delete group
- delete_confirmation: Are you sure you want to delete this group?
- create:
- success: Group created successfully
- title: Create group
- subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
- name_placeholder: Awesome group name
- name_help: Group name must be at least 3 letters long and start with a letter, digit, or emoji. For more information see Reserved group names
- path_help: The path is used in URLs. It must be at least 3 letters long and can only contain letters, numbers, dashes and underscores
- submit: Create group
- cancel: Cancel
- history:
- index:
- title: History
- group_history_modal:
- close: Close
- version_number: "Version %{version_number}"
- group_history_modal_description:
- group_created: "Group was created by %{user}"
- group_deleted: "Group was deleted by %{user}"
- group_modified: "Group attributes were modified by %{user}"
- group_restored: "Group was restored by %{user}"
- group_transferred: "Group was transferred by %{user}"
+ select_formats: Select File Formats
+ selected: Selected
+ title: Sample Export
+ new_single_analysis_export_dialog:
+ single_selection: Workflow Executions (1 selected)
+ preview:
+ manifest_json: manifest.json
+ show:
+ download: Download
+ remove_button: Remove
+ remove_button_confirmation: Are you sure you would like to delete data export '%{name}'?
+ tabs:
+ preview: Preview
+ summary: Summary
+ status:
+ processing: PROCESSING
+ ready: READY
+ summary:
+ created_at: Created
+ expires_at: Expires
+ format: Format
+ id: ID
+ name: Name
+ once_ready: Available once export is ready
+ status: Status
+ type: Type
+ types:
+ analysis: ANALYSIS
+ linelist: LINELIST
+ sample: SAMPLE
+ date:
+ formats:
+ iso: YYYY-MM-DD
+ errors:
+ messages:
+ not_saved:
+ one: '1 error prohibited this %{resource} from being saved:'
+ other: "%{count} errors prohibited this %{resource} from being saved:"
+ general:
+ default_sidebar:
+ data_exports: Data Exports
+ groups: Groups
+ projects: Projects
+ title: Your work
+ workflows: Workflow Executions
+ help: Help
+ name: IRIDA Next
+ navbar:
+ account_dropdown:
+ aria_label: Account menu dropdown
+ profile: Edit profile
+ sign_out: Sign out
+ collapse:
+ aria_label: Collapse navigation menu
+ new_dropdown:
+ aria_label: New menu item
+ group: Create new group
+ project: Create new project
+ screen_reader:
+ close: Close
+ groups:
bots:
index:
- title: Bot Accounts
- subtitle: Setup bot accounts to perform actions within the group that cannot be attributed to a human user
- add_new_bot: New bot account
- bot:
- remove: Remove
- remove_confirmation: "Are you sure you want to remove this bot account from the group?"
- remove_aria_label: Remove bot account
+ access_level:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: New personal access token for %{bot_name}
+ add_new_bot: New bot account
+ bot:
generate_new_token: Generate new token
generate_new_token_aria_label: Generate a new personal access token for bot account
never: Never
+ remove: Remove
+ remove_aria_label: Remove bot account
+ remove_confirmation: Are you sure you want to remove this bot account from the group?
bot_listing:
- username: Username
- active_tokens: Active Tokens
- created: Created
- expiration: Expiration
access_level: Access Level
actions: Actions
+ active_tokens: Active Tokens
+ created: Created
empty_state:
- title: No bot accounts
description: There are no bot accounts attributed to this group
- new_bot_modal:
- title: New Bot Account
- description: Adding a bot account to associate certain actions which can't be attributed to a human user
- token_name: Token Name
- access_level: Access Level
- select_access_level: Select access level
+ title: No bot accounts
+ expiration: Expiration
+ generate_personal_access_token_modal:
+ cancel: Cancel
+ description: Generating a new personal access token for %{bot_account}
expires_at: Token Expiration Date (optional)
+ name: Token Name
submit: Submit
- cancel: Cancel
- generate_personal_access_token_modal:
title: New Personal Access Token
- description: "Generating a new personal access token for %{bot_account}"
- name: Token Name
+ new_bot_modal:
+ access_level: Access Level
+ cancel: Cancel
+ description: Adding a bot account to associate certain actions which can't be attributed to a human user
expires_at: Token Expiration Date (optional)
+ select_access_level: Select access level
submit: Submit
- cancel: Cancel
+ title: New Bot Account
+ token_name: Token Name
+ username: Username
personal_access_tokens_listing_modal:
- title: Personal access tokens
+ actions: Actions
description: Viewing a list of active personal access tokens for %{bot_account}
- available_tokens: Personal access tokens for %{bot_account}
- actions : Actions
personal_access_token:
never: Never
revoke: Revoke
- revoke_confirmation: "Are you sure you want to revoke this personal access token?"
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- access_token_section:
- label: "New personal access token for %{bot_name}"
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- success: "Bot account was successfully added to the group"
- destroy:
- success: "Bot account was successfully removed from the group"
- personal_access_tokens:
- create:
- success: Successfully generated new personal access token for bot
- revoke:
- success: "Successfully revoked personal access token %{pat_name}"
- error: "There was an error revoking personal access token %{pat_name}"
+ revoke_confirmation: Are you sure you want to revoke this personal access token?
+ title: Personal access tokens
+ subtitle: Setup bot accounts to perform actions within the group that cannot be attributed to a human user
+ title: Bot Accounts
+ create:
+ cancel: Cancel
+ name_help: Name help
+ name_placeholder: Awesome group name
+ path_help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
+ submit: Create group
+ subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
+ success: Group created successfully
+ title: Create group
destroy:
- success: "Group %{group_name} was deleted"
- error: "Could not delete %{group_name}"
+ success: Group %{group_name} was deleted
edit:
- title: Settings
- details:
- title: General
- subtitle: Group name and description
- name_placeholder: Awesome group name
- submit: Save changes
advanced:
- title: Advanced settings
- transfer:
- title: Transfer group
- submit: Transfer group
- new_namespace_id: Select a parent group
- descriptions:
- - Transfer group to another parent group.
- points:
- - Be careful. Changing a group's parent can have unintended side effects.
- - You can only transfer groups where you have sufficient permissions.
- - If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.
- confirm:
- title: Confirmation required
- warning_html: You are going to transfer %{group_name} to another namespace. Once you confirm, this action cannot be undone.
- points_html:
- - To prevent accidental actions we ask you to confirm your intention.
- - Please type %{group} to proceed or close this dialog to cancel.
delete:
- title: Delete group
+ confirm: Are you sure you want to delete this group?
description: Deleting a group is permanent and cannot be undone. All projects, subgroups, and direct members will be deleted along with the group.
submit: Delete group
- confirm: Are you sure you want to delete this group?
+ title: Delete group
path:
- label: Path
- title: Change group URL
description: Changing a group's URL can have unintended side effects.
submit: Change group URL
- show:
- create_subgroup_button: New subgroup
- create_project_button: New project
- tabs:
- label: Group project details navigation
- subgroups_and_projects: Subgroups and projects
- shared_namespaces: Shared groups and projects
- subgroups:
- no_subgroups:
- title: No subgroups
- description: Create a subgroup to manage projects and members
- shared_namespaces:
- no_shared:
- title: No shared groups or projects
- description: Groups and projects can be shared with other groups through their members page.
- new_subgroup:
- title: Create subgroup
- subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
- submit: Create subgroup
- cancel: Cancel
- update:
- success: Group %{group_name} was successfully updated
- transfer:
- success: Group transferred successfully
+ title: Change group URL
+ title: Advanced settings
+ transfer:
+ confirm:
+ points_html:
+ - To prevent accidental actions we ask you to confirm your intention.
+ - Please type %{group} to proceed or close this dialog to cancel.
+ warning_html: You are going to transfer %{group_name} to another namespace. Once you confirm, this action cannot be undone.
+ descriptions:
+ - Transfer group to another parent group.
+ new_namespace_id: Select a parent group
+ points:
+ - Be careful. Changing a group's parent can have unintended side effects.
+ - You can only transfer groups where you have sufficient permissions.
+ - If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.
+ submit: Transfer group
+ title: Transfer group
+ details:
+ submit: Save changes
+ subtitle: Group name and description
+ title: General
+ title: Settings
group_links:
index:
- unlink: Unlink
- unlink_confirmation: Are you sure you want to unlink the group %{namespace_name} with group %{group_name}
aria_labels:
- group_id: Id of group to share namespace with
- group_access_level: Group Access Level
expires_at: Group access expiration
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- inherited_from: "Inherited from"
- table_header:
- group: Group
- source: Source
- access_granted: Access Granted
- access_level: Access Level
- expiration: Expiration
- action: Action
- actions:
- member_dropdown_aria_label: "Dropdown options for namespace link with group %{member}"
- unlink_aria_label: "Unlink namespace from group %{member} button"
- empty_state:
- title: No groups
- description: There are no groups that have been delegated access to this group
- create:
- success: Successfully linked group %{namespace_name} with group %{group_name}
- error: There was an error linking group with group
- destroy:
- success: Successfully unlinked group %{namespace_name} from group %{group_name}
- error: There was an error unlinking group from group
- update:
- params:
- expiration_date: expiration date
- group_access_level: group access level
- success: Successfully updated group %{namespace_name} with group %{group_name} link %{param_name}
- error: There was an error updating the namespace group link
+ group_access_level: Group Access Level
new:
- title: Share namespace
- sharing_namespace_with_group: "You're sharing group %{name} with a group"
- placeholder:
- select_access_level: Select access level
- select_group: Select group
- label:
- group_id: Group to share namespace with
- group_access_level: Maximum group access level
- access_expiration: Access expiration (optional)
button:
cancel: Cancel
submit: Share
- empty_state: No groups are associated with that name or ID
+ empty_state: Empty state
+ label:
+ access_expiration: Access expiration (optional)
+ group_access_level: Maximum group access level
+ group_id: Group to share namespace with
+ placeholder:
+ select_access_level: Select access level
+ sharing_namespace_with_group: You're sharing group %{name} with a group
+ title: Share namespace
+ history:
+ group_history_modal:
+ close: Close
+ version_number: Version %{version_number}
+ group_history_modal_description:
+ group_created: Group was created by %{user}
+ group_deleted: Group was deleted by %{user}
+ group_modified: Group attributes were modified by %{user}
+ group_restored: Group was restored by %{user}
+ group_transferred: Group was transferred by %{user}
+ index:
+ title: History
+ index:
+ create_group_button: New group
+ group_dropdown:
+ delete: Delete group
+ delete_confirmation: Are you sure you want to delete this group?
+ label: Actions for group %{group_name}
members:
access_level:
aria_label: Access Level
- create:
- error: "Error adding member"
- success: "Group member %{user} added successfully"
index:
+ actions:
+ button_add_aria_label: Add new group member link
+ link_leave_group_aria_label: Leave group button
+ link_remove_aria_label: Remove group member %{member} link
add: Add New Member
- remove: Remove
- leave_group: Leave group
invite_group: Invite Group
- remove_confirmation: Are you sure you want to remove this member from the group?
leave_confirmation: Are you sure you want to remove yourself from this group?
- title: Members
- subtitle: "These are the members that have access to %{namespace_type} %{namespace_name}"
- access_granted_by: "Access granted by %{grantor_email}"
- actions:
- button_add_aria_label: Add new group member link
- link_remove_aria_label: "Remove group member %{member} link"
- link_leave_group_aria_label: "Leave group button"
- inherited_from: "Inherited from"
+ leave_group: Leave group
+ remove: Remove
+ remove_confirmation: Are you sure you want to remove this member from the group?
search:
- placeholder: Filter by username
groups:
placeholder: Filter by group name
- shared_inherited: Shared inherited
- shared_direct: Shared direct
+ placeholder: Filter by username
+ subtitle: These are the members that have access to %{namespace_type} %{namespace_name}
tabs:
- members: Members
- groups: Groups
aria_label: Group member tabs
- update:
- success: "Group member %{user_email} updated successfully"
+ groups: Groups
+ members: Members
+ title: Members
new:
- title: Add New Member
- description: You are adding a new member to group %{name}
add_member_to_group: Add member to group
- select_user: Select a User
- empty_state: There are no users with the provided email or id
+ description: You are adding a new member to group %{name}
+ empty_state: Empty state
select_access_level: Select Access Level
- destroy:
- error: "There was an error removing the group member"
- success: "Group member %{user} successfully removed"
- leave_success: "You have successfully left the group %{name}"
+ select_user: Select a User
+ title: Add New Member
+ new_subgroup:
+ cancel: Cancel
+ submit: Create subgroup
+ subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
+ title: Create subgroup
+ owner: Owner
samples:
index:
create_export_button:
label: Create Export
- sample_export: Sample Export
linelist_export: Linelist Export
- import_metadata_button: Import metadata
+ sample_export: Sample Export
deselect_all_button: Deselect All
+ import_metadata_button: Import metadata
+ search:
+ placeholder: Filter by ID or name
select_all_button: Select All
- title: Samples
subtitle: These are the samples in %{namespace_type} %{namespace_name}
+ title: Samples
workflows:
button_sr: Launch workflow
- search:
- placeholder: Filter by ID or name
- metadata: Metadata
table:
- sample: Sample
- project: Project
- puid: ID
- created_at: Created
- updated_at: Last Updated
- files_updated_at: Files Last Updated
- counts:
- samples: Samples
- selected: Selected
- no_samples: No Samples
no_associated_samples: There are no samples associated with this group.
- metadata:
- file_imports:
- create:
- success: Sample metadata was successfully imported.
- error: "Metadata was not successfully imported for the following samples:"
- models:
- sample:
- analysis: Analysis
- projects:
- create:
- success: "Project %{project_name} was successfully created"
- edit:
- title: Settings
- general:
- title: General
- heading: Project name and description
- submit: Update project
- advanced:
- title: Advanced settings
- destroy:
- title: Delete project
- description: Deleting a project is permanent and cannot be undone. All samples and direct members will be deleted along with the project.
- submit: Delete project
- confirm: Are you sure you want to delete this project?
- path:
- label: Path
- title: Change project URL
- submit: Change project URL
- description: Changing a project's URL can have unintended side effects.
- help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
- transfer:
- title: Transfer project
- submit: Transfer project
- new_namespace_id: Select a new namespace
- descriptions:
- - Transfer your project into another namespace.
- - When you transfer your project to a group, you can easily manage multiple projects and users.
- - "Things to be aware of before transferring your project:"
- points:
- - Be careful! Changing a project's namespace can have unintended side effects.
- - You can only transfer projects to groups where you have sufficient permissions.
- - Project visibility level will change to match namespace rules when transferring to a group.
- confirm:
- title: Confirmation required
- warning_html: You are going to transfer %{project_name} to another namespace. Once you confirm, this action cannot be undone.
- points_html:
- - To prevent accidental actions we ask you to confirm your intention.
- - Please type %{project} to proceed or close this dialog to cancel
- history:
+ no_samples: No Samples
+ show:
+ create_project_button: New project
+ create_subgroup_button: New subgroup
+ shared_namespaces:
+ no_shared:
+ description: Groups and projects can be shared with other groups through their members page.
+ title: No shared groups or projects
+ subgroups:
+ no_subgroups:
+ description: Create a subgroup to manage projects and members
+ title: No subgroups
+ tabs:
+ label: Group project details navigation
+ shared_namespaces: Shared groups and projects
+ subgroups_and_projects: Subgroups and projects
+ title: Title
+ sidebar:
+ bot_accounts: Bot Accounts
+ details: Details
+ general: General
+ history: History
+ members: Members
+ samples: Samples
+ settings: Settings
+ table_component:
+ action: Action
+ expires_at: Expiration
+ group_access_level: Access Level
+ group_name: Group
+ namespace_name: Source
+ updated_at: Access Granted
+ transfer:
+ success: Group transferred successfully
+ update:
+ success: Group %{group_name} was successfully updated
+ layouts:
+ application:
+ site_title: IRIDA Next
+ mailers:
+ data_export_mailer:
+ email_subject: Export Ready - %{name}
+ export_ready:
+ download_before_html: Please download the export before %{date} as it will be deleted after this time.
+ ready_for_download_html: Your export %{name} is ready for download.
+ view_exports: 'To view and download the export, click the button below:'
+ email_template:
+ automated_message: This email was sent from an automated system. Please do not reply to this email.
+ copy_paste: 'Or copy and paste this link into your browser:'
+ greeting: Hello,
+ greeting_with_name: Hello %{name},
+ thanks: Thanks,
+ group_link_mailer:
+ access_granted_manager_email:
+ body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ view_details: 'To view all the members of %{namespace_type} ''%{namespace_name}'', click the button below:'
+ access_granted_user_email:
+ body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ view_details: 'To view %{namespace_type} ''%{namespace_name}'', click the button below:'
+ access_revoked_manager_email:
+ body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ access_revoked_user_email:
+ body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ member_mailer:
+ access_granted_manager_email:
+ body_html: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
+ subject: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
+ view_details: 'To view all the members of %{type} ''%{name}'', click the button below:'
+ access_granted_user_email:
+ body_html: You have been granted access to %{type} '%{name}'
+ subject: You have been granted access to %{type} '%{name}'
+ view_details: 'To view %{type} ''%{name}'', click the button below:'
+ access_revoked_manager_email:
+ body_html: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
+ subject: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
+ view_details: 'To view all the members of %{type} ''%{name}'', click the button below:'
+ access_revoked_user_email:
+ body_html: Your access to %{type} '%{name}' has been revoked
+ subject: Your access to %{type} '%{name}' has been revoked
+ pipeline_mailer:
+ complete_manager_email:
+ body_html: Pipeline %{id} has completed successfully.
+ subject: Pipeline Completed - %{id}
+ complete_user_email:
+ body_html: Your pipeline %{id} has completed successfully.
+ subject: Pipeline Completed - %{id}
+ error_manager_email:
+ body_html: Pipeline %{id} did not complete successfully due to errors.
+ subject: Pipeline Errored - %{id}
+ error_user_email:
+ body_html: Your pipeline %{id} did not complete successfully due to errors.
+ subject: Pipeline Errored - %{id}
+ view_details: 'To view the pipeline summary, click the button below:'
+ members:
+ access_levels:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ table_component:
+ access_level: Access Level
+ action: Action
+ aria_labels:
+ expires_at: Member expiration
+ created_at: Access Granted
+ expires_at: Expiration
+ group_access_level: Access Level
+ group_name: Group
+ inherited_from: Inherited from
+ namespace_name: Source
+ updated_at: Access Granted
+ user_email: Username
+ models:
+ sample:
+ analysis: Analysis
+ namespace_tree:
+ row:
+ row_contents_component:
+ stats:
+ projects: Projects
+ subnamespaces: Subnamespaces
+ nextflow:
+ samplesheet:
+ column_component:
+ default: Default
+ required: Required
+ samplesheet_component:
+ label: Label
+ loading: Loading
+ nextflow_component:
+ name:
+ helper: Helper
+ label: Label
+ profiles:
+ accounts:
+ delete:
+ button: Delete account
+ confirm: Are you sure you want to delete your account?
+ description: Deleting your account has the following effects
+ effects:
+ - All projects and groups you own will be deleted
+ - All projects and groups you are a member of will be left intact
+ passwords:
+ update:
+ forgot: Forgot your password?
+ hint: You must provide your current password to update it
+ submit: Save password
+ subtitle: Update your account password
+ success: Password updated successfully
+ title: Password
+ personal_access_tokens:
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: Your new personal access token
+ create:
+ submit: Create personal access token
+ subtitle: Enter the name of your application, and we'll return a unique personal access token.
+ title: Add a personal access token
index:
- title: History
- subtitle: These are the changes that have been made to the project
- latest: Latest
- created_by: "Project created by %{user}"
- modified_by: "Project modified by %{user}"
- project_history_modal:
- close: Close
- version_number: "Version %{version_number}"
- project_history_modal_description:
- project_created: "Project was created by %{user}"
- project_deleted: "Project was deleted by %{user}"
- project_modified: "Project attributes were modified by %{user}"
- project_restored: "Project was restored by %{user}"
- project_transferred: "Project was transferred by %{user}"
+ action: Action
+ active_personal_access_tokens: Active Personal Access Tokens (%{count})
+ expires_at: Expires
+ subtitle: You can generate a personal access token for each application you use that needs access to the IRIDA Next API.
+ title: Personal Access Tokens
+ personal_access_token:
+ never: Never
+ revoke_button: Revoke
+ revoke_confirm: Are you sure you want to revoke this personal access token? This action cannot be undone.
+ preferences:
+ locale_form:
+ en: English
+ fr: French
+ show:
+ dark_theme: Dark
+ light_theme: Light
+ locale_title: Language
+ preferences: Preferences
+ system_desc: The colour theme will update based on your operating system settings.
+ system_theme: System
+ theme_title: Colour theme
+ update:
+ success: Language updated successfully
+ show:
+ email:
+ submit: Update profile settings
+ email_address: Email Address
+ first_name: First Name
+ last_name: Last Name
+ missing: This field has not been provided by the Authentication Provider.
+ sidebar:
+ access_tokens: Access Tokens
+ account: Account
+ header: User Settings
+ password: Password
+ preferences: Preferences
+ profile: Profile
+ update:
+ success: Profile updated successfully
+ projects:
automated_workflow_executions:
- index:
- title: Automated Workflow Executions
- subtitle: Setup automated workflow executions to launch when pair end data is uploaded to the project
- add_new_automated_workflow_execution: New automated workflow execution
actions:
delete_button: Delete
delete_confirm: Are you sure that you want to delete this automated workflow execution?
edit_button: Edit
+ create:
+ error: Could not create an automated workflow execution for %{workflow_name}
+ success: Automated workflow execution for %{workflow_name} was successfully created
+ destroy:
+ error: Could not delete automated workflow execution for %{workflow_name}
+ success: Automated workflow execution for %{workflow_name} was successfully deleted
+ edit_dialog:
+ title: 'Editing Automated Workflow Execution: %{workflow_name}'
+ index:
+ add_new_automated_workflow_execution: New automated workflow execution
+ subtitle: Setup automated workflow executions to launch when pair end data is uploaded to the project
+ title: Automated Workflow Executions
+ new_automated_workflow_execution_modal:
+ title: "%{workflow} parameters"
+ pipeline_selection_modal:
+ title: Workflow Selection
table:
empty:
- title: No automated workflow executions
description: No automated workflow executions have been configured for this project
+ title: No automated workflow executions
headers:
+ actions: Actions
+ created_at: Created
id: ID
name: Name
+ updated_at: Updated
workflow_name: Workflow Name
workflow_version: Workflow Version
- created_at: Created
- updated_at: Updated
- actions: Actions
- create:
- error: "Could not create an automated workflow execution for %{workflow_name}"
- success: "Automated workflow execution for %{workflow_name} was successfully created"
- destroy:
- error: "Could not delete automated workflow execution for %{workflow_name}"
- success: "Automated workflow execution for %{workflow_name} was successfully deleted"
- pipeline_selection_modal:
- title: Workflow Selection
- new_automated_workflow_execution_modal:
- title: "%{workflow} parameters"
- edit_dialog:
- title: "Editing Automated Workflow Execution: %{workflow_name}"
bots:
index:
- title: Bot Accounts
- subtitle: Setup bot accounts to perform actions within the project that cannot be attributed to a human user
+ access_level:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: New personal access token for %{bot_name}
add_new_bot: New bot account
bot:
- remove: Remove
- remove_confirmation: "Are you sure you want to remove this bot account from the project?"
- remove_aria_label: Remove bot account
generate_new_token: Generate new token
generate_new_token_aria_label: Generate a new personal access token for bot account
never: Never
+ remove: Remove
+ remove_aria_label: Remove bot account
+ remove_confirmation: Are you sure you want to remove this bot account from the project?
bot_listing:
- username: Username
- active_tokens: Active Tokens
- created: Created
- expiration: Expiration
access_level: Access Level
actions: Actions
+ active_tokens: Active Tokens
+ created: Created
empty_state:
- title: No bot accounts
description: There are no bot accounts attributed to this project
- new_bot_modal:
- title: New Bot Account
- description: Adding a bot account to associate certain actions which can't be attributed to a human user
- token_name: Token Name
- access_level: Access Level
- select_access_level: Select access level
- expires_at: Token Expiration Date (optional)
- submit: Submit
- cancel: Cancel
+ title: No bot accounts
+ expiration: Expiration
generate_personal_access_token_modal:
- title: New Personal Access Token
- description: "Generating a new personal access token for %{bot_account}"
- name: Token Name
+ cancel: Cancel
+ description: Generating a new personal access token for %{bot_account}
expires_at: Token Expiration Date (optional)
+ name: Token Name
submit: Submit
+ title: New Personal Access Token
+ new_bot_modal:
+ access_level: Access Level
cancel: Cancel
+ description: Adding a bot account to associate certain actions which can't be attributed to a human user
+ expires_at: Token Expiration Date (optional)
+ select_access_level: Select access level
+ submit: Submit
+ title: New Bot Account
+ token_name: Token Name
+ username: Username
personal_access_tokens_listing_modal:
- title: Personal access tokens
+ actions: Actions
description: Viewing a list of active personal access tokens for %{bot_account}
- available_tokens: Personal access tokens for %{bot_account}
- actions : Actions
personal_access_token:
never: Never
revoke: Revoke
- revoke_confirmation: "Are you sure you want to revoke this personal access token?"
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- access_token_section:
- label: "New personal access token for %{bot_name}"
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- success: "Bot account was successfully added to the project"
- destroy:
- success: "Bot account was successfully removed from the project"
- personal_access_tokens:
- create:
- success: Successfully generated new personal access token for bot
- revoke:
- success: "Successfully revoked personal access token %{pat_name}"
- error: "There was an error revoking personal access token %{pat_name}"
- new:
- title: Create project
- placeholder: Awesome project name
- description: Project description, not required
- subtitle: Projects are where you can store and analyze your data
- help: The path is used in URLs and must be at least 3 characters and can only contain letters, numbers, dashes and underscores
- submit: Create project
- cancel: Cancel
- name: Name
- sidebar:
- details: Details
- history: History
- members: Members
- samples: Samples
- workflow_executions: Workflow Executions
- settings: Settings
- general: General
- bot_accounts: Bot Accounts
- automated_workflow_executions: Automated Workflow Executions
- update:
- success: "Project %{project_name} was successfully updated"
- transfer:
- success: "Project %{project_name} was successfully transferred"
+ revoke_confirmation: Are you sure you want to revoke this personal access token?
+ title: Personal access tokens
+ subtitle: Setup bot accounts to perform actions within the project that cannot be attributed to a human user
+ title: Bot Accounts
+ create:
+ success: Project %{project_name} was successfully created
destroy:
- success: "Project %{project_name} was successfully deleted"
+ success: Project %{project_name} was successfully deleted
+ edit:
+ advanced:
+ destroy:
+ confirm: Are you sure you want to delete this project?
+ description: Deleting a project is permanent and cannot be undone. All samples and direct members will be deleted along with the project.
+ submit: Delete project
+ title: Delete project
+ path:
+ description: Changing a project's URL can have unintended side effects.
+ help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
+ submit: Change project URL
+ title: Change project URL
+ title: Advanced settings
+ transfer:
+ confirm:
+ points_html:
+ - To prevent accidental actions we ask you to confirm your intention.
+ - Please type %{project} to proceed or close this dialog to cancel
+ warning_html: You are going to transfer %{project_name} to another namespace. Once you confirm, this action cannot be undone.
+ descriptions:
+ - Transfer your project into another namespace.
+ - When you transfer your project to a group, you can easily manage multiple projects and users.
+ - 'Things to be aware of before transferring your project:'
+ new_namespace_id: Select a new namespace
+ points:
+ - Be careful! Changing a project's namespace can have unintended side effects.
+ - You can only transfer projects to groups where you have sufficient permissions.
+ - Project visibility level will change to match namespace rules when transferring to a group.
+ submit: Transfer project
+ title: Transfer project
+ general:
+ heading: Project name and description
+ submit: Update project
+ title: General
+ title: Settings
group_links:
index:
- unlink: Unlink
- unlink_confirmation: Are you sure you want to unlink the project %{namespace_name} with group %{group_name}
- aria_labels:
- group_id: Id of group to share namespace with
- group_access_level: Group Access Level
- expires_at: Group access expiration
access_level:
level_0: No Access
level_10: Guest
@@ -1008,62 +992,48 @@ en:
level_30: Analyst
level_40: Maintainer
level_50: Owner
- inherited_from: "Inherited from"
- table_header:
- group: Group
- source: Source
- access_granted: Access Granted
- access_level: Access Level
- expiration: Expiration
- action: Action
actions:
- member_dropdown_aria_label: "Dropdown options for namespace link with group %{member}"
- unlink_aria_label: "Unlink namespace from group %{member} button"
+ unlink_aria_label: Unlink namespace from group %{member} button
+ aria_labels:
+ expires_at: Group access expiration
+ group_access_level: Group Access Level
empty_state:
- title: No groups
description: There are no groups that have been delegated access to this project
- create:
- success: Successfully linked project %{namespace_name} with group %{group_name}
- error: There was an error linking project with group
- destroy:
- success: Successfully unlinked project %{namespace_name} with group %{group_name}
- error: There was an error unlinking project from group
- update:
- params:
- expiration_date: expiration date
- group_access_level: group access level
- success: Successfully updated project %{namespace_name} with group %{group_name} link %{param_name}
- error: There was an error updating the namespace group link
+ title: No groups
+ inherited_from: Inherited from
+ unlink: Unlink
+ unlink_confirmation: Are you sure you want to unlink the project %{namespace_name} with group %{group_name}
new:
- title: Share namespace
- sharing_namespace_with_group: "You're sharing group %{name} with a group"
- placeholder:
- select_access_level: Select access level
- select_group: Select group
- label:
- shared_group: Group to share namespace with
- group_access_level: Maximum group access level
- access_expiration: Access expiration (optional)
- empty_state: No groups are associated with that name or ID
button:
cancel: Cancel
submit: Share
+ empty_state: Empty state
+ label:
+ access_expiration: Access expiration (optional)
+ group_access_level: Maximum group access level
+ shared_group: Group to share namespace with
+ placeholder:
+ select_access_level: Select access level
+ select_group: Select group
+ sharing_namespace_with_group: You're sharing group %{name} with a group
+ title: Share namespace
+ history:
+ index:
+ subtitle: These are the changes that have been made to the project
+ title: History
+ project_history_modal:
+ close: Close
+ version_number: Version %{version_number}
+ project_history_modal_description:
+ project_created: Project was created by %{user}
+ project_deleted: Project was deleted by %{user}
+ project_modified: Project attributes were modified by %{user}
+ project_restored: Project was restored by %{user}
+ project_transferred: Project was transferred by %{user}
members:
access_level:
aria_label: Access Level
- create:
- error: "Error adding member"
- success: "Project member %{user} added successfully"
index:
- add: Add New Member
- remove: Remove
- leave_project: Leave project
- invite_group: Invite group
- remove_confirmation: Are you sure you want to remove this member from the project?
- leave_confirmation: Are you sure you want to remove yourself from the project?
- title: Members
- subtitle: "These are the members that have access to %{namespace_type} %{namespace_name}"
- access_granted_by: "Access granted by %{grantor_email}"
access_level:
level_0: No Access
level_10: Guest
@@ -1073,688 +1043,411 @@ en:
level_50: Owner
actions:
button_add_aria_label: Add new project member button
- link_remove_aria_label: "Remove project member %{member} link"
- link_leave_project_aria_label: "Leave project link"
+ link_leave_project_aria_label: Leave project link
+ link_remove_aria_label: Remove project member %{member} link
+ add: Add New Member
+ invite_group: Invite group
+ leave_confirmation: Are you sure you want to remove yourself from the project?
+ leave_project: Leave project
+ remove: Remove
+ remove_confirmation: Are you sure you want to remove this member from the project?
search:
- placeholder: Filter by username
groups:
placeholder: Filter by group name
- shared_inherited: Shared inherited
- shared_direct: Shared direct
- table_header:
- username: Username
- access_level: Access Level
- source: Source
- access_granted: Access Granted
- expiration: Expiration
- action: Action
+ placeholder: Filter by username
+ subtitle: These are the members that have access to %{namespace_type} %{namespace_name}
tabs:
- members: Members
- groups: Groups
aria_label: Project members tabs
- update:
- success: "Project member %{user_email} updated successfully"
+ groups: Groups
+ members: Members
+ title: Members
new:
- title: Add New Member
add_member_to_project: Add member to project
description: You are adding a new member to project %{name}
- select_user: Select a User
+ empty_state: Empty state
select_access_level: Select Access Level
- empty_state: There are no users with the provided email or id
- destroy:
- error: "There was an error removing the project member"
- success: "Project member %{user} successfully removed"
- leave_success: "You have successfully left the project %{name}"
+ select_user: Select a User
+ title: Add New Member
+ new:
+ description: Project description, not required
+ help: The path is used in URLs and must be at least 3 characters and can only contain letters, numbers, dashes and underscores
+ placeholder: Awesome project name
+ submit: Create project
+ subtitle: Projects are where you can store and analyze your data
+ title: Create project
samples:
- show:
- add_metadata: Add Metadata
- new_attachment_button: Upload Files
- concatenate_button: Concatenate Files
- delete_files_button: Delete Files
- delete_metadata_button: Delete Metadata
- edit_button: Edit this sample
- remove_button: Remove
- remove_button_confirmation: Are you sure you want to remove this sample from the project?
- error: The sample does not exist within the project.
- files: Files
- files_ignored: "fasta and fastq files must be compressed. The following file(s) cannot be uploaded:"
- metadata:
- actions:
- dropdown:
- update: Update
- delete: Delete
- delete_confirm: Are you sure you want to remove metadata field '%{deleted_key}' from the sample?
- metadata_dropdown_aria_label: Dropdown options for metadata field %{key}
- analysis: Analysis
- update:
- update: Update
- update_metadata: Update Metadata
- key: Key
- value: Value
- no_files: No Files
- no_associated_files: There are no files associated with this sample.
- no_metadata: No Metadata
- no_associated_metadata: This sample has no metadata.
- upload: Upload
- upload_files: Upload Files
- uploading: Uploading
- table_header:
- puid: ID
- filename: Filename
- format: Format
- type: Type
- size: Size
- created_at: Uploaded
- action: Action
- key: Key
- value: Value
- source: Source
- last_updated: Last Updated
- tabs:
- files: Files
- metadata: Metadata
- history: History
- history:
+ attachments:
+ attachment:
+ delete: Delete
+ concatenations:
+ create:
+ basename_help: The basename can only contain letters, numbers, hyphens, periods, and underscores
+ success: Files were successfully concatenated.
+ modal:
+ basename: Filename
+ description: 'The following files were selected to be concatenated:'
+ submit_button: Concatenate
+ title: Concatenate Files
+ create:
+ failure: 'File %{filename} was not uploaded due to the following errors: %{errors}'
+ success: File %{filename} was successfully uploaded.
+ delete_attachment_modal:
+ description: Are you sure that you want to delete this file rom the sample?
+ submit_button: Confirm
+ title: Delete File
+ deletions:
+ destroy:
+ error: 'File %{filename} was not removed due to the following errors: %{errors}'
+ partial_success: Some files were successfully deleted.
+ success: Files were successfully deleted.
modal:
- created_by: "Sample created by %{user}"
- deleted_by: "Sample deleted by %{user}"
- modified_by: "Sample attributes modified by %{user}"
- restored_by: "Sample restored by %{user}"
- transferred_by: "Sample transferred by %{user}"
- version: "Version %{version}"
- close: Close
+ description: 'The following files were selected for deletion:'
+ submit_button: Delete
+ title: Delete Files
+ destroy:
+ error: 'File %{filename} was not removed due to the following errors: %{errors}'
+ success: File %{filename} was successfully removed.
+ clones:
+ create:
+ error: 'The following list of samples failed to clone:'
+ no_samples_cloned_error: 'Samples were not cloned for the following reasons:'
+ success: Samples were successfully cloned.
+ dialog:
+ description:
+ plural: The following COUNT_PLACEHOLDER samples are about to be cloned to another project.
+ singular: The following sample is about to be cloned to another project.
+ zero: No samples have been selected for cloning
+ empty_state: Empty state
+ new_project_id: Project to clone samples to
+ no_available_projects: No available projects
+ samples: Samples
+ select_project: Select project
+ spinner_message: Cloning samples, this might take a while...
+ submit_button: Submit
+ title: Clone Samples
create:
success: Sample was successfully created.
- new:
- title: Create sample
- subtitle: This is a subtitle to create a new project sample.
- submit_button: Create sample
- cancel_button: Cancel
- index:
- title: Samples
- subtitle: This is a subtitle to list project samples.
- workflows:
- button_sr: Launch workflow
- new_button: New sample
- edit_button: Edit
- remove_button: Remove
- remove_button_confirmation: Are you sure you want to remove this sample from the project?
- transfer_button: Transfer samples
- import_metadata_button: Import metadata
+ deletions:
+ destroy:
+ success: Sample %{sample_name} was successfully removed from project %{project_name}.
+ destroy_multiple:
+ no_deleted_samples: Selected samples could not be deleted
+ partial_error: "%{not_deleted} samples could not be deleted"
+ partial_success: "%{deleted} samples were successfully deleted"
+ success: Samples were successfully deleted
+ new_deletion_dialog:
+ description: Are you sure you want to delete sample '%{sample_name}'?
+ submit_button: Remove
+ title: Delete Sample
+ new_multiple_deletions_dialog:
+ description:
+ plural: 'The following COUNT_PLACEHOLDER samples have been selected for deletion:'
+ singular: 'The following sample has been selected for deletion:'
+ zero: No samples have been selected for deletion
+ loading: Loading...
+ samples: Samples
+ spinner: Deleting samples. This may take a while...
+ submit_button: Confirm
+ title: Delete Samples
+ edit:
+ cancel_button: Cancel
+ form:
+ title: Name and Description
+ submit_button: Update sample
+ title: Edit sample
+ index:
+ actions:
+ button_add_aria_label: Add new sample button
clone_button: Clone samples
create_export_button:
label: Create Export
- sample_export: Sample Export
linelist_export: Linelist Export
+ sample_export: Sample Export
delete_samples_button: Delete Samples
- actions:
- button_add_aria_label: Add new sample button
- dropdown_aria_label: Dropdown options for sample %{sample_name}
- dropdown:
- remove: Remove sample
+ deselect_all_button: Deselect All
+ edit_button: Edit
+ import_metadata_button: Import metadata
+ new_button: New sample
+ no_associated_samples: There are no samples associated with this project.
+ no_samples: No Samples
+ remove_button: Remove
search:
placeholder: Filter by ID or name
- no_samples: No Samples
- no_associated_samples: There are no samples associated with this project.
- deselect_all_button: Deselect All
select_all_button: Select All
- update:
- success: Sample was successfully updated.
- edit:
- title: Edit sample
- subtitle: This is a subtitle to edit a project sample.
- form:
- title: Name and Description
- submit_button: Update sample
- cancel_button: Cancel
- shared:
- errors:
- ok_button: OK
- metadata_toggle:
- label: Metadata
- transfers:
- dialog:
- title: Transfer Samples
- description:
- zero: No samples have been selected for transfer
- singular: The following sample is about to be transferred, which will result in the sample no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
- plural: The following COUNT_PLACEHOLDER samples are about to be transferred, which will result in these samples no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
- samples: Samples
- empty_state: No projects are associated with that name or ID
- new_project_id: Project to transfer samples to
- no_available_projects: You do not have access to any destination projects to transfer samples
- select_project: Select Project
- submit_button: Submit
- spinner_message: Transferring samples, this might take a while...
- create:
- success: Samples were successfully transferred.
- error: "The following list of samples failed to transfer:"
- no_samples_transferred_error: "Samples were not transferred for the following reasons:"
- clones:
- create:
- success: Samples were successfully cloned.
- error: "The following list of samples failed to clone:"
- no_samples_cloned_error: "Samples were not cloned for the following reasons:"
- dialog:
- title: Clone Samples
- description:
- zero: No samples have been selected for cloning
- singular: The following sample is about to be cloned to another project.
- plural: The following COUNT_PLACEHOLDER samples are about to be cloned to another project.
- samples: Samples
- empty_state: No projects are associated with that name or ID
- new_project_id: Project to clone samples to
- no_available_projects: You do not have access to any destination projects to clone samples
- select_project: Select Project
- submit_button: Submit
- spinner_message: Cloning samples, this might take a while...
+ title: Samples
+ transfer_button: Transfer samples
+ workflows:
+ button_sr: Launch workflow
metadata:
deletions:
destroy:
- single_success: Metadata key '%{deleted_key}' was successfully deleted.
multi_success: Metadata keys '%{deleted_keys}' were successfully deleted.
+ single_success: Metadata key '%{deleted_key}' was successfully deleted.
modal:
- description: "Metadata fields selected for deletion:"
+ description: 'Metadata fields selected for deletion:'
key_header: Key
submit_button: Delete
title: Delete Metadata
value_header: Value
destroy:
+ error: Error
success: Metadata key '%{deleted_key}' was successfully deleted.
- edit:
- edit: Edit
fields:
create:
- single_success: Metadata key '%{key}' was successfully added.
+ multi_keys_exists: Metadata keys '%{keys}' already exist.
multi_success: Metadata keys '%{keys}' were successfully added.
single_key_exists: Metadata key '%{key}' already exist.
- multi_keys_exists: Metadata keys '%{keys}' already exist.
+ single_success: Metadata key '%{key}' was successfully added.
update:
- success: "Metadata was successfully updated"
- update:
- success: "Metadata was successfully updated"
- file_imports:
- create:
- success: Sample metadata was successfully imported.
- error: "Metadata was not successfully imported for the following samples:"
+ success: Metadata was successfully updated
form:
create_field_button: Add another metadata field
- field: Field
key: Key
remove_field: Remove Field
submit_button: Add
value: Value
- attachments:
- concatenations:
- create:
- success: Files were successfully concatenated.
- basename_help: The basename can only contain letters, numbers, hyphens, periods, and underscores
- modal:
- title: Concatenate Files
- description: "The following files were selected to be concatenated:"
- basename: Filename
- delete_originals: Delete Originals
- submit_button: Concatenate
- deletions:
- modal:
- title: Delete Files
- description: "The following files were selected for deletion:"
- submit_button: Delete
- destroy:
- success: Files were successfully deleted.
- partial_success: Some files were successfully deleted.
- error: "File %{filename} was not removed due to the following errors: %{errors}"
- attachment:
- delete: Delete
- create:
- success: File %{filename} was successfully uploaded.
- failure: "File %{filename} was not uploaded due to the following errors: %{errors}"
- destroy:
- success: File %{filename} was successfully removed.
- error: "File %{filename} was not removed due to the following errors: %{errors}"
- error: File %{filename} was not removed.
- delete_attachment_modal:
- description: Are you sure that you want to delete this file rom the sample?
- submit_button: Confirm
- title: Delete File
- table:
- description: The project samples table contains all samples related to this project
- sample: Sample
- puid: ID
- created_at: Created
- updated_at: Last Updated
- files_updated_at: Files Last Updated
- action: Action
- counts:
- samples: Samples
- selected: Selected
- tagged_filter:
- title: Filter by sample names or Id
- clear: Remove all tags
- description: 'Paste a list of , seperated sample names or identifiers'
- apply: Apply filter
- remove_tag: Remove
- deletions:
- new_deletion_dialog:
- title: Delete Sample
- description: Are you sure you want to delete sample '%{sample_name}'?
- submit_button: Remove
- new_multiple_deletions_dialog:
- description:
- zero: No samples have been selected for deletion
- singular: "The following sample has been selected for deletion:"
- plural: "The following COUNT_PLACEHOLDER samples have been selected for deletion:"
- id: ID
- loading: Loading...
- name: Name
- samples: Samples
- spinner: Deleting samples. This may take a while...
- submit_button: Confirm
- title: Delete Samples
- destroy_multiple:
- no_deleted_samples: Selected samples could not be deleted
- partial_error: "%{not_deleted} samples could not be deleted"
- partial_success: "%{deleted} samples were successfully deleted"
- success: Samples were successfully deleted
- destroy:
- success: Sample %{sample_name} was successfully removed from project %{project_name}.
- error: The sample does not exist within the project.
- workflow_executions:
- cancel:
- error: "Could not cancel workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully canceled"
- destroy:
- error: "Could not delete workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully deleted"
- index:
- actions:
- cancel_button: Cancel
- cancel_confirm: Are you sure you want to cancel this workflow execution?
- delete_button: Delete
- delete_confirm: Are you sure you want to delete this workflow execution?
- create_export_button: Create Export
- deselect_all_button: Deselect All
- select_all_button: Select All
- subtitle: These are the automated workflow executions that have been launched for this project
- title: Workflow Executions
- table:
- empty:
- title: No automated workflow executions.
- description: There are no automated workflow executions associated with this project.
+ new:
+ cancel_button: Cancel
+ submit_button: Create sample
+ subtitle: This is a subtitle to create a new project sample.
+ title: Create sample
+ shared:
+ errors:
+ ok_button: OK
+ metadata_toggle:
+ label: Metadata
show:
- create_export_button: Create Export
+ add_metadata: Add Metadata
+ concatenate_button: Concatenate Files
+ delete_files_button: Delete Files
+ delete_metadata_button: Delete Metadata
+ edit_button: Edit this sample
+ files: Files
+ files_ignored: 'fasta and fastq files must be compressed. The following file(s) cannot be uploaded:'
+ history:
+ modal:
+ created_by: Sample created by %{user}
+ deleted_by: Sample deleted by %{user}
+ modified_by: Sample attributes modified by %{user}
+ restored_by: Sample restored by %{user}
+ transferred_by: Sample transferred by %{user}
+ version: Version %{version}
+ metadata:
+ actions:
+ delete_confirm: Are you sure you want to remove metadata field '%{deleted_key}' from the sample?
+ dropdown:
+ delete: Delete
+ update: Update
+ update:
+ key: Key
+ update: Update
+ update_metadata: Update Metadata
+ value: Value
+ new_attachment_button: Upload Files
+ no_associated_files: There are no files associated with this sample.
+ no_associated_metadata: This sample has no metadata.
+ no_files: No Files
+ no_metadata: No Metadata
remove_button: Remove
- remove_button_confirmation: Are you sure that you want to remove this workflow execution?
- cancel_button: Cancel
- cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ remove_button_confirmation: Are you sure you want to remove this sample from the project?
+ table_header:
+ action: Action
+ created_at: Uploaded
+ filename: Filename
+ format: Format
+ key: Key
+ last_updated: Last Updated
+ puid: ID
+ size: Size
+ source: Source
+ type: Type
+ value: Value
tabs:
- summary: Summary
- params: Parameters
files: Files
- params:
- empty: This pipeline has no parameters.
- summary:
- run_id: Run ID
- name: Name
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
+ history: History
+ metadata: Metadata
+ upload: Upload
+ upload_files: Upload Files
+ uploading: Uploading
+ transfers:
+ create:
+ error: 'The following list of samples failed to transfer:'
+ no_samples_transferred_error: 'Samples were not transferred for the following reasons:'
+ success: Samples were successfully transferred.
+ dialog:
+ description:
+ plural: The following COUNT_PLACEHOLDER samples are about to be transferred, which will result in these samples no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
+ singular: The following sample is about to be transferred, which will result in the sample no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
+ zero: No samples have been selected for transfer
+ empty_state: Empty state
+ new_project_id: Project to transfer samples to
+ no_available_projects: No available projects
+ samples: Samples
+ select_project: Select project
+ spinner_message: Transferring samples, this might take a while...
+ submit_button: Submit
+ title: Transfer Samples
+ update:
+ success: Sample was successfully updated.
+ sidebar:
+ automated_workflow_executions: Automated Workflow Executions
+ bot_accounts: Bot Accounts
+ details: Details
+ general: General
+ history: History
+ members: Members
+ samples: Samples
+ settings: Settings
+ workflow_executions: Workflow Executions
+ transfer:
+ success: Success
+ update:
+ success: Project %{project_name} was successfully updated
+ workflow_executions:
files:
table_header:
- puid: ID
+ created_at: Created At
filename: Filename
format: Format
- type: Type
+ puid: ID
size: Size
- created_at: Created At
- state:
- initial: New
- prepared: Prepared
- submitted: Submitted
- running: Running
- completing: Completing
- completed: Completed
- error: Error
- canceling: Canceling
- canceled: Canceled
- workflow_executions:
- index:
- create_export_button: Create Export
- deselect_all_button: Deselect All
- select_all_button: Select All
- title: Workflow Executions
- actions:
+ type: Type
+ index:
+ create_export_button: Create export button
+ deselect_all_button: Deselect all button
+ select_all_button: Select all button
+ subtitle: These are the automated workflow executions that have been launched for this project
+ title: Workflow Executions
+ show:
cancel_button: Cancel
- cancel_confirm: Are you sure you want to cancel this workflow execution?
- delete_button: Delete
- delete_confirm: Are you sure you want to delete this workflow execution?
- table:
- empty:
- title: No workflow executions.
- description: There are no workflow executions associated with this submitter.
- show:
- create_export_button: Create Export
- remove_button: Remove
- remove_button_confirmation: Are you sure that you want to remove this workflow execution?
- cancel_button: Cancel
- cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
- tabs:
- summary: Summary
- params: Parameters
- samplesheet: Samplesheet
- files: Files
- params:
- empty: This pipeline has no parameters.
- summary:
- run_id: Run ID
- name: Name
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
- samples:
- empty: No samples could be found for this workflow execution
- files:
- table_header:
- puid: ID
- filename: Filename
- format: Format
- type: Type
- size: Size
- created_at: Created At
- cancel:
- error: "Could not cancel workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully canceled"
- destroy:
- error: "Could not delete workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully deleted"
- submissions:
- pipeline_selection:
- title: Workflow Selection
- loading: Preparing workflow arguments for COUNT_PLACEHOLDER samples, this may take a bit of time.
- create:
- title: "%{workflow} parameters"
- submit: Submit
- update: Update
- state:
- initial: New
- prepared: Prepared
- submitted: Submitted
- running: Running
- completing: Completing
- completed: Completed
- error: Error
- canceling: Canceling
- canceled: Canceled
- services:
- attachments:
- concatenation:
- filename_missing: Base file name not provided. Please provide a base name for the concatenated file.
- incorrect_file_pairs: Incorrect file pairing. Forward and reverse read file counts do not match.
- incorrect_file_types: "Files are not of the same type. Paired-end files can only be concatenated with other paired-end files, and single-end files can only be concatenated with other single-end files."
- incorrect_attachable: All or some of then selected files do not belong to the sample.
- incorrect_fastq_file_types: "Incorrect file types. '.fastq' files can only be concatenated with other '.fastq' files. '.fastq.gz' files can only be concatenated with other '.fastq.gz' files"
- no_files_selected: No files were selected to concatenate. Please select files then try again.
- incorrect_basename: The base file name can only contain letters, numbers, hyphens, periods, and underscores
- destroy:
- does_not_belong_to_attachable: This attachment does not belong to this sample.
- associated_att_does_not_belong_to_attachable: This associated attachment does not belong to the sample.
- bots:
- create:
- required:
- token_name: Unable to create bot account as the token name is required
- scopes: Unable to create bot account as the bot API scope must be selected
- access_level: Unable to create bot account as an access level must be selected
- data_exports:
- create:
- invalid_export_samples: Unable to create export due to either sample permissions or not found samples.
- invalid_export_workflow_executions: Unable to create export due to either workflow execution permissions or not found workflow executions.
- members:
- create:
- role_not_allowed: "A maintainer can only add members to the %{namespace_type} %{namespace_name} up to the Maintainer role"
- destroy:
- role_not_allowed: A maintainer can only remove a member up to the Maintainer role
- update:
- cannot_update_self: "You cannot update your own %{namespace_type} role"
- role_not_allowed: "A maintainer can only update a member's role up to the Maintainer role"
- samples:
- clone:
- empty_new_project_id: Destination project was not selected.
- empty_sample_ids: The sample ids are empty.
- same_project: The source and destination projects are the same. Please select a different destination project.
- sample_exists: "Sample %{sample_puid}: Conflicts with sample named '%{sample_name}' in the target project"
- transfer:
- empty_new_project_id: Destination project was not selected.
- empty_sample_ids: The sample ids are empty.
- same_project: The samples already exist in the project. Please select a different project.
- sample_exists: "Sample %{sample_puid}: Conflicts with sample named '%{sample_name}' in the target project"
- samples_not_found: "Samples with the following sample ids could not be transferred as they were not found in the source project: %{sample_ids}"
- maintainer_transfer_not_allowed: A maintainer can only transfer samples to other projects within the same hierarchy with a common ancestor
- metadata:
- sample_does_not_belong_to_project: "Sample '%{sample_name}'' does not belong to project '%{project_name}'"
- empty_metadata: "No metadata was received to update sample '%{sample_name}'"
- fields:
- single_all_keys_exist: Metadata key '%{key}' already exist.
- multi_all_keys_exist: Metadata keys '%{keys}' already exist.
- sample_does_not_belong_to_project: "Sample '%{sample_name}'' does not belong to project '%{project_name}'"
- user_cannot_update_metadata: "Metadata fields '%{metadata_fields}' of sample '%{sample_name}' cannot be overwritten by a user as it was previously updated with an analysis. "
- update_fields:
- metadata_was_not_changed: "Metadata fields were not changed."
- key_exists: "Sample already contains metadata field '%{key}'."
- user_cannot_edit_metadata_key: "Metadata key '%{key}' cannot be updated by a user."
- import_file:
- empty_file: The file cannot be empty.
- empty_sample_id_column: The sample id column cannot be empty.
- invalid_file_extension: The file can only be a csv or excel.
- duplicate_column_names: The file has duplicate column header names. Please remove the columns with duplicate header names and retry uploading.
- missing_sample_id_column: The file is missing the sample id column. Please make sure the sample id column exists and retry uploading.
- missing_metadata_column: The file does not have any metadata columns. Please add some columns of metadata to the file and retry uploading.
- missing_metadata_row: The file does not have any metadata rows. Please add some rows of metadata to the file and retry uploading.
- sample_not_found: "Sample '%{sample_name}' is not found within this %{namespace_type}"
- sample_metadata_fields_not_updated: "Sample '%{sample_name}' with field(s) '%{metadata_fields}' cannot be updated."
- personal_access_tokens:
- create:
- required:
- token_name: Unable to generate personal access token as the name is required
- scopes: Unable to generate personal access token as the API scope must be selected
- namespaces:
- share:
- invalid_namespace_type: Only a group or project namespace can be shared with a group.
- groups:
- transfer:
- namespace_empty: The new namespace is empty.
- same_group_and_namespace: The new namespace must be different from the group.
- namespace_group_exists: A group with the same name/path already exists in the new namespace.
- share:
- group_not_found: Group with id %{group_id} to share namespace with cannot be found.
- group_self_reference: Group cannot be shared with itself.
- projects:
- transfer:
- namespace_project_exists: Project with the same name or path already exists in the target namespace.
- application:
- errors:
- access_denied: Access Denied.
- not_authorized: You are not authorized to access the requested resource on this server.
- resource_not_found: Resource Not Found.
- not_found_on_server: The requested resource could not be found on the server.
- ransack:
- sort_dropdown_component:
- sorting:
- updated_at_desc: Updated At
- created_at_desc: Last created
- name_asc: Name
- name_desc: Name, descending
- namespace_name_asc: Name
- namespace_name_desc: Name, descending
- updated_at_asc: Oldest updated
- created_at_asc: Oldest created
- mailers:
- email_template:
- automated_message: This email was sent from an automated system. Please do not reply to this email.
- copy_paste: "Or copy and paste this link into your browser:"
- greeting: Hello,
- greeting_with_name: Hello %{name},
- thanks: Thanks,
- data_export_mailer:
- email_subject: "Export Ready - %{name}"
- export_ready:
- ready_for_download_html: "Your export %{name} is ready for download."
- view_exports: "To view and download the export, click the button below:"
- download_before_html: "Please download the export before %{date} as it will be deleted after this time."
- group_link_mailer:
- access_granted_user_email:
- subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- view_details: "To view %{namespace_type} '%{namespace_name}', click the button below:"
- access_revoked_user_email:
- subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- access_granted_manager_email:
- subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- view_details: "To view all the members of %{namespace_type} '%{namespace_name}', click the button below:"
- access_revoked_manager_email:
- subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- member_mailer:
- access_granted_user_email:
- subject: You have been granted access to %{type} '%{name}'
- body_html: You have been granted access to %{type} '%{name}'
- view_details: "To view %{type} '%{name}', click the button below:"
- access_revoked_user_email:
- subject: Your access to %{type} '%{name}' has been revoked
- body_html: Your access to %{type} '%{name}' has been revoked
- access_granted_manager_email:
- subject: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
- body_html: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
- view_details: "To view all the members of %{type} '%{name}', click the button below:"
- access_revoked_manager_email:
- subject: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
- body_html: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
- view_details: "To view all the members of %{type} '%{name}', click the button below:"
- pipeline_mailer:
- complete_user_email:
- subject: Pipeline Completed - %{id}
- body_html: Your pipeline %{id} has completed successfully.
- complete_manager_email:
- subject: Pipeline Completed - %{id}
- body_html: Pipeline %{id} has completed successfully.
- error_user_email:
- subject: Pipeline Errored - %{id}
- body_html: Your pipeline %{id} did not complete successfully due to errors.
- error_manager_email:
- subject: Pipeline Errored - %{id}
- body_html: Pipeline %{id} did not complete successfully due to errors.
- view_details: "To view the pipeline summary, click the button below:"
- data_exports:
- create:
- success: Data export '%{name}' was successfully started.
- error: An error has occured with creating the data export.
- index:
- title: Data Exports
- table_header:
- id: ID
- name: Name
- type: Type
- status: Status
+ cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ create_export_button: Create Export
+ remove_button: Remove
+ remove_button_confirmation: Are you sure that you want to remove this workflow execution?
+ summary:
created_at: Created
- expires_at: Expires
- action: Action
- actions:
- dropdown: See dropdown actions for data export %{name}
- download: Download
- download_aria_label: Download data export %{name}
- delete: Delete
- delete_aria_label: Delete data export %{name}
- delete_confirmation: Are you sure you would like to delete data export '%{name}'?
- no_data_exports: No Data Exports
- no_data_exports_message: You currently have no data exports.
- summary:
+ name: Name
+ run_id: Run ID
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
+ table:
+ empty:
+ description: There are no automated workflow executions associated with this project.
+ title: No automated workflow executions.
+ ransack:
+ sort_dropdown_component:
+ sorting:
+ created_at_asc: Oldest created
+ created_at_desc: Last created
+ name_asc: Name
+ name_desc: Name, descending
+ namespace_name_asc: Name
+ namespace_name_desc: Name, descending
+ updated_at_asc: Oldest updated
+ updated_at_desc: Updated At
+ samples:
+ table_component:
+ action: Action
+ attachments_updated_at: Files Last Updated
+ counts:
+ samples: Samples
+ selected: Selected
created_at: Created
- expires_at: Expires
- format: Format
- id: ID
- name: Name
- once_ready: Available once export is ready
- status: Status
- type: Type
- destroy:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- remove:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- preview:
- manifest_json: manifest.json
- remove:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- show:
- download: Download
- remove_button: Remove
- remove_button_confirmation: Are you sure you would like to delete data export '%{name}'?
- tabs:
- summary: Summary
- preview: Preview
- new:
- after_submission_description_html: After submission, you will be redirected to the export page. While the export status is processing, the contents of the export are being created. Once the export status is ready, it will be available for download. You will have 3 business days to download the export before it's deleted.
- email_label: Receive an email notification when your export is ready to download?
- name_label: "Export Name (Optional):"
- samples_count:
- zero: "Samples (0 selected)"
- non_zero: "Samples (COUNT_PLACEHOLDER selected)"
- sample_description:
- zero: This export will contain no samples.
- singular: This export will contain 1 sample.
- plural: This export will contain COUNT_PLACEHOLDER samples.
- submit_button: Submit
- new_sample_export_dialog:
- available: Available
- format_description: By default, all files are included in sample exports. If you would like to filter which files are included based on format, include only those formats within the %{selected} list.
- samples: Samples
- select_formats: Select File Formats
- selected: Selected
- title: Sample Export
- new_analysis_export_dialog:
- selection_count:
- zero: "Workflow Executions (0 selected)"
- non_zero: "Workflow Executions (COUNT_PLACEHOLDER selected)"
- description:
- zero: This export will contain no workflow executions.
- singular: This export will contain 1 workflow execution.
- plural: This export will contain COUNT_PLACEHOLDER workflow executions.
- title: Analysis Export
- new_single_analysis_export_dialog:
- id: "ID:"
- name: "Name:"
- run_id: "Run ID:"
- workflow: "Workflow:"
- single_selection: Workflow Executions (1 selected)
- single_description_html: This export will contain 1 workflow execution.
- new_linelist_export_dialog:
- available: Available
- csv: '.csv'
- format: Format
- metadata: Metadata
- metadata_description: Select the metadata fields for export by moving the metadata fields from the %{available} list to the %{selected} list. The export's metadata ordering will be determined by the ordering of the %{selected} list.
- samples: Samples
- select_metadata: Select Metadata
- selected: Selected
- title: Linelist Export
- xlsx: '.xslx'
- list_workflow_execution:
- id: "ID:"
- name: "Name:"
- run_id: "Run ID:"
- workflow: "Workflow:"
- types:
- sample: SAMPLE
- analysis: ANALYSIS
- linelist: LINELIST
- status:
- processing: PROCESSING
- ready: READY
+ limit:
+ item: Samples
+ name: Sample Name
+ project: Project
+ puid: Sample ID
+ select_page: Select / Deselect visible samples
+ updated_at: Last Updated
+ services:
+ attachments:
+ concatenation:
+ filename_missing: Base file name not provided. Please provide a base name for the concatenated file.
+ incorrect_attachable: All or some of then selected files do not belong to the sample.
+ incorrect_basename: The base file name can only contain letters, numbers, hyphens, periods, and underscores
+ incorrect_fastq_file_types: Incorrect file types. '.fastq' files can only be concatenated with other '.fastq' files. '.fastq.gz' files can only be concatenated with other '.fastq.gz' files
+ incorrect_file_pairs: Incorrect file pairing. Forward and reverse read file counts do not match.
+ incorrect_file_types: Files are not of the same type. Paired-end files can only be concatenated with other paired-end files, and single-end files can only be concatenated with other single-end files.
+ no_files_selected: No files were selected to concatenate. Please select files then try again.
+ destroy:
+ associated_att_does_not_belong_to_attachable: This associated attachment does not belong to the sample.
+ does_not_belong_to_attachable: This attachment does not belong to this sample.
+ bots:
+ create:
+ required:
+ access_level: Unable to create bot account as an access level must be selected
+ scopes: Unable to create bot account as the bot API scope must be selected
+ token_name: Unable to create bot account as the token name is required
+ data_exports:
+ create:
+ invalid_export_samples: Unable to create export due to either sample permissions or not found samples.
+ invalid_export_workflow_executions: Unable to create export due to either workflow execution permissions or not found workflow executions.
+ groups:
+ share:
+ group_not_found: Group with id %{group_id} to share namespace with cannot be found.
+ group_self_reference: Group cannot be shared with itself.
+ invalid_namespace_type: Invalid namespace type
+ transfer:
+ namespace_empty: The new namespace is empty.
+ namespace_group_exists: A group with the same name/path already exists in the new namespace.
+ same_group_and_namespace: The new namespace must be different from the group.
+ members:
+ create:
+ role_not_allowed: A maintainer can only add members to the %{namespace_type} %{namespace_name} up to the Maintainer role
+ destroy:
+ role_not_allowed: A maintainer can only remove a member up to the Maintainer role
+ update:
+ cannot_update_self: You cannot update your own %{namespace_type} role
+ role_not_allowed: A maintainer can only update a member's role up to the Maintainer role
+ personal_access_tokens:
+ create:
+ required:
+ scopes: Unable to generate personal access token as the API scope must be selected
+ token_name: Unable to generate personal access token as the name is required
+ projects:
+ create:
+ namespace_required: Namespace required
+ transfer:
+ namespace_empty: Namespace empty
+ namespace_project_exists: Project with the same name or path already exists in the target namespace.
+ project_in_namespace: Project in namespace
+ samples:
+ clone:
+ empty_new_project_id: Destination project was not selected.
+ empty_sample_ids: The sample ids are empty.
+ same_project: The source and destination projects are the same. Please select a different destination project.
+ sample_exists: 'Sample %{sample_puid}: Conflicts with sample named ''%{sample_name}'' in the target project'
+ metadata:
+ empty_metadata: No metadata was received to update sample '%{sample_name}'
+ fields:
+ multi_all_keys_exist: Metadata keys '%{keys}' already exist.
+ sample_does_not_belong_to_project: Sample '%{sample_name}'' does not belong to project '%{project_name}'
+ single_all_keys_exist: Metadata key '%{key}' already exist.
+ import_file:
+ duplicate_column_names: The file has duplicate column header names. Please remove the columns with duplicate header names and retry uploading.
+ empty_file: The file cannot be empty.
+ empty_sample_id_column: The sample id column cannot be empty.
+ invalid_file_extension: The file can only be a csv or excel.
+ missing_metadata_column: The file does not have any metadata columns. Please add some columns of metadata to the file and retry uploading.
+ missing_metadata_row: The file does not have any metadata rows. Please add some rows of metadata to the file and retry uploading.
+ missing_sample_id_column: The file is missing the sample id column. Please make sure the sample id column exists and retry uploading.
+ sample_metadata_fields_not_updated: Sample '%{sample_name}' with field(s) '%{metadata_fields}' cannot be updated.
+ sample_not_found: Sample '%{sample_name}' is not found within this project
+ sample_does_not_belong_to_project: Sample '%{sample_name}'' does not belong to project '%{project_name}'
+ update_fields:
+ key_exists: Sample already contains metadata field '%{key}'.
+ metadata_was_not_changed: Metadata fields were not changed.
+ user_cannot_edit_metadata_key: Metadata key '%{key}' cannot be updated by a user.
+ user_cannot_update_metadata: 'Metadata fields ''%{metadata_fields}'' of sample ''%{sample_name}'' cannot be overwritten by a user as it was previously updated with an analysis. '
+ transfer:
+ empty_new_project_id: Destination project was not selected.
+ empty_sample_ids: The sample ids are empty.
+ maintainer_transfer_not_allowed: A maintainer can only transfer samples to other projects within the same hierarchy with a common ancestor
+ same_project: The samples already exist in the project. Please select a different project.
+ sample_exists: 'Sample %{sample_puid}: Conflicts with sample named ''%{sample_name}'' in the target project'
+ samples_not_found: 'Samples with the following sample ids could not be transferred as they were not found in the source project: %{sample_ids}'
shared:
alert:
list:
@@ -1762,50 +1455,122 @@ en:
loading:
samples_list_skeleton:
loading: Loading...
- spinner:
- loading: Loading...
samples:
metadata:
file_imports:
dialog:
- title: Upload Sample Metadata
- dialog:
- description: Importing a metadata spreadsheet allows multiple metadata fields to multiple samples be added, updated or removed at once.
+ description: Description
file: File
- file_help: CSV, TSV, XLS or XLSX.
- sample_id_column: Sample ID Column
- select_sample_id_column: Select a Sample ID Column
- submit_button: Import Metadata
- ignore_empty_values: Ignore empty values
+ file_help: File help
ignore_empty_values:
- description: If selected, any metadata fields without an associated value will be ignored and those metadata keys will not be removed from the sample if present. However, if this not selected, any samples with the metadata key and empty value will be deleted.
+ description: Description
namespace:
- description: "The spreadsheet is required to have a column that contains a sample identifier. "
+ description: Description
group:
- description_html: The identifier is case-sensitive and must contain the sample ID.
+ description_html: Description html
project:
- description_html: The identifier is case-sensitive and can contain either the sample name or ID.
+ description_html: Description html
+ sample_id_column: Sample id column
+ select_sample_id_column: Select sample id column
+ submit_button: Submit button
+ title: Title
errors:
- description: "The sample metadata import completed with the following errors:"
- ok_button: OK
+ description: Description
+ ok_button: Ok button
success:
- description: The metadata was imported successfully!
- ok_button: OK
- members:
- access_levels:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
+ description: Description
+ ok_button: Ok button
+ time:
+ formats:
+ abbreviated: "%a %b%e %Y %H:%M"
+ default: "%Y-%m-%d %H:%M:%S"
+ full_date: "%B %d, %Y"
+ viral:
+ pagy:
+ limit_component:
+ items: "%{items} per page:"
+ summary:
+ one: Displaying %{count} item
+ other: Displaying %{from}-%{to} of %{count} items
+ pagination_component:
+ aria-label: Pagination
+ next: Next
+ previous: Previous
+ sortable_lists_component:
+ add_all: Add all
+ remove_all: Remove all
+ workflow_executions:
+ files:
+ table_header:
+ created_at: Created At
+ filename: Filename
+ format: Format
+ puid: ID
+ size: Size
+ type: Type
+ index:
+ actions:
+ cancel_button: Cancel
+ cancel_confirm: Are you sure you want to cancel this workflow execution?
+ delete_button: Delete
+ delete_confirm: Are you sure you want to delete this workflow execution?
+ create_export_button: Create export button
+ deselect_all_button: Deselect all button
+ select_all_button: Select all button
+ title: Workflow Executions
+ samples:
+ empty: No samples could be found for this workflow execution
+ show:
+ cancel_button: Cancel
+ cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ create_export_button: Create Export
+ remove_button: Remove
+ remove_button_confirmation: Are you sure that you want to remove this workflow execution?
+ tabs:
+ files: Files
+ params: Parameters
+ samplesheet: Samplesheet
+ summary: Summary
+ state:
+ canceled: Canceled
+ canceling: Canceling
+ completed: Completed
+ completing: Completing
+ error: Error
+ initial: New
+ prepared: Prepared
+ running: Running
+ submitted: Submitted
+ submissions:
+ create:
+ submit: Submit
+ title: "%{workflow} parameters"
+ update: Update
+ pipeline_selection:
+ loading: Preparing workflow arguments for COUNT_PLACEHOLDER samples, this may take a bit of time.
+ title: Workflow Selection
+ summary:
+ created_at: Created
+ name: Name
+ run_id: Run ID
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
+ table:
+ empty:
+ description: There are no workflow executions associated with this submitter.
+ title: No workflow executions.
table_component:
- user_email: Username
- access_level: Access level
- namespace_name: Source
- created_at: Access granted
- expires_at: Expiration
- action: Action
- aria_labels:
- expires_at: Member expiration
- inherited_from: Inherited from
+ actions: Actions
+ counts:
+ selected: Selected
+ workflow_executions: Workflow executions
+ created_at: Created
+ id: ID
+ name: Name
+ run_id: Run ID
+ select_page: Select / Deselect visible samples
+ state: State
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 634e291e0c..86d5dc8b1c 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1,136 +1,98 @@
-# Files in the config/locales directory are used for internationalization
-# and are automatically loaded by Rails. If you want to use locales other
-# than English, add the necessary files in this directory.
-#
-# To use the locales, use `I18n.t`:
-#
-# I18n.t "hello"
-#
-# In views, this is aliased to just `t`:
-#
-# <%= t("hello") %>
-#
-# To use a different locale, set it with `I18n.locale`:
-#
-# I18n.locale = :es
-#
-# This would use the information in config/locales/es.yml.
-#
-# The following keys must be escaped otherwise they will not be retrieved by
-# the default I18n backend:
-#
-# true, false, on, off, yes, no
-#
-# Instead, surround them with single quotes.
-#
-# en:
-# "true": "foo"
-#
-# To learn more, please read the Rails Internationalization guide
-# available at https://guides.rubyonrails.org/i18n.html.
-
+---
fr:
- time:
- formats:
- default: "%Y-%m-%d %H:%M:%S"
- full_date: "%B %d, %Y"
- abbreviated: "%a %b%e %Y %H:%M"
- date:
- formats:
- iso: "YYYY-MM-DD"
action_policy:
policy:
create?: You are not authorized to create this resource on this server.
- destroy?: You are not authorized to remove the requested resource from this server.
- edit?: You are not authorized to update this resource on this server.
- index?: You are not authorized to view the listing of resources on this server.
- new?: You are not authorized to create this resource on this server.
- read?: You are not authorized to view this resource on this server.
- transfer?: You are not authorized to transfer the requested resource.
- transfer_into_namespace?: You are not authorized to transfer to the requested namespace.
- update?: You are not authorized to update this resource on this server.
data_export:
destroy?: You are not authorized to remove this data export on this server.
+ destroy?: You are not authorized to remove the requested resource from this server.
+ edit?: You are not authorized to update this resource on this server.
group:
create?: You are not authorized to create a project under group %{name} on this server.
+ create_bot_accounts?: You are not authorized to create bot accounts for group %{name} on this server.
+ create_member?: You are not authorized to create members for group %{name} on this server.
create_subgroup?: You are not authorized to create a subgroup within group %{name} on this server.
destroy?: You are not authorized to remove group %{name} from this server.
+ destroy_bot_accounts?: You are not authorized to destroy bot accounts for group %{name} on this server.
+ destroy_member?: You are not authorized to remove members for group %{name} on this server.
edit?: You are not authorized to modify group %{name} on this server.
+ export_data?: You are not authorized to export data from project %{name} on this server.
+ link_namespace_with_group?: You are not authorized to link group %{name} with other groups on this server.
+ member_listing?: You are not authorized to view members for group %{name} on this server.
new?: You are not authorized to create a project under group %{name} on this server.
read?: You are not authorized to view group %{name} on this server.
+ sample_listing?: You are not authorized to view samples for group %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within group %{name} on this server.
transfer?: You are not authorized to transfer group %{name} on this server.
transfer_into_namespace?: You are not authorized to transfer into the group namespace %{name} on this server.
+ unlink_namespace_with_group?: You are not authorized to unlink group %{name} from other groups on this server.
update?: You are not authorized to update group %{name} on this server.
- member_listing?: You are not authorized to view members for group %{name} on this server.
- create_member?: You are not authorized to create members for group %{name} on this server.
- destroy_member?: You are not authorized to remove members for group %{name} on this server.
update_member?: You are not authorized to update members for group %{name} on this server.
- sample_listing?: You are not authorized to view samples for group %{name} on this server.
- link_namespace_with_group?: You are not authorized to link group %{name} with other groups on this server.
- unlink_namespace_with_group?: You are not authorized to unlink group %{name} from other groups on this server.
update_namespace_with_group_link?: You are not authorized to update group %{name} links with other groups on this server.
- submit_workflow?: You are not authorized to submit workflows for samples within group %{name} on this server.
- create_bot_accounts?: You are not authorized to create bot accounts for group %{name} on this server.
- destroy_bot_accounts?: You are not authorized to destroy bot accounts for group %{name} on this server.
- export_data?: You are not authorized to export data from project %{name} on this server.
update_sample_metadata?: You are not authorized to update sample metadata for group %{name} on this server.
- project:
- activity?: You are not authorized to view the activity for project %{name} on this server.
- destroy?: You are not authorized to remove project %{name} from this server.
- edit?: You are not authorized to modify project %{name} on this server.
- new?: You are not authorized to create a project under the %{name} namespace on this server.
- read?: You are not authorized to view project %{name} on this server.
- transfer?: You are not authorized to transfer project %{name} on this server.
- update?: You are not authorized to update project %{name} on this server.
- sample_listing?: You are not authorized to view samples for project %{name} on this server.
- create_sample?: You are not authorized to create samples for project %{name} on this server.
- destroy_sample?: You are not authorized to remove samples from project %{name} on this server.
- read_sample?: You are not authorized to view this sample for project %{name} on this server.
- update_sample?: You are not authorized to update samples for project %{name} on this server.
- transfer_sample?: You are not authorized to transfer samples for project %{name} on this server.
- transfer_sample_into_project?: You are not authorized to transfer samples to project %{name} on this server.
- clone_sample?: You are not authorized to clone samples from project %{name} on this server.
- clone_sample_into_project?: You are not authorized to clone samples to project %{name} on this server.
- submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
+ index?: You are not authorized to view the listing of resources on this server.
namespaces/project_namespace:
- update?: You are not authorized to update the namespace for project %{name} on this server.
- member_listing?: You are not authorized to view members for the project namespace %{name} on this server.
+ create_automated_workflow_executions?: You are not authorized to create automated workflow executions for project %{name}
+ create_bot_accounts?: You are not authorized to create bot accounts for project %{name} on this server.
create_member?: You are not authorized to create members for the project namespace %{name} on this server.
+ destroy_automated_workflow_executions?: You are not authorized to destroy automated workflow executions for project %{name}
+ destroy_bot_accounts?: You are not authorized to destroy bot accounts for project %{name} on this server.
destroy_member?: You are not authorized to remove members from the project namespace %{name} on this server.
- update_member?: You are not authorized to update members for the project namespace %{name} on this server.
+ export_data?: You are not authorized to export data from project %{name} on this server.
link_namespace_with_group?: You are not authorized to link project %{name} with other groups on this server.
+ member_listing?: You are not authorized to view members for the project namespace %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
unlink_namespace_with_group?: You are not authorized to unlink project %{name} from other groups on this server.
+ update?: You are not authorized to update the namespace for project %{name} on this server.
+ update_automated_workflow_executions?: You are not authorized to update automated workflow executions for project %{name}
+ update_member?: You are not authorized to update members for the project namespace %{name} on this server.
update_namespace_with_group_link?: You are not authorized to update project %{name} links with other groups on this server.
- create_bot_accounts?: You are not authorized to create bot accounts for project %{name} on this server.
- destroy_bot_accounts?: You are not authorized to destroy bot accounts for project %{name} on this server.
- create_automated_workflow_executions?: "You are not authorized to create automated workflow executions for project %{name}"
- destroy_automated_workflow_executions?: "You are not authorized to destroy automated workflow executions for project %{name}"
- update_automated_workflow_executions?: "You are not authorized to update automated workflow executions for project %{name}"
- view_automated_workflow_executions?: "You are not authorized to view automated workflow executions for project %{name}"
- submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
- view_workflow_executions?: You are not authorized to view workflow executions for project %{name} on this server.
- export_data?: You are not authorized to export data from project %{name} on this server.
update_sample_metadata?: You are not authorized to update sample metadata for project %{name} on this server.
+ view_automated_workflow_executions?: You are not authorized to view automated workflow executions for project %{name}
+ view_workflow_executions?: You are not authorized to view workflow executions for project %{name} on this server.
namespaces/user_namespace:
create?: You are not authorized to create a project under the %{name} namespace
transfer_into_namespace?: You are not authorized to transfer to the user %{name} namespace
+ new?: You are not authorized to create this resource on this server.
+ project:
+ activity?: You are not authorized to view the activity for project %{name} on this server.
+ clone_sample?: You are not authorized to clone samples from project %{name} on this server.
+ clone_sample_into_project?: You are not authorized to clone samples to project %{name} on this server.
+ create_sample?: You are not authorized to create samples for project %{name} on this server.
+ destroy?: You are not authorized to remove project %{name} from this server.
+ destroy_sample?: You are not authorized to remove samples from project %{name} on this server.
+ edit?: You are not authorized to modify project %{name} on this server.
+ new?: You are not authorized to create a project under the %{name} namespace on this server.
+ read?: You are not authorized to view project %{name} on this server.
+ read_sample?: You are not authorized to view this sample for project %{name} on this server.
+ sample_listing?: You are not authorized to view samples for project %{name} on this server.
+ submit_workflow?: You are not authorized to submit workflows for samples within project %{name} on this server.
+ transfer?: You are not authorized to transfer project %{name} on this server.
+ transfer_sample?: You are not authorized to transfer samples for project %{name} on this server.
+ transfer_sample_into_project?: You are not authorized to transfer samples to project %{name} on this server.
+ update?: You are not authorized to update project %{name} on this server.
+ update_sample?: You are not authorized to update samples for project %{name} on this server.
+ read?: You are not authorized to view this resource on this server.
sample:
destroy_attachment?: You are not authorized to delete attachments belonging to sample %{name}.
+ transfer?: You are not authorized to transfer the requested resource.
+ transfer_into_namespace?: You are not authorized to transfer to the requested namespace.
+ update?: You are not authorized to update this resource on this server.
user:
create?: You are not authorized to create a user on this server.
destroy?: You are not authorized to remove user %{name} from this server.
edit?: You are not authorized to update user %{name} on this server.
index?: You are not authorized to view listing of users on this server.
new?: You are not authorized to create a user on this server.
- revoke?: You are not authorized to revoke personal access tokens for user %{name} on this server.
read?: You are not authorized to view profile for user %{name} on this server.
+ revoke?: You are not authorized to revoke personal access tokens for user %{name} on this server.
update?: You are not authorized to update user %{name} on this server.
workflow_execution:
- index?: "You are not authorized to view workflow executions for %{namespace_type} %{name}"
- destroy?: "You are not authorized to destroy workflow executions for %{namespace_type} %{name}"
- read?: "You are not authorized to view workflow execution %{id}"
- create?: "You are not authorized to submit workflow executions for %{namespace_type} %{name}"
- cancel?: "You are not authorized to cancel workflow executions for %{namespace_type} %{name}"
+ cancel?: You are not authorized to cancel workflow executions for %{namespace_type} %{name}
+ create?: You are not authorized to submit workflow executions for %{namespace_type} %{name}
+ destroy?: You are not authorized to destroy workflow executions for %{namespace_type} %{name}
+ index?: You are not authorized to view workflow executions for %{namespace_type} %{name}
+ read?: You are not authorized to view workflow execution %{id}
unauthorized: You are not authorized to perform this action
activerecord:
attributes:
@@ -140,34 +102,37 @@ fr:
group:
description: Description
name: Group name
- path: Path
parent_id: Group URL
+ path: Path
+ member:
+ access_level: Access Level
+ expires_at: Access expiration (optional)
+ user_id: User
namespaces/project_namespace:
- name: Project Name
description: Description
+ name: Project Name
parent_id: Project URL
path: Path
personal_access_token:
- name: Token name
- scopes: Scopes
created_at: Created
- last_used_at: Last Used
expires_at: Expiration Date
+ last_used_at: Last Used
+ name: Token name
+ scopes: Scopes
sample:
- name: Name
description: Description
- member:
- access_level: Access Level
- user_id: User
- expires_at: Access expiration (optional)
+ name: Name
user:
+ email: Email
+ first_name: First Name
+ last_name: Last Name
password: Password
password_confirmation: Password confirmation
- email: Email
provider: Authentication Provider
uid: Authentication Provider UID
- first_name: First Name
- last_name: Last Name
+ concerns:
+ history:
+ system: System
errors:
models:
attachment:
@@ -177,822 +142,849 @@ fr:
data_export:
attributes:
export_parameters:
- missing_ids: does not contain any ids to export.
- missing_metadata_fields: must contain metadata fields for linelist exports
- missing_file_format: must contain a format for linelist exports
+ invalid_analysis_type: Invalid analysis type
+ invalid_attachment_format: "%{invalid_formats} are not valid attachment formats"
invalid_file_format: must have either a .xlsx or .csv format for linelist exports
- missing_namespace_id: must have a namespace id
invalid_namespace_id: must have valid namespace
- invalid_attachment_format: "%{invalid_formats} are not valid attachment formats"
+ missing_analysis_type: Missing analysis type
missing_attachment_formats: must have attachment formats for sample exports
- namespace:
- attributes:
- name:
- blank: can't be blank
- taken: has already been taken
+ missing_file_format: must contain a format for linelist exports
+ missing_ids: does not contain any ids to export.
+ missing_metadata_fields: must contain metadata fields for linelist exports
+ missing_namespace_id: must have a namespace id
member:
attributes:
access_level:
+ inclusion: provided is not included in the list of valid access levels
invalid: " for %{user} should be greater than or equal to %{access_level} which is inherited via membership from group %{group_name}"
- inclusion: "provided is not included in the list of valid access levels"
destroy:
- last_member: "Cannot remove this member as this would leave the %{namespace_type} without an owner."
- last_member_self: "You cannot remove yourself as this would leave the %{namespace_type} without an owner."
- personal_access_token:
+ last_member: Cannot remove this member as this would leave the %{namespace_type} without an owner.
+ last_member_self: You cannot remove yourself as this would leave the %{namespace_type} without an owner.
+ namespace:
attributes:
- scopes:
- inclusion: can only contain available scopes
+ name:
+ blank: can't be blank
+ taken: has already been taken
namespace_group_link:
attributes:
+ group_access_level:
+ inclusion: provided is not included in the list of valid access levels
group_id:
blank: Group must exist
+ comparison: Group must be other than %{group_id}
taken: has already been shared with this namespace
- comparison: "Group must be other than %{group_id}"
namespace_id:
blank: Namespace must exist
taken: The namespace has already been shared with this group
namespace_type:
inclusion: can only be Group or Project
- group_access_level:
- inclusion: "provided is not included in the list of valid access levels"
+ personal_access_token:
+ attributes:
+ scopes:
+ inclusion: can only contain available scopes
exceptions:
personal_access_token:
- not_found: "Could not find personal access token with id %{token_id}"
- concerns:
- history:
- system: System
+ not_found: Could not find personal access token with id %{token_id}
models:
+ group:
+ one: Group
+ other: Groups
member:
- one: Member
- other: Members
access_level:
- no_access: No Access
- guest: Guest
- uploader: Uploader
analyst: Analyst
+ guest: Guest
maintainer: Maintainer
+ no_access: No Access
owner: Owner
- its_you: It's you
+ uploader: Uploader
bot: Bot
direct: Direct member
- group:
- one: Group
- other: Groups
- sample:
- one: Sample
- other: Samples
- namespaces/project_namespace:
- one: Project
- other: Projects
+ its_you: It's you
+ one: Member
+ other: Members
namespace_group_link:
+ direct: Direct shared
one: Namespace Group Link
other: Namespace Group Links
- direct: Direct shared
- datetime:
- distance_in_words:
- updated:
- about_x_hours:
- one: Updated about %{count} hour ago
- other: Updated about %{count} hours ago
- about_x_months:
- one: Updated about %{count} month ago
- other: Updated about %{count} months ago
- about_x_years:
- one: Updated about %{count} year ago
- other: Updated about %{count} years ago
- almost_x_years:
- one: Updated almost %{count} year ago
- other: Updated almost %{count} years ago
- half_a_minute: Updated half a minute ago
- less_than_x_seconds:
- one: Updated less than %{count} second ago
- other: Updated less than %{count} seconds ago
- less_than_x_minutes:
- one: Updated less than a minute ago
- other: Updated less than %{count} minutes ago
- over_x_years:
- one: Updated over %{count} year ago
- other: Updated over %{count} years ago
- x_seconds:
- one: "Updated %{count} second ago"
- other: "Updated %{count} seconds ago"
- x_minutes:
- one: "Updated %{count} minute ago"
- other: "Updated %{count} minutes ago"
- x_days:
- one: "Updated %{count} day ago"
- other: "Updated %{count} days ago"
- x_months:
- one: "Updated %{count} month ago"
- other: "Updated %{count} months ago"
- x_years:
- one: "Updated %{count} year ago"
- other: "Updated %{count} years ago"
- about_x_hours:
- one: about %{count} hour ago
- other: about %{count} hours ago
- about_x_months:
- one: about %{count} month ago
- other: about %{count} months ago
- about_x_years:
- one: about %{count} year ago
- other: about %{count} years ago
- almost_x_years:
- one: almost %{count} year ago
- other: almost %{count} years ago
- half_a_minute: half a minute ago
- less_than_x_seconds:
- one: less than %{count} second ago
- other: less than %{count} seconds ago
- less_than_x_minutes:
- one: less than a minute ago
- other: less than %{count} minutes ago
- over_x_years:
- one: over %{count} year ago
- other: over %{count} years ago
- x_seconds:
- one: "%{count} second ago"
- other: "%{count} seconds ago"
- x_minutes:
- one: "%{count} minute ago"
- other: "%{count} minutes ago"
- x_days:
- one: "%{count} day ago"
- other: "%{count} days ago"
- x_months:
- one: "%{count} month ago"
- other: "%{count} months ago"
- x_years:
- one: "%{count} year ago"
- other: "%{count} years ago"
+ namespaces/project_namespace:
+ one: Project
+ other: Projects
+ sample:
+ one: Sample
+ other: Samples
+ application:
+ errors:
+ access_denied: Access Denied.
+ not_found_on_server: The requested resource could not be found on the server.
+ resource_not_found: Resource Not Found.
auth:
scopes:
- label: Scopes
api: Grants complete read/write access to the API.
+ label: Scopes
read_api: Grants read access to the API.
components:
- pagination:
- previous: Prev
- next: Next
clipboard:
copied: Copied!
copy: Copy to clipboard
toggle_visible: Toggle visibility
- dialog:
- close: Close dialog
confirmation:
- title: Confirmation required
cancel: Cancel
confirm: Confirm
confirm_label: Confirmation value
+ title: Confirmation required
+ dialog:
+ close: Close dialog
flash:
- success_icon: Check icon
error_icon: X icon
- warning_icon: Exclamation icon
information_icon: Information icon
- nextflow:
- required: Required
- update_samples: Update samples with analysis results
- email_notification: Receive an email notification when your analysis has completed?
+ success_icon: Check icon
+ warning_icon: Exclamation icon
history:
- latest: Latest
created_by: "%{type} created by %{user}"
deleted_by: "%{type} deleted by %{user}"
+ latest: Latest
+ link_text: Version %{version}
modified_by: "%{type} modified by %{user}"
restored_by: "%{type} restored by %{user}"
transferred_by: "%{type} transferred by %{user}"
- link_text: "Version %{version}"
history_version:
- previous_version: "Previous (Version %{version})"
- current_version: "Current (Version %{version})"
- keys_deleted: "Keys deleted:"
+ current_version: Current (Version %{version})
+ keys_deleted: 'Keys deleted:'
+ previous_version: Previous (Version %{version})
list_filter:
- title: Filter by sample names or Id
- clear: Remove all tags
- description: 'Paste a list of , seperated sample names or identifiers'
apply: Apply filter
+ clear: Remove all tags
+ description: Paste a list of , seperated sample names or identifiers
remove_tag: Remove
- viral:
- sortable_lists_component:
- add_all: Add all
- remove_all: Remove all
- layouts:
- application:
- site_title: IRIDA Next
- general:
- name: IRIDA Next
- help: Help
- expand_sidebar: Expand sidebar
- collapse_sidebar: Collapse sidebar
- screen_reader:
- close: Close
- default_sidebar:
- title: Your work
- groups: Groups
- projects: Projects
- workflows: Workflow Executions
- data_exports: Data Exports
- navbar:
- collapse:
- aria_label: Collapse navigation menu
- main_dropdown:
- aria-label: Main navigation menu
- groups: Groups
- projects: Projects
- search:
- placeholder: Search
- new_dropdown:
- aria_label: New menu item
- project: Create new project
- group: Create new group
- account_dropdown:
- aria_label: Account menu dropdown
- profile: Edit profile
- sign_out: Sign out
- dashboard:
- projects:
- index:
- title: Projects
- create_project_button: New project
- all: All
- personal: Personal
- search:
- placeholder: Filter by name
- sorting:
- updated_at_desc: Updated At
- created_at_desc: Last created
- namespace_name_asc: Name
- namespace_name_desc: Name, descending
- updated_at_asc: Oldest updated
- created_at_asc: Oldest created
+ title: Filter by sample names or Id
+ nextflow:
+ email_notification: Receive an email notification when your analysis has completed?
+ required: Required
+ update_samples: Update samples with analysis results
+ pagination:
+ next: Next
+ previous: Prev
+ concerns:
+ bot_actions:
+ create:
+ success: Bot account was successfully added to the group
+ destroy:
+ success: Bot account was successfully removed from the group
+ bot_personal_access_token_actions:
+ create:
+ success: Successfully generated new personal access token for bot
+ revoke:
+ success: Successfully revoked personal access token %{pat_name}
+ file_import_actions:
+ create:
+ error: 'Metadata was not successfully imported for the following samples:'
+ success: Sample metadata was successfully imported.
+ membership_actions:
+ create:
+ success: Member %{user} added successfully
+ destroy:
+ leave_success: You have successfully left %{name}
+ success: Member %{user} successfully removed
+ update:
+ success: Member %{user_email} updated successfully
+ share_actions:
+ create:
+ success: Successfully linked group %{namespace_name} with group %{group_name}
+ destroy:
+ error: There was an error unlinking group from group
+ success: Successfully unlinked group %{namespace_name} from group %{group_name}
+ update:
+ error: There was an error updating the namespace group link
+ params:
+ expiration_date: expiration date
+ group_access_level: group access level
+ success: Successfully updated group %{namespace_name} with group %{group_name} link %{param_name}
+ workflow_execution_actions:
+ cancel:
+ error: Could not cancel workflow %{workflow_name}
+ success: Workflow %{workflow_name} was successfully canceled
+ destroy:
+ error: Could not delete workflow %{workflow_name}
+ success: Workflow %{workflow_name} was successfully deleted
+ dashboard:
groups:
index:
- title: Groups
create_group_button: New group
- more_items: "%{count} more items"
- row_aria_label: "See %{name} subgroups"
- subgroups: Subgroups
+ row_aria_label: See %{name} subgroups
sorting:
- updated_at_desc: Updated At
+ created_at_asc: Oldest created
created_at_desc: Last created
name_asc: Name
name_desc: Name, descending
updated_at_asc: Oldest updated
- created_at_asc: Oldest created
- profiles:
- sidebar:
- header: User Settings
- profile: Profile
- password: Password
- account: Account
- access_tokens: Access Tokens
- preferences: Preferences
- show:
- email:
- title: Email
- subtitle: Email address linked to this account
- pending: "Pending confirmation of %{email}"
- submit: Update profile settings
- missing: This field has not been provided by the Authentication Provider.
- email_address: Email Address
- first_name: First Name
- last_name: Last Name
- update:
- success: Profile updated successfully
- passwords:
- update:
- success: Password updated successfully
- hint: You must provide your current password to update it
- title: Password
- subtitle: Update your account password
- submit: Save password
- forgot: Forgot your password?
- accounts:
- delete:
- description: Deleting your account has the following effects
- effects:
- - All projects and groups you own will be deleted
- - All projects and groups you are a member of will be left intact
- button: Delete account
- confirm: Are you sure you want to delete your account?
- preferences:
- show:
- theme_title: Colour theme
- system_theme: System
- system_desc: The colour theme will update based on your operating system settings.
- light_theme: Light
- dark_theme: Dark
- locale_title: Langue
- preferences: Preferences
- update:
- success: Langue mise à jour avec succès
- success: Preferences updated successfully
- locale_form:
- en: Anglais
- fr: Français
- personal_access_tokens:
- access_token_section:
- label: Your new personal access token
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- submit: Create personal access token
- subtitle: Enter the name of your application, and we'll return a unique personal access token.
- title: Add a personal access token
+ updated_at_desc: Updated At
+ title: Groups
+ projects:
index:
- active_personal_access_tokens: Active Personal Access Tokens (%{count})
- expires_at: Expires
- subtitle: You can generate a personal access token for each application you use that needs access to the IRIDA Next API.
- title: Personal Access Tokens
+ all: All
+ create_project_button: New project
+ personal: Personal
+ search:
+ placeholder: Filter by name
+ sorting:
+ created_at_asc: Oldest created
+ created_at_desc: Last created
+ namespace_name_asc: Name
+ namespace_name_desc: Name, descending
+ updated_at_asc: Oldest updated
+ updated_at_desc: Updated At
+ title: Projects
+ data_exports:
+ create:
+ success: Data export '%{name}' was successfully started.
+ destroy:
+ error: Data export '%{name}' could not be deleted.
+ success: Data export '%{name}' was successfully deleted.
+ index:
+ actions:
+ delete: Delete
+ delete_aria_label: Delete data export %{name}
+ download: Download
+ download_aria_label: Download data export %{name}
+ delete_confirmation: Are you sure you would like to delete data export '%{name}'?
+ no_data_exports: No Data Exports
+ no_data_exports_message: You currently have no data exports.
+ table_header:
action: Action
- personal_access_token:
- never: Never
- revoke_button: Revoke
- revoke_confirm: Are you sure you want to revoke this personal access token? This action cannot be undone.
- groups:
- owner: Owner
- sidebar:
- details: Details
- members: Members
- history: History
+ created_at: Created
+ expires_at: Expires
+ id: ID
+ name: Name
+ status: Status
+ type: Type
+ title: Data Exports
+ list_workflow_execution:
+ id: Id
+ name: Name
+ run_id: Run
+ workflow: Workflow
+ new:
+ after_submission_description_html: After submission, you will be redirected to the export page. While the export status is processing, the contents of the export are being created. Once the export status is ready, it will be available for download. You will have 3 business days to download the export before it's deleted.
+ email_label: Receive an email notification when your export is ready to download?
+ name_label: 'Export Name (Optional):'
+ sample_description:
+ plural: This export will contain COUNT_PLACEHOLDER samples.
+ singular: This export will contain 1 sample.
+ zero: This export will contain no samples.
+ samples_count:
+ non_zero: Samples (COUNT_PLACEHOLDER selected)
+ zero: Samples (0 selected)
+ submit_button: Submit button
+ new_analysis_export_dialog:
+ description:
+ plural: This export will contain COUNT_PLACEHOLDER workflow executions.
+ singular: This export will contain 1 workflow execution.
+ zero: This export will contain no workflow executions.
+ selection_count:
+ non_zero: Workflow Executions (COUNT_PLACEHOLDER selected)
+ zero: Workflow Executions (0 selected)
+ title: Analysis Export
+ new_linelist_export_dialog:
+ available: Available
+ csv: ".csv"
+ format: Format
+ metadata: Metadata
+ metadata_description: Select the metadata fields for export by moving the metadata fields from the %{available} list to the %{selected} list. The export's metadata ordering will be determined by the ordering of the %{selected} list.
+ selected: Selected
+ title: Linelist Export
+ xlsx: ".xslx"
+ new_sample_export_dialog:
+ available: Available
+ format_description: By default, all files are included in sample exports. If you would like to filter which files are included based on format, include only those formats within the %{selected} list.
samples: Samples
- settings: Settings
- general: General
- bot_accounts: Bot Accounts
- index:
- create_group_button: New group
- group_dropdown:
- label: Actions for group %{group_name}
- delete: Delete group
- delete_confirmation: Are you sure you want to delete this group?
- create:
- success: Group created successfully
- title: Create group
- subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
- name_placeholder: Awesome group name
- name_help: Group name must be at least 3 letters long and start with a letter, digit, or emoji. For more information see Reserved group names
- path_help: The path is used in URLs. It must be at least 3 letters long and can only contain letters, numbers, dashes and underscores
- submit: Create group
- cancel: Cancel
- history:
- index:
- title: History
- group_history_modal:
- close: Close
- version_number: "Version %{version_number}"
- group_history_modal_description:
- group_created: "Group was created by %{user}"
- group_deleted: "Group was deleted by %{user}"
- group_modified: "Group attributes were modified by %{user}"
- group_restored: "Group was restored by %{user}"
- group_transferred: "Group was transferred by %{user}"
+ select_formats: Select File Formats
+ selected: Selected
+ title: Sample Export
+ new_single_analysis_export_dialog:
+ single_selection: Workflow Executions (1 selected)
+ preview:
+ manifest_json: manifest.json
+ show:
+ download: Download
+ remove_button: Remove
+ remove_button_confirmation: Are you sure you would like to delete data export '%{name}'?
+ tabs:
+ preview: Preview
+ summary: Summary
+ status:
+ processing: PROCESSING
+ ready: READY
+ summary:
+ created_at: Created
+ expires_at: Expires
+ format: Format
+ id: ID
+ name: Name
+ once_ready: Available once export is ready
+ status: Status
+ type: Type
+ types:
+ analysis: ANALYSIS
+ linelist: LINELIST
+ sample: SAMPLE
+ date:
+ formats:
+ iso: YYYY-MM-DD
+ errors:
+ messages:
+ not_saved:
+ one: '1 error prohibited this %{resource} from being saved:'
+ other: "%{count} errors prohibited this %{resource} from being saved:"
+ general:
+ default_sidebar:
+ data_exports: Data Exports
+ groups: Groups
+ projects: Projects
+ title: Your work
+ workflows: Workflow Executions
+ help: Help
+ name: IRIDA Next
+ navbar:
+ account_dropdown:
+ aria_label: Account menu dropdown
+ profile: Edit profile
+ sign_out: Sign out
+ collapse:
+ aria_label: Collapse navigation menu
+ new_dropdown:
+ aria_label: New menu item
+ group: Create new group
+ project: Create new project
+ screen_reader:
+ close: Close
+ groups:
bots:
index:
- title: Bot Accounts
- subtitle: Setup bot accounts to perform actions within the group that cannot be attributed to a human user
- add_new_bot: New bot account
- bot:
- remove: Remove
- remove_confirmation: "Are you sure you want to remove this bot account from the group?"
- remove_aria_label: Remove bot account
- generate_new_token: Generate new token
+ access_level:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: New personal access token for %{bot_name}
+ add_new_bot: New bot account
+ bot:
+ generate_new_token: Generate new token
generate_new_token_aria_label: Generate a new personal access token for bot account
never: Never
+ remove: Remove
+ remove_aria_label: Remove bot account
+ remove_confirmation: Are you sure you want to remove this bot account from the group?
bot_listing:
- username: Username
- active_tokens: Active Tokens
- created: Created
- expiration: Expiration
access_level: Access Level
actions: Actions
+ active_tokens: Active Tokens
+ created: Created
empty_state:
- title: No bot accounts
description: There are no bot accounts attributed to this group
- new_bot_modal:
- title: New Bot Account
- description: Adding a bot account to associate certain actions which can't be attributed to a human user
- token_name: Token Name
- access_level: Access Level
- select_access_level: Select access level
+ title: No bot accounts
+ expiration: Expiration
+ generate_personal_access_token_modal:
+ cancel: Cancel
+ description: Generating a new personal access token for %{bot_account}
expires_at: Token Expiration Date (optional)
+ name: Token Name
submit: Submit
- cancel: Cancel
- generate_personal_access_token_modal:
title: New Personal Access Token
- description: "Generating a new personal access token for %{bot_account}"
- name: Token Name
+ new_bot_modal:
+ access_level: Access Level
+ cancel: Cancel
+ description: Adding a bot account to associate certain actions which can't be attributed to a human user
expires_at: Token Expiration Date (optional)
+ select_access_level: Select access level
submit: Submit
- cancel: Cancel
+ title: New Bot Account
+ token_name: Token Name
+ username: Username
personal_access_tokens_listing_modal:
- title: Personal access tokens
+ actions: Actions
description: Viewing a list of active personal access tokens for %{bot_account}
- available_tokens: Personal access tokens for %{bot_account}
- actions : Actions
personal_access_token:
never: Never
revoke: Revoke
- revoke_confirmation: "Are you sure you want to revoke this personal access token?"
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- access_token_section:
- label: "New personal access token for %{bot_name}"
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- success: "Bot account was successfully added to the group"
- destroy:
- success: "Bot account was successfully removed from the group"
- personal_access_tokens:
- create:
- success: Successfully generated new personal access token for bot
- revoke:
- success: "Successfully revoked personal access token %{pat_name}"
- error: "There was an error revoking personal access token %{pat_name}"
+ revoke_confirmation: Are you sure you want to revoke this personal access token?
+ title: Personal access tokens
+ subtitle: Setup bot accounts to perform actions within the group that cannot be attributed to a human user
+ title: Bot Accounts
+ create:
+ cancel: Cancel
+ name_help: Name help
+ name_placeholder: Awesome group name
+ path_help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
+ submit: Create group
+ subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
+ success: Group created successfully
+ title: Create group
destroy:
- success: "Group %{group_name} was deleted"
- error: "Could not delete %{group_name}"
+ success: Group %{group_name} was deleted
edit:
- title: Settings
- details:
- title: General
- subtitle: Group name and description
- name_placeholder: Awesome group name
- submit: Save changes
advanced:
- title: Advanced settings
- transfer:
- title: Transfer group
- submit: Transfer group
- new_namespace_id: Select a parent group
- descriptions:
- - Transfer group to another parent group.
- points:
- - Be careful. Changing a group's parent can have unintended side effects.
- - You can only transfer groups where you have sufficient permissions.
- - If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.
- confirm:
- title: Confirmation required
- warning_html: You are going to transfer %{group_name} to another namespace. Once you confirm, this action cannot be undone.
- points_html:
- - To prevent accidental actions we ask you to confirm your intention.
- - Please type %{group} to proceed or close this dialog to cancel.
delete:
- title: Delete group
+ confirm: Are you sure you want to delete this group?
description: Deleting a group is permanent and cannot be undone. All projects, subgroups, and direct members will be deleted along with the group.
submit: Delete group
- confirm: Are you sure you want to delete this group?
+ title: Delete group
path:
- label: Path
- title: Change group URL
description: Changing a group's URL can have unintended side effects.
submit: Change group URL
- show:
- create_subgroup_button: New subgroup
- create_project_button: New project
- tabs:
- label: Group project details navigation
- subgroups_and_projects: Subgroups and projects
- shared_namespaces: Shared groups and projects
- subgroups:
- no_subgroups:
- title: No subgroups
- description: Create a subgroup to manage projects and members
- shared_namespaces:
- no_shared:
- title: No shared groups or projects
- description: Groups and projects can be shared with other groups through their members page.
- new_subgroup:
- title: Create subgroup
- subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
- submit: Create subgroup
- cancel: Cancel
- update:
- success: Group %{group_name} was successfully updated
- transfer:
- success: Group transferred successfully
+ title: Change group URL
+ title: Advanced settings
+ transfer:
+ confirm:
+ points_html:
+ - To prevent accidental actions we ask you to confirm your intention.
+ - Please type %{group} to proceed or close this dialog to cancel.
+ warning_html: You are going to transfer %{group_name} to another namespace. Once you confirm, this action cannot be undone.
+ descriptions:
+ - Transfer group to another parent group.
+ new_namespace_id: Select a parent group
+ points:
+ - Be careful. Changing a group's parent can have unintended side effects.
+ - You can only transfer groups where you have sufficient permissions.
+ - If the parent group's visibility is lower than the group's current visibility, visibility levels for subgroups and projects will be changed to match the new parent group's visibility.
+ submit: Transfer group
+ title: Transfer group
+ details:
+ submit: Save changes
+ subtitle: Group name and description
+ title: General
+ title: Settings
group_links:
index:
- unlink: Unlink
- unlink_confirmation: Are you sure you want to unlink the group %{namespace_name} with group %{group_name}
aria_labels:
- group_id: Id of group to share namespace with
- group_access_level: Group Access Level
expires_at: Group access expiration
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- inherited_from: "Inherited from"
- table_header:
- group: Group
- source: Source
- access_granted: Access Granted
- access_level: Access Level
- expiration: Expiration
- action: Action
- actions:
- member_dropdown_aria_label: "Dropdown options for namespace link with group %{member}"
- unlink_aria_label: "Unlink namespace from group %{member} button"
- empty_state:
- title: No groups
- description: There are no groups that have been delegated access to this group
- create:
- success: Successfully linked group %{namespace_name} with group %{group_name}
- error: There was an error linking group with group
- destroy:
- success: Successfully unlinked group %{namespace_name} from group %{group_name}
- error: There was an error unlinking group from group
- update:
- params:
- expiration_date: expiration date
- group_access_level: group access level
- success: Successfully updated group %{namespace_name} with group %{group_name} link %{param_name}
- error: There was an error updating the namespace group link
+ group_access_level: Group Access Level
new:
- title: Share namespace
- sharing_namespace_with_group: "You're sharing group %{name} with a group"
- placeholder:
- select_access_level: Select access level
- select_group: Select group
- label:
- group_id: Group to share namespace with
- group_access_level: Maximum group access level
- access_expiration: Access expiration (optional)
button:
cancel: Cancel
submit: Share
- empty_state: No groups are associated with that name or ID
+ empty_state: Empty state
+ label:
+ access_expiration: Access expiration (optional)
+ group_access_level: Maximum group access level
+ group_id: Group to share namespace with
+ placeholder:
+ select_access_level: Select access level
+ sharing_namespace_with_group: You're sharing group %{name} with a group
+ title: Share namespace
+ history:
+ group_history_modal:
+ close: Close
+ version_number: Version %{version_number}
+ group_history_modal_description:
+ group_created: Group was created by %{user}
+ group_deleted: Group was deleted by %{user}
+ group_modified: Group attributes were modified by %{user}
+ group_restored: Group was restored by %{user}
+ group_transferred: Group was transferred by %{user}
+ index:
+ title: History
+ index:
+ create_group_button: New group
+ group_dropdown:
+ delete: Delete group
+ delete_confirmation: Are you sure you want to delete this group?
+ label: Actions for group %{group_name}
members:
access_level:
aria_label: Access Level
- create:
- error: "Error adding member"
- success: "Group member %{user} added successfully"
index:
+ actions:
+ button_add_aria_label: Add new group member link
+ link_leave_group_aria_label: Leave group button
+ link_remove_aria_label: Remove group member %{member} link
add: Add New Member
- remove: Remove
- leave_group: Leave group
invite_group: Invite Group
- remove_confirmation: Are you sure you want to remove this member from the group?
leave_confirmation: Are you sure you want to remove yourself from this group?
- title: Members
- subtitle: "These are the members that have access to %{namespace_type} %{namespace_name}"
- access_granted_by: "Access granted by %{grantor_email}"
- actions:
- button_add_aria_label: Add new group member link
- link_remove_aria_label: "Remove group member %{member} link"
- link_leave_group_aria_label: "Leave group button"
- inherited_from: "Inherited from"
+ leave_group: Leave group
+ remove: Remove
+ remove_confirmation: Are you sure you want to remove this member from the group?
search:
- placeholder: Filter by username
groups:
placeholder: Filter by group name
- shared_inherited: Shared inherited
- shared_direct: Shared direct
+ placeholder: Filter by username
+ subtitle: These are the members that have access to %{namespace_type} %{namespace_name}
tabs:
- members: Members
- groups: Groups
aria_label: Group member tabs
- update:
- success: "Group member %{user_email} updated successfully"
+ groups: Groups
+ members: Members
+ title: Members
new:
- title: Add New Member
- description: You are adding a new member to group %{name}
add_member_to_group: Add member to group
- select_user: Select a User
- empty_state: There are no users with the provided email or id
+ description: You are adding a new member to group %{name}
+ empty_state: Empty state
select_access_level: Select Access Level
- destroy:
- error: "There was an error removing the group member"
- success: "Group member %{user} successfully removed"
- leave_success: "You have successfully left the group %{name}"
+ select_user: Select a User
+ title: Add New Member
+ new_subgroup:
+ cancel: Cancel
+ submit: Create subgroup
+ subtitle: Groups allow you to manage and collaborate across multiple projects. Members of a group have access to all of its projects
+ title: Create subgroup
+ owner: Owner
samples:
index:
create_export_button:
label: Create Export
- sample_export: Sample Export
linelist_export: Linelist Export
- import_metadata_button: Import metadata
+ sample_export: Sample Export
deselect_all_button: Deselect All
+ import_metadata_button: Import metadata
+ search:
+ placeholder: Filter by ID or name
select_all_button: Select All
- title: Samples
subtitle: These are the samples in %{namespace_type} %{namespace_name}
+ title: Samples
workflows:
button_sr: Launch workflow
- search:
- placeholder: Filter by ID or name
- metadata: Metadata
table:
- sample: Sample
- project: Project
- puid: ID
- created_at: Created
- updated_at: Last Updated
- files_updated_at: Files Last Updated
- counts:
- samples: Samples
- selected: Selected
- no_samples: No Samples
no_associated_samples: There are no samples associated with this group.
- metadata:
- file_imports:
- create:
- success: Sample metadata was successfully imported.
- error: "Metadata was not successfully imported for the following samples:"
- models:
- sample:
- analysis: Analysis
- projects:
- create:
- success: "Project %{project_name} was successfully created"
- edit:
- title: Settings
- general:
- title: General
- heading: Project name and description
- submit: Update project
- advanced:
- title: Advanced settings
- destroy:
- title: Delete project
- description: Deleting a project is permanent and cannot be undone. All samples and direct members will be deleted along with the project.
- submit: Delete project
- confirm: Are you sure you want to delete this project?
- path:
- label: Path
- title: Change project URL
- submit: Change project URL
- description: Changing a project's URL can have unintended side effects.
- help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
- transfer:
- title: Transfer project
- submit: Transfer project
- new_namespace_id: Select a new namespace
- descriptions:
- - Transfer your project into another namespace.
- - When you transfer your project to a group, you can easily manage multiple projects and users.
- - "Things to be aware of before transferring your project:"
- points:
- - Be careful! Changing a project's namespace can have unintended side effects.
- - You can only transfer projects to groups where you have sufficient permissions.
- - Project visibility level will change to match namespace rules when transferring to a group.
- confirm:
- title: Confirmation required
- warning_html: You are going to transfer %{project_name} to another namespace. Once you confirm, this action cannot be undone.
- points_html:
- - To prevent accidental actions we ask you to confirm your intention.
- - Please type %{project} to proceed or close this dialog to cancel
- history:
+ no_samples: No Samples
+ show:
+ create_project_button: New project
+ create_subgroup_button: New subgroup
+ shared_namespaces:
+ no_shared:
+ description: Groups and projects can be shared with other groups through their members page.
+ title: No shared groups or projects
+ subgroups:
+ no_subgroups:
+ description: Create a subgroup to manage projects and members
+ title: No subgroups
+ tabs:
+ label: Group project details navigation
+ shared_namespaces: Shared groups and projects
+ subgroups_and_projects: Subgroups and projects
+ title: Title
+ sidebar:
+ bot_accounts: Bot Accounts
+ details: Details
+ general: General
+ history: History
+ members: Members
+ samples: Samples
+ settings: Settings
+ table_component:
+ action: Action
+ expires_at: Expiration
+ group_access_level: Access Level
+ group_name: Group
+ namespace_name: Source
+ updated_at: Access Granted
+ transfer:
+ success: Group transferred successfully
+ update:
+ success: Group %{group_name} was successfully updated
+ layouts:
+ application:
+ site_title: IRIDA Next
+ mailers:
+ data_export_mailer:
+ email_subject: Exportation Prêt - %{name}
+ export_ready:
+ download_before_html: Please download the export before %{date} as it will be deleted after this time.
+ ready_for_download_html: Your export %{name} is ready for download.
+ view_exports: 'To view and download the export, click the button below:'
+ email_template:
+ automated_message: This email was sent from an automated system. Please do not reply to this email.
+ copy_paste: 'Or copy and paste this link into your browser:'
+ greeting: Bonjour,
+ greeting_with_name: Bonjour %{name},
+ thanks: Merci,
+ group_link_mailer:
+ access_granted_manager_email:
+ body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ view_details: 'To view all the members of %{namespace_type} ''%{namespace_name}'', click the button below:'
+ access_granted_user_email:
+ body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
+ view_details: 'To view %{namespace_type} ''%{namespace_name}'', click the button below:'
+ access_revoked_manager_email:
+ body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ access_revoked_user_email:
+ body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
+ member_mailer:
+ access_granted_manager_email:
+ body_html: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
+ subject: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
+ view_details: 'To view all the members of %{type} ''%{name}'', click the button below:'
+ access_granted_user_email:
+ body_html: You have been granted access to %{type} '%{name}'
+ subject: You have been granted access to %{type} '%{name}'
+ view_details: 'To view %{type} ''%{name}'', click the button below:'
+ access_revoked_manager_email:
+ body_html: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
+ subject: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
+ view_details: 'To view all the members of %{type} ''%{name}'', click the button below:'
+ access_revoked_user_email:
+ body_html: Your access to %{type} '%{name}' has been revoked
+ subject: Your access to %{type} '%{name}' has been revoked
+ pipeline_mailer:
+ complete_manager_email:
+ body_html: Pipeline %{id} has completed successfully.
+ subject: Pipeline Completed - %{id}
+ complete_user_email:
+ body_html: Your pipeline %{id} has completed successfully.
+ subject: Pipeline Completed - %{id}
+ error_manager_email:
+ body_html: Pipeline %{id} did not complete successfully due to errors.
+ subject: Pipeline Errored - %{id}
+ error_user_email:
+ body_html: Your pipeline %{id} did not complete successfully due to errors.
+ subject: Pipeline Errored - %{id}
+ view_details: 'To view the pipeline summary, click the button below:'
+ members:
+ access_levels:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ table_component:
+ access_level: Access Level
+ action: Action
+ aria_labels:
+ expires_at: Member expiration
+ created_at: Access Granted
+ expires_at: Expiration
+ group_access_level: Access Level
+ group_name: Group
+ inherited_from: Inherited from
+ namespace_name: Source
+ updated_at: Access Granted
+ user_email: Username
+ models:
+ sample:
+ analysis: Analysis
+ namespace_tree:
+ row:
+ row_contents_component:
+ stats:
+ projects: Projects
+ subnamespaces: Subnamespaces
+ nextflow:
+ samplesheet:
+ column_component:
+ default: Default
+ required: Required
+ samplesheet_component:
+ label: Label
+ loading: Loading
+ nextflow_component:
+ name:
+ helper: Helper
+ label: Label
+ profiles:
+ accounts:
+ delete:
+ button: Delete account
+ confirm: Are you sure you want to delete your account?
+ description: Deleting your account has the following effects
+ effects:
+ - All projects and groups you own will be deleted
+ - All projects and groups you are a member of will be left intact
+ passwords:
+ update:
+ forgot: Forgot your password?
+ hint: You must provide your current password to update it
+ submit: Save password
+ subtitle: Update your account password
+ success: Password updated successfully
+ title: Password
+ personal_access_tokens:
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: Your new personal access token
+ create:
+ submit: Create personal access token
+ subtitle: Enter the name of your application, and we'll return a unique personal access token.
+ title: Add a personal access token
index:
- title: History
- subtitle: These are the changes that have been made to the project
- latest: Latest
- created_by: "Project created by %{user}"
- modified_by: "Project modified by %{user}"
- project_history_modal:
- close: Close
- version_number: "Version %{version_number}"
- project_history_modal_description:
- project_created: "Project was created by %{user}"
- project_deleted: "Project was deleted by %{user}"
- project_modified: "Project attributes were modified by %{user}"
- project_restored: "Project was restored by %{user}"
- project_transferred: "Project was transferred by %{user}"
+ action: Action
+ active_personal_access_tokens: Active Personal Access Tokens (%{count})
+ expires_at: Expires
+ subtitle: You can generate a personal access token for each application you use that needs access to the IRIDA Next API.
+ title: Personal Access Tokens
+ personal_access_token:
+ never: Never
+ revoke_button: Revoke
+ revoke_confirm: Are you sure you want to revoke this personal access token? This action cannot be undone.
+ preferences:
+ locale_form:
+ en: Anglais
+ fr: Français
+ show:
+ dark_theme: Dark
+ light_theme: Light
+ locale_title: Langue
+ preferences: Preferences
+ system_desc: The colour theme will update based on your operating system settings.
+ system_theme: System
+ theme_title: Colour theme
+ update:
+ success: Langue mise à jour avec succès
+ show:
+ email:
+ submit: Update profile settings
+ email_address: Email Address
+ first_name: First Name
+ last_name: Last Name
+ missing: This field has not been provided by the Authentication Provider.
+ sidebar:
+ access_tokens: Access Tokens
+ account: Account
+ header: User Settings
+ password: Password
+ preferences: Preferences
+ profile: Profile
+ update:
+ success: Profile updated successfully
+ projects:
automated_workflow_executions:
- index:
- title: Automated Workflow Executions
- subtitle: Setup automated workflow executions to launch when pair end data is uploaded to the project
- add_new_automated_workflow_execution: New automated workflow execution
actions:
delete_button: Delete
delete_confirm: Are you sure that you want to delete this automated workflow execution?
edit_button: Edit
- table:
- empty:
- title: No automated workflow executions
- description: No automated workflow executions have been configured for this project
create:
- error: "Could not create an automated workflow execution for %{workflow_name}"
- success: "Automated workflow execution for %{workflow_name} was successfully created"
+ error: Could not create an automated workflow execution for %{workflow_name}
+ success: Automated workflow execution for %{workflow_name} was successfully created
destroy:
- error: "Could not delete automated workflow execution for %{workflow_name}"
- success: "Automated workflow execution for %{workflow_name} was successfully deleted"
- pipeline_selection_modal:
- title: Workflow Selection
+ error: Could not delete automated workflow execution for %{workflow_name}
+ success: Automated workflow execution for %{workflow_name} was successfully deleted
+ edit_dialog:
+ title: 'Editing Automated Workflow Execution: %{workflow_name}'
+ index:
+ add_new_automated_workflow_execution: New automated workflow execution
+ subtitle: Setup automated workflow executions to launch when pair end data is uploaded to the project
+ title: Automated Workflow Executions
new_automated_workflow_execution_modal:
title: "%{workflow} parameters"
- edit_dialog:
- title: "Editing Automated Workflow Execution: %{workflow_name}"
+ pipeline_selection_modal:
+ title: Workflow Selection
+ table:
+ empty:
+ description: No automated workflow executions have been configured for this project
+ title: No automated workflow executions
+ headers:
+ actions: Actions
+ created_at: Created
+ id: ID
+ name: Name
+ updated_at: Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
bots:
index:
- title: Bot Accounts
- subtitle: Setup bot accounts to perform actions within the project that cannot be attributed to a human user
+ access_level:
+ level_0: No Access
+ level_10: Guest
+ level_20: Uploader
+ level_30: Analyst
+ level_40: Maintainer
+ level_50: Owner
+ access_token_section:
+ aria_label: Personal access token, copy to clipboard
+ description: Make sure you save it - you won't be able to access it again.
+ label: New personal access token for %{bot_name}
add_new_bot: New bot account
bot:
- remove: Remove
- remove_confirmation: "Are you sure you want to remove this bot account from the project?"
- remove_aria_label: Remove bot account
generate_new_token: Generate new token
generate_new_token_aria_label: Generate a new personal access token for bot account
never: Never
+ remove: Remove
+ remove_aria_label: Remove bot account
+ remove_confirmation: Are you sure you want to remove this bot account from the project?
bot_listing:
- username: Username
- active_tokens: Active Tokens
- created: Created
- expiration: Expiration
access_level: Access Level
actions: Actions
+ active_tokens: Active Tokens
+ created: Created
empty_state:
- title: No bot accounts
description: There are no bot accounts attributed to this project
- new_bot_modal:
- title: New Bot Account
- description: Adding a bot account to associate certain actions which can't be attributed to a human user
- token_name: Token Name
- access_level: Access Level
- select_access_level: Select access level
+ title: No bot accounts
+ expiration: Expiration
+ generate_personal_access_token_modal:
+ cancel: Cancel
+ description: Generating a new personal access token for %{bot_account}
expires_at: Token Expiration Date (optional)
+ name: Token Name
submit: Submit
- cancel: Cancel
- generate_personal_access_token_modal:
title: New Personal Access Token
- description: "Generating a new personal access token for %{bot_account}"
- name: Token Name
+ new_bot_modal:
+ access_level: Access Level
+ cancel: Cancel
+ description: Adding a bot account to associate certain actions which can't be attributed to a human user
expires_at: Token Expiration Date (optional)
+ select_access_level: Select access level
submit: Submit
- cancel: Cancel
+ title: New Bot Account
+ token_name: Token Name
+ username: Username
personal_access_tokens_listing_modal:
- title: Personal access tokens
+ actions: Actions
description: Viewing a list of active personal access tokens for %{bot_account}
- available_tokens: Personal access tokens for %{bot_account}
- actions : Actions
personal_access_token:
never: Never
revoke: Revoke
- revoke_confirmation: "Are you sure you want to revoke this personal access token?"
- access_level:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
- access_token_section:
- label: "New personal access token for %{bot_name}"
- description: Make sure you save it - you won't be able to access it again.
- aria_label: Personal access token, copy to clipboard
- create:
- success: "Bot account was successfully added to the project"
- destroy:
- success: "Bot account was successfully removed from the project"
- personal_access_tokens:
- create:
- success: Successfully generated new personal access token for bot
- revoke:
- success: "Successfully revoked personal access token %{pat_name}"
- error: "There was an error revoking personal access token %{pat_name}"
- new:
- title: Create project
- placeholder: Awesome project name
- description: Project description, not required
- subtitle: Projects are where you can store and analyze your data
- help: The path is used in URLs and must be at least 3 characters and can only contain letters, numbers, dashes and underscores
- submit: Create project
- cancel: Cancel
- name: Name
- sidebar:
- details: Details
- history: History
- members: Members
- samples: Samples
- workflow_executions: Workflow Executions
- settings: Settings
- general: General
- bot_accounts: Bot Accounts
- automated_workflow_executions: Automated Workflow Executions
- update:
- success: "Project %{project_name} was successfully updated"
- transfer:
- success: "Project %{project_name} was successfully transferred"
+ revoke_confirmation: Are you sure you want to revoke this personal access token?
+ title: Personal access tokens
+ subtitle: Setup bot accounts to perform actions within the project that cannot be attributed to a human user
+ title: Bot Accounts
+ create:
+ success: Project %{project_name} was successfully created
destroy:
- success: "Project %{project_name} was successfully deleted"
+ success: Project %{project_name} was successfully deleted
+ edit:
+ advanced:
+ destroy:
+ confirm: Are you sure you want to delete this project?
+ description: Deleting a project is permanent and cannot be undone. All samples and direct members will be deleted along with the project.
+ submit: Delete project
+ title: Delete project
+ path:
+ description: Changing a project's URL can have unintended side effects.
+ help: The path is used in URLs and can only contain letters, numbers, dashes and underscores
+ submit: Change project URL
+ title: Change project URL
+ title: Advanced settings
+ transfer:
+ confirm:
+ points_html:
+ - To prevent accidental actions we ask you to confirm your intention.
+ - Please type %{project} to proceed or close this dialog to cancel
+ warning_html: You are going to transfer %{project_name} to another namespace. Once you confirm, this action cannot be undone.
+ descriptions:
+ - Transfer your project into another namespace.
+ - When you transfer your project to a group, you can easily manage multiple projects and users.
+ - 'Things to be aware of before transferring your project:'
+ new_namespace_id: Select a new namespace
+ points:
+ - Be careful! Changing a project's namespace can have unintended side effects.
+ - You can only transfer projects to groups where you have sufficient permissions.
+ - Project visibility level will change to match namespace rules when transferring to a group.
+ submit: Transfer project
+ title: Transfer project
+ general:
+ heading: Project name and description
+ submit: Update project
+ title: General
+ title: Settings
group_links:
index:
- unlink: Unlink
- unlink_confirmation: Are you sure you want to unlink the project %{namespace_name} with group %{group_name}
- aria_labels:
- group_id: Id of group to share namespace with
- group_access_level: Group Access Level
- expires_at: Group access expiration
access_level:
level_0: No Access
level_10: Guest
@@ -1000,62 +992,48 @@ fr:
level_30: Analyst
level_40: Maintainer
level_50: Owner
- inherited_from: "Inherited from"
- table_header:
- group: Group
- source: Source
- access_granted: Access Granted
- access_level: Access Level
- expiration: Expiration
- action: Action
actions:
- member_dropdown_aria_label: "Dropdown options for namespace link with group %{member}"
- unlink_aria_label: "Unlink namespace from group %{member} button"
+ unlink_aria_label: Unlink namespace from group %{member} button
+ aria_labels:
+ expires_at: Group access expiration
+ group_access_level: Group Access Level
empty_state:
- title: No groups
description: There are no groups that have been delegated access to this project
- create:
- success: Successfully linked project %{namespace_name} with group %{group_name}
- error: There was an error linking project with group
- destroy:
- success: Successfully unlinked project %{namespace_name} with group %{group_name}
- error: There was an error unlinking project from group
- update:
- params:
- expiration_date: expiration date
- group_access_level: group access level
- success: Successfully updated project %{namespace_name} with group %{group_name} link %{param_name}
- error: There was an error updating the namespace group link
+ title: No groups
+ inherited_from: Inherited from
+ unlink: Unlink
+ unlink_confirmation: Are you sure you want to unlink the project %{namespace_name} with group %{group_name}
new:
- title: Share namespace
- sharing_namespace_with_group: "You're sharing group %{name} with a group"
- placeholder:
- select_access_level: Select access level
- select_group: Select group
- label:
- shared_group: Group to share namespace with
- group_access_level: Maximum group access level
- access_expiration: Access expiration (optional)
- empty_state: No groups are associated with that name or ID
button:
cancel: Cancel
submit: Share
+ empty_state: Empty state
+ label:
+ access_expiration: Access expiration (optional)
+ group_access_level: Maximum group access level
+ shared_group: Group to share namespace with
+ placeholder:
+ select_access_level: Select access level
+ select_group: Select group
+ sharing_namespace_with_group: You're sharing group %{name} with a group
+ title: Share namespace
+ history:
+ index:
+ subtitle: These are the changes that have been made to the project
+ title: History
+ project_history_modal:
+ close: Close
+ version_number: Version %{version_number}
+ project_history_modal_description:
+ project_created: Project was created by %{user}
+ project_deleted: Project was deleted by %{user}
+ project_modified: Project attributes were modified by %{user}
+ project_restored: Project was restored by %{user}
+ project_transferred: Project was transferred by %{user}
members:
access_level:
aria_label: Access Level
- create:
- error: "Error adding member"
- success: "Project member %{user} added successfully"
index:
- add: Add New Member
- remove: Remove
- leave_project: Leave project
- invite_group: Invite group
- remove_confirmation: Are you sure you want to remove this member from the project?
- leave_confirmation: Are you sure you want to remove yourself from the project?
- title: Members
- subtitle: "These are the members that have access to %{namespace_type} %{namespace_name}"
- access_granted_by: "Access granted by %{grantor_email}"
access_level:
level_0: No Access
level_10: Guest
@@ -1065,690 +1043,411 @@ fr:
level_50: Owner
actions:
button_add_aria_label: Add new project member button
- link_remove_aria_label: "Remove project member %{member} link"
- link_leave_project_aria_label: "Leave project link"
+ link_leave_project_aria_label: Leave project link
+ link_remove_aria_label: Remove project member %{member} link
+ add: Add New Member
+ invite_group: Invite group
+ leave_confirmation: Are you sure you want to remove yourself from the project?
+ leave_project: Leave project
+ remove: Remove
+ remove_confirmation: Are you sure you want to remove this member from the project?
search:
- placeholder: Filter by username
groups:
placeholder: Filter by group name
- shared_inherited: Shared inherited
- shared_direct: Shared direct
- table_header:
- username: Username
- access_level: Access Level
- source: Source
- access_granted: Access Granted
- expiration: Expiration
- action: Action
+ placeholder: Filter by username
+ subtitle: These are the members that have access to %{namespace_type} %{namespace_name}
tabs:
- members: Members
- groups: Groups
aria_label: Project members tabs
- update:
- success: "Project member %{user_email} updated successfully"
+ groups: Groups
+ members: Members
+ title: Members
new:
- title: Add New Member
add_member_to_project: Add member to project
description: You are adding a new member to project %{name}
- select_user: Select a User
+ empty_state: Empty state
select_access_level: Select Access Level
- empty_state: There are no users with the provided email or id
- destroy:
- error: "There was an error removing the project member"
- success: "Project member %{user} successfully removed"
- leave_success: "You have successfully left the project %{name}"
+ select_user: Select a User
+ title: Add New Member
+ new:
+ description: Project description, not required
+ help: The path is used in URLs and must be at least 3 characters and can only contain letters, numbers, dashes and underscores
+ placeholder: Awesome project name
+ submit: Create project
+ subtitle: Projects are where you can store and analyze your data
+ title: Create project
samples:
- show:
- add_metadata: Add Metadata
- new_attachment_button: Upload Files
- concatenate_button: Concatenate Files
- delete_files_button: Delete Files
- delete_metadata_button: Delete Metadata
- edit_button: Edit this sample
- remove_button: Remove
- remove_button_confirmation: Are you sure you want to remove this sample from the project?
- error: The sample does not exist within the project.
- files: Files
- files_ignored: "fasta and fastq files must be compressed. The following file(s) cannot be uploaded:"
- metadata:
- actions:
- dropdown:
- update: Update
- delete: Delete
- delete_confirm: Are you sure you want to remove metadata field '%{deleted_key}' from the sample?
- metadata_dropdown_aria_label: Dropdown options for metadata field %{key}
- analysis: Analysis
- update:
- update: Update
- update_metadata: Update Metadata
- key: Key
- value: Value
- no_files: No Files
- no_associated_files: There are no files associated with this sample.
- no_metadata: No Metadata
- no_associated_metadata: This sample has no metadata.
- upload: Upload
- upload_files: Upload Files
- uploading: Uploading
- table_header:
- puid: ID
- filename: Filename
- format: Format
- type: Type
- size: Size
- created_at: Uploaded
- action: Action
- key: Key
- value: Value
- source: Source
- last_updated: Last Updated
- tabs:
- files: Files
- metadata: Metadata
- history: History
- history:
+ attachments:
+ attachment:
+ delete: Delete
+ concatenations:
+ create:
+ basename_help: The basename can only contain letters, numbers, hyphens, periods, and underscores
+ success: Files were successfully concatenated.
+ modal:
+ basename: Filename
+ description: 'The following files were selected to be concatenated:'
+ submit_button: Concatenate
+ title: Concatenate Files
+ create:
+ failure: 'File %{filename} was not uploaded due to the following errors: %{errors}'
+ success: File %{filename} was successfully uploaded.
+ delete_attachment_modal:
+ description: Are you sure that you want to delete this file rom the sample?
+ submit_button: Confirm
+ title: Delete File
+ deletions:
+ destroy:
+ error: 'File %{filename} was not removed due to the following errors: %{errors}'
+ partial_success: Some files were successfully deleted.
+ success: Files were successfully deleted.
modal:
- created_by: "Sample created by %{user}"
- deleted_by: "Sample deleted by %{user}"
- modified_by: "Sample attributes modified by %{user}"
- restored_by: "Sample restored by %{user}"
- transferred_by: "Sample transferred by %{user}"
- version: "Version %{version}"
- close: Close
+ description: 'The following files were selected for deletion:'
+ submit_button: Delete
+ title: Delete Files
+ destroy:
+ error: 'File %{filename} was not removed due to the following errors: %{errors}'
+ success: File %{filename} was successfully removed.
+ clones:
+ create:
+ error: 'The following list of samples failed to clone:'
+ no_samples_cloned_error: 'Samples were not cloned for the following reasons:'
+ success: Samples were successfully cloned.
+ dialog:
+ description:
+ plural: The following COUNT_PLACEHOLDER samples are about to be cloned to another project.
+ singular: The following sample is about to be cloned to another project.
+ zero: No samples have been selected for cloning
+ empty_state: Empty state
+ new_project_id: Project to clone samples to
+ no_available_projects: No available projects
+ samples: Samples
+ select_project: Select project
+ spinner_message: Cloning samples, this might take a while...
+ submit_button: Submit
+ title: Clone Samples
create:
success: Sample was successfully created.
- new:
- title: Create sample
- subtitle: This is a subtitle to create a new project sample.
- submit_button: Create sample
+ deletions:
+ destroy:
+ success: Sample %{sample_name} was successfully removed from project %{project_name}.
+ destroy_multiple:
+ no_deleted_samples: Selected samples could not be deleted
+ partial_error: "%{not_deleted} samples could not be deleted"
+ partial_success: "%{deleted} samples were successfully deleted"
+ success: Samples were successfully deleted
+ new_deletion_dialog:
+ description: Are you sure you want to delete sample '%{sample_name}'?
+ submit_button: Remove
+ title: Delete Sample
+ new_multiple_deletions_dialog:
+ description:
+ plural: 'The following COUNT_PLACEHOLDER samples have been selected for deletion:'
+ singular: 'The following sample has been selected for deletion:'
+ zero: No samples have been selected for deletion
+ loading: Loading...
+ samples: Samples
+ spinner: Deleting samples. This may take a while...
+ submit_button: Confirm
+ title: Delete Samples
+ edit:
cancel_button: Cancel
+ form:
+ title: Name and Description
+ submit_button: Update sample
+ title: Edit sample
index:
- title: Samples
- subtitle: This is a subtitle to list project samples.
- workflows:
- button_sr: Launch workflow
- new_button: New sample
- edit_button: Edit
- remove_button: Remove
- remove_button_confirmation: Are you sure you want to remove this sample from the project?
- transfer_button: Transfer samples
- import_metadata_button: Import metadata
- clone_button: Clone samples
- create_export_button: Create Export
- delete_samples_button: Delete Samples
actions:
button_add_aria_label: Add new sample button
- dropdown_aria_label: Dropdown options for sample %{sample_name}
- dropdown:
- remove: Remove sample
+ clone_button: Clone samples
+ create_export_button:
+ label: Create Export
+ linelist_export: Linelist Export
+ sample_export: Sample Export
+ delete_samples_button: Delete Samples
+ deselect_all_button: Deselect All
+ edit_button: Edit
+ import_metadata_button: Import metadata
+ new_button: New sample
+ no_associated_samples: There are no samples associated with this project.
+ no_samples: No Samples
+ remove_button: Remove
search:
placeholder: Filter by ID or name
- no_samples: No Samples
- no_associated_samples: There are no samples associated with this project.
- deselect_all_button: Deselect All
select_all_button: Select All
- update:
- success: Sample was successfully updated.
- edit:
- title: Edit sample
- subtitle: This is a subtitle to edit a project sample.
- form:
- title: Name and Description
- submit_button: Update sample
- cancel_button: Cancel
- shared:
- errors:
- ok_button: OK
- metadata_toggle:
- label: Metadata
- transfers:
- dialog:
- title: Transfer Samples
- description:
- zero: No samples have been selected for transfer
- singular: The following sample is about to be transferred, which will result in the sample no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
- plural: The following COUNT_PLACEHOLDER samples are about to be transferred, which will result in these samples no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
- samples: Samples
- empty_state: No projects are associated with that name or ID
- new_project_id: Project to transfer samples to
- no_available_projects: You do not have access to any destination projects to transfer samples
- select_project: Select Project
- submit_button: Submit
- spinner_message: Transferring samples, this might take a while...
- create:
- success: Samples were successfully transferred.
- error: "The following list of samples failed to transfer:"
- no_samples_transferred_error: "Samples were not transferred for the following reasons:"
- clones:
- create:
- success: Samples were successfully cloned.
- error: "The following list of samples failed to clone:"
- no_samples_cloned_error: "Samples were not cloned for the following reasons:"
- dialog:
- title: Clone Samples
- description:
- zero: No samples have been selected for cloning
- singular: The following sample is about to be cloned to another project.
- plural: The following COUNT_PLACEHOLDER samples are about to be cloned to another project.
- samples: Samples
- empty_state: No projects are associated with that name or ID
- new_project_id: Project to clone samples to
- no_available_projects: You do not have access to any destination projects to clone samples
- select_project: Select Project
- submit_button: Submit
- spinner_message: Cloning samples, this might take a while...
+ title: Samples
+ transfer_button: Transfer samples
+ workflows:
+ button_sr: Launch workflow
metadata:
deletions:
destroy:
- single_success: Metadata key '%{deleted_key}' was successfully deleted.
multi_success: Metadata keys '%{deleted_keys}' were successfully deleted.
+ single_success: Metadata key '%{deleted_key}' was successfully deleted.
modal:
- description: "Metadata fields selected for deletion:"
+ description: 'Metadata fields selected for deletion:'
key_header: Key
submit_button: Delete
title: Delete Metadata
value_header: Value
destroy:
+ error: Error
success: Metadata key '%{deleted_key}' was successfully deleted.
- edit:
- edit: Edit
fields:
create:
- single_success: Metadata key '%{key}' was successfully added.
+ multi_keys_exists: Metadata keys '%{keys}' already exist.
multi_success: Metadata keys '%{keys}' were successfully added.
single_key_exists: Metadata key '%{key}' already exist.
- multi_keys_exists: Metadata keys '%{keys}' already exist.
+ single_success: Metadata key '%{key}' was successfully added.
update:
- success: "Metadata was successfully updated"
- update:
- success: "Metadata was successfully updated"
- file_imports:
- create:
- success: Sample metadata was successfully imported.
- error: "Metadata was not successfully imported for the following samples:"
+ success: Metadata was successfully updated
form:
create_field_button: Add another metadata field
- field: Field
key: Key
remove_field: Remove Field
submit_button: Add
value: Value
- attachments:
- concatenations:
- create:
- success: Files were successfully concatenated.
- basename_help: The basename can only contain letters, numbers, hyphens, periods, and underscores
- modal:
- title: Concatenate Files
- description: "The following files were selected to be concatenated:"
- basename: Filename
- delete_originals: Delete Originals
- submit_button: Concatenate
- deletions:
- modal:
- title: Delete Files
- description: "The following files were selected for deletion:"
- submit_button: Delete
- destroy:
- success: Files were successfully deleted.
- partial_success: Some files were successfully deleted.
- error: "File %{filename} was not removed due to the following errors: %{errors}"
- attachment:
- delete: Delete
- create:
- success: File %{filename} was successfully uploaded.
- failure: "File %{filename} was not uploaded due to the following errors: %{errors}"
- destroy:
- success: File %{filename} was successfully removed.
- error: "File %{filename} was not removed due to the following errors: %{errors}"
- error: File %{filename} was not removed.
- delete_attachment_modal:
- description: Are you sure that you want to delete this file rom the sample?
- submit_button: Confirm
- title: Delete File
- table:
- description: The project samples table contains all samples related to this project
- sample: Sample
- puid: ID
- created_at: Created
- updated_at: Last Updated
- files_updated_at: Files Last Updated
- action: Action
- counts:
- samples: Samples
- selected: Selected
- tagged_filter:
- title: Filter by sample names or Id
- clear: Remove all tags
- description: 'Paste a list of , seperated sample names or identifiers'
- apply: Apply filter
- remove_tag: Remove
- deletions:
- new_deletion_dialog:
- title: Delete Sample
- description: Are you sure you want to delete sample '%{sample_name}'?
- submit_button: Remove
- new_multiple_deletions_dialog:
- description:
- zero: No samples have been selected for deletion
- singular: "The following sample has been selected for deletion:"
- plural: "The following COUNT_PLACEHOLDER samples have been selected for deletion:"
- id: ID
- loading: Loading...
- name: Name
- samples: Samples
- spinner: Deleting samples. This may take a while...
- submit_button: Confirm
- title: Delete Samples
- destroy_multiple:
- no_deleted_samples: Selected samples could not be deleted
- partial_error: "%{not_deleted} samples could not be deleted"
- partial_success: "%{deleted} samples were successfully deleted"
- success: Samples were successfully deleted
- destroy:
- success: Sample %{sample_name} was successfully removed from project %{project_name}.
- error: The sample does not exist within the project.
- workflow_executions:
- cancel:
- error: "Could not cancel workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully canceled"
- destroy:
- error: "Could not delete workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully deleted"
- index:
- actions:
- cancel_button: Cancel
- cancel_confirm: Are you sure you want to cancel this workflow execution?
- delete_button: Delete
- delete_confirm: Are you sure you want to delete this workflow execution?
- create_export_button: Create Export
- deselect_all_button: Deselect All
- select_all_button: Select All
- subtitle: These are the automated workflow executions that have been launched for this project
- title: Workflow Executions
- table:
- empty:
- title: No automated workflow executions.
- description: There are no automated workflow executions associated with this project.
+ new:
+ cancel_button: Cancel
+ submit_button: Create sample
+ subtitle: This is a subtitle to create a new project sample.
+ title: Create sample
+ shared:
+ errors:
+ ok_button: OK
+ metadata_toggle:
+ label: Metadata
show:
- create_export_button: Create Export
+ add_metadata: Add Metadata
+ concatenate_button: Concatenate Files
+ delete_files_button: Delete Files
+ delete_metadata_button: Delete Metadata
+ edit_button: Edit this sample
+ files: Files
+ files_ignored: 'fasta and fastq files must be compressed. The following file(s) cannot be uploaded:'
+ history:
+ modal:
+ created_by: Sample created by %{user}
+ deleted_by: Sample deleted by %{user}
+ modified_by: Sample attributes modified by %{user}
+ restored_by: Sample restored by %{user}
+ transferred_by: Sample transferred by %{user}
+ version: Version %{version}
+ metadata:
+ actions:
+ delete_confirm: Are you sure you want to remove metadata field '%{deleted_key}' from the sample?
+ dropdown:
+ delete: Delete
+ update: Update
+ update:
+ key: Key
+ update: Update
+ update_metadata: Update Metadata
+ value: Value
+ new_attachment_button: Upload Files
+ no_associated_files: There are no files associated with this sample.
+ no_associated_metadata: This sample has no metadata.
+ no_files: No Files
+ no_metadata: No Metadata
remove_button: Remove
- remove_button_confirmation: Are you sure that you want to remove this workflow execution?
- cancel_button: Cancel
- cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ remove_button_confirmation: Are you sure you want to remove this sample from the project?
+ table_header:
+ action: Action
+ created_at: Uploaded
+ filename: Filename
+ format: Format
+ key: Key
+ last_updated: Last Updated
+ puid: ID
+ size: Size
+ source: Source
+ type: Type
+ value: Value
tabs:
- summary: Summary
- params: Parameters
files: Files
- params:
- empty: This pipeline has no parameters.
- summary:
- run_id: Run ID
- name: Name
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
+ history: History
+ metadata: Metadata
+ upload: Upload
+ upload_files: Upload Files
+ uploading: Uploading
+ transfers:
+ create:
+ error: 'The following list of samples failed to transfer:'
+ no_samples_transferred_error: 'Samples were not transferred for the following reasons:'
+ success: Samples were successfully transferred.
+ dialog:
+ description:
+ plural: The following COUNT_PLACEHOLDER samples are about to be transferred, which will result in these samples no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
+ singular: The following sample is about to be transferred, which will result in the sample no longer being accessible in this project. Maintainers can only transfer samples to another project within the same hierarchy.
+ zero: No samples have been selected for transfer
+ empty_state: Empty state
+ new_project_id: Project to transfer samples to
+ no_available_projects: No available projects
+ samples: Samples
+ select_project: Select project
+ spinner_message: Transferring samples, this might take a while...
+ submit_button: Submit
+ title: Transfer Samples
+ update:
+ success: Sample was successfully updated.
+ sidebar:
+ automated_workflow_executions: Automated Workflow Executions
+ bot_accounts: Bot Accounts
+ details: Details
+ general: General
+ history: History
+ members: Members
+ samples: Samples
+ settings: Settings
+ workflow_executions: Workflow Executions
+ transfer:
+ success: Success
+ update:
+ success: Project %{project_name} was successfully updated
+ workflow_executions:
files:
table_header:
- puid: ID
+ created_at: Created At
filename: Filename
format: Format
- type: Type
+ puid: ID
size: Size
- created_at: Created At
- state:
- initial: New
- prepared: Prepared
- submitted: Submitted
- running: Running
- completing: Completing
- completed: Completed
- error: Error
- canceling: Canceling
- canceled: Canceled
- workflow_executions:
- index:
- create_export_button: Create Export
- deselect_all_button: Deselect All
- select_all_button: Select All
- title: Workflow Executions
- actions:
+ type: Type
+ index:
+ create_export_button: Create export button
+ deselect_all_button: Deselect all button
+ select_all_button: Select all button
+ subtitle: These are the automated workflow executions that have been launched for this project
+ title: Workflow Executions
+ show:
cancel_button: Cancel
- cancel_confirm: Are you sure you want to cancel this workflow execution?
- delete_button: Delete
- delete_confirm: Are you sure you want to delete this workflow execution?
- table:
- empty:
- title: No workflow executions.
- description: There are no workflow executions associated with this submitter.
- headers:
- id: ID
- run_id: Run ID
- name: Name
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- state: State
- created_at: Created
- updated_at: Last Updated
- actions: Actions
- show:
- create_export_button: Create Export
- remove_button: Remove
- remove_button_confirmation: Are you sure that you want to remove this workflow execution?
- cancel_button: Cancel
- cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
- tabs:
- summary: Summary
- params: Parameters
- samplesheet: Samplesheet
- files: Files
- params:
- empty: This pipeline has no parameters.
- summary:
- run_id: Run ID
- name: Name
- workflow_name: Workflow Name
- workflow_version: Workflow Version
- created_at: Created
- updated_at: Last Updated
- samples:
- empty: No samples could be found for this workflow execution
- files:
- table_header:
- puid: ID
- filename: Filename
- format: Format
- type: Type
- size: Size
- created_at: Created At
- cancel:
- error: "Could not cancel workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully canceled"
- destroy:
- error: "Could not delete workflow %{workflow_name}"
- success: "Workflow %{workflow_name} was successfully deleted"
- submissions:
- pipeline_selection:
- title: Workflow Selection
- loading: Preparing workflow arguments for COUNT_PLACEHOLDER samples, this may take a bit of time.
- create:
- title: "%{workflow} parameters"
- submit: Submit
- update: Update
- state:
- initial: New
- prepared: Prepared
- submitted: Submitted
- running: Running
- completing: Completing
- completed: Completed
- error: Error
- canceling: Canceling
- canceled: Canceled
- services:
- attachments:
- concatenation:
- filename_missing: Base file name not provided. Please provide a base name for the concatenated file.
- incorrect_file_pairs: Incorrect file pairing. Forward and reverse read file counts do not match.
- incorrect_file_types: "Files are not of the same type. Paired-end files can only be concatenated with other paired-end files, and single-end files can only be concatenated with other single-end files."
- incorrect_attachable: All or some of then selected files do not belong to the sample.
- incorrect_fastq_file_types: "Incorrect file types. '.fastq' files can only be concatenated with other '.fastq' files. '.fastq.gz' files can only be concatenated with other '.fastq.gz' files"
- no_files_selected: No files were selected to concatenate. Please select files then try again.
- incorrect_basename: The base file name can only contain letters, numbers, hyphens, periods, and underscores
- destroy:
- does_not_belong_to_attachable: This attachment does not belong to this sample.
- associated_att_does_not_belong_to_attachable: This associated attachment does not belong to the sample.
- bots:
- create:
- required:
- token_name: Unable to create bot account as the token name is required
- scopes: Unable to create bot account as the bot API scope must be selected
- access_level: Unable to create bot account as an access level must be selected
- data_exports:
- create:
- invalid_export_samples: Unable to create export due to either sample permissions or not found samples.
- invalid_export_workflow_executions: Unable to create export due to either workflow execution permissions or not found workflow executions.
- members:
- create:
- role_not_allowed: "A maintainer can only add members to the %{namespace_type} %{namespace_name} up to the Maintainer role"
- destroy:
- role_not_allowed: A maintainer can only remove a member up to the Maintainer role
- update:
- cannot_update_self: "You cannot update your own %{namespace_type} role"
- role_not_allowed: "A maintainer can only update a member's role up to the Maintainer role"
- samples:
- clone:
- empty_new_project_id: Destination project was not selected.
- empty_sample_ids: The sample ids are empty.
- same_project: The source and destination projects are the same. Please select a different destination project.
- sample_exists: "Sample %{sample_puid}: Conflicts with sample named '%{sample_name}' in the target project"
- transfer:
- empty_new_project_id: Destination project was not selected.
- empty_sample_ids: The sample ids are empty.
- same_project: The samples already exist in the project. Please select a different project.
- sample_exists: "Sample %{sample_puid}: Conflicts with sample named '%{sample_name}' in the target project"
- samples_not_found: "Samples with the following sample ids could not be transferred as they were not found in the source project: %{sample_ids}"
- maintainer_transfer_not_allowed: A maintainer can only transfer samples to other projects within the same hierarchy with a common ancestor
- metadata:
- sample_does_not_belong_to_project: "Sample '%{sample_name}'' does not belong to project '%{project_name}'"
- empty_metadata: "No metadata was received to update sample '%{sample_name}'"
- fields:
- single_all_keys_exist: Metadata key '%{key}' already exist.
- multi_all_keys_exist: Metadata keys '%{keys}' already exist.
- sample_does_not_belong_to_project: "Sample '%{sample_name}'' does not belong to project '%{project_name}'"
- user_cannot_update_metadata: "Metadata fields '%{metadata_fields}' of sample '%{sample_name}' cannot be overwritten by a user as it was previously updated with an analysis. "
- update_fields:
- metadata_was_not_changed: "Metadata fields were not changed."
- key_exists: "Sample already contains metadata field '%{key}'."
- user_cannot_edit_metadata_key: "Metadata key '%{key}' cannot be updated by a user."
- import_file:
- empty_file: The file cannot be empty.
- empty_sample_id_column: The sample id column cannot be empty.
- invalid_file_extension: The file can only be a csv or excel.
- duplicate_column_names: The file has duplicate column header names. Please remove the columns with duplicate header names and retry uploading.
- missing_sample_id_column: The file is missing the sample id column. Please make sure the sample id column exists and retry uploading.
- missing_metadata_column: The file does not have any metadata columns. Please add some columns of metadata to the file and retry uploading.
- missing_metadata_row: The file does not have any metadata rows. Please add some rows of metadata to the file and retry uploading.
- sample_not_found: "Sample '%{sample_name}' is not found within this %{namespace_type}"
- sample_metadata_fields_not_updated: "Sample '%{sample_name}' with field(s) '%{metadata_fields}' cannot be updated."
- personal_access_tokens:
- create:
- required:
- token_name: Unable to generate personal access token as the name is required
- scopes: Unable to generate personal access token as the API scope must be selected
- namespaces:
- share:
- invalid_namespace_type: Only a group or project namespace can be shared with a group.
- groups:
- transfer:
- namespace_empty: The new namespace is empty.
- same_group_and_namespace: The new namespace must be different from the group.
- namespace_group_exists: A group with the same name/path already exists in the new namespace.
- share:
- group_not_found: Group with id %{group_id} to share namespace with cannot be found.
- group_self_reference: Group cannot be shared with itself.
- projects:
- transfer:
- namespace_project_exists: Project with the same name or path already exists in the target namespace.
- application:
- errors:
- access_denied: Access Denied.
- not_authorized: You are not authorized to access the requested resource on this server.
- resource_not_found: Resource Not Found.
- not_found_on_server: The requested resource could not be found on the server.
- ransack:
- sort_dropdown_component:
- sorting:
- updated_at_desc: Updated At
- created_at_desc: Last created
- name_asc: Name
- name_desc: Name, descending
- namespace_name_asc: Name
- namespace_name_desc: Name, descending
- updated_at_asc: Oldest updated
- created_at_asc: Oldest created
- mailers:
- email_template:
- automated_message: This email was sent from an automated system. Please do not reply to this email.
- copy_paste: "Or copy and paste this link into your browser:"
- greeting: Bonjour,
- greeting_with_name: Bonjour %{name},
- thanks: Merci,
- data_export_mailer:
- email_subject: "Exportation Prêt - %{name}"
- export_ready:
- ready_for_download_html: "Your export %{name} is ready for download."
- view_exports: "To view and download the export, click the button below:"
- download_before_html: "Please download the export before %{date} as it will be deleted after this time."
- group_link_mailer:
- access_granted_user_email:
- subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- view_details: "To view %{namespace_type} '%{namespace_name}', click the button below:"
- access_revoked_user_email:
- subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- access_granted_manager_email:
- subject: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- body_html: Group '%{group_name}' has been granted access to %{namespace_type} '%{namespace_name}'
- view_details: "To view all the members of %{namespace_type} '%{namespace_name}', click the button below:"
- access_revoked_manager_email:
- subject: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- body_html: "%{namespace_type} '%{namespace_name}' access has been revoked for Group '%{group_name}'"
- member_mailer:
- access_granted_user_email:
- subject: You have been granted access to %{type} '%{name}'
- body_html: You have been granted access to %{type} '%{name}'
- view_details: "To view %{type} '%{name}', click the button below:"
- access_revoked_user_email:
- subject: Your access to %{type} '%{name}' has been revoked
- body_html: Your access to %{type} '%{name}' has been revoked
- access_granted_manager_email:
- subject: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
- body_html: User '%{first_name} %{last_name}' (%{email}) has been granted access to %{type} '%{name}'
- view_details: "To view all the members of %{type} '%{name}', click the button below:"
- access_revoked_manager_email:
- subject: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
- body_html: "%{type} '%{name}' access has been revoked for User '%{first_name} %{last_name}' (%{email})"
- view_details: "To view all the members of %{type} '%{name}', click the button below:"
- pipeline_mailer:
- complete_user_email:
- subject: Pipeline Completed - %{id}
- body_html: Your pipeline %{id} has completed successfully.
- complete_manager_email:
- subject: Pipeline Completed - %{id}
- body_html: Pipeline %{id} has completed successfully.
- error_user_email:
- subject: Pipeline Errored - %{id}
- body_html: Your pipeline %{id} did not complete successfully due to errors.
- error_manager_email:
- subject: Pipeline Errored - %{id}
- body_html: Pipeline %{id} did not complete successfully due to errors.
- view_details: "To view the pipeline summary, click the button below:"
- data_exports:
- create:
- success: Data export '%{name}' was successfully started.
- error: An error has occured with creating the data export.
- index:
- title: Data Exports
- table_header:
- id: ID
- name: Name
- type: Type
- status: Status
+ cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ create_export_button: Create Export
+ remove_button: Remove
+ remove_button_confirmation: Are you sure that you want to remove this workflow execution?
+ summary:
created_at: Created
- expires_at: Expires
- action: Action
- actions:
- dropdown: See dropdown actions for data export %{name}
- download: Download
- download_aria_label: Download data export %{name}
- delete: Delete
- delete_aria_label: Delete data export %{name}
- delete_confirmation: Are you sure you would like to delete data export '%{name}'?
- no_data_exports: No Data Exports
- no_data_exports_message: You currently have no data exports.
- summary:
+ name: Name
+ run_id: Run ID
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
+ table:
+ empty:
+ description: There are no automated workflow executions associated with this project.
+ title: No automated workflow executions.
+ ransack:
+ sort_dropdown_component:
+ sorting:
+ created_at_asc: Oldest created
+ created_at_desc: Last created
+ name_asc: Name
+ name_desc: Name, descending
+ namespace_name_asc: Name
+ namespace_name_desc: Name, descending
+ updated_at_asc: Oldest updated
+ updated_at_desc: Updated At
+ samples:
+ table_component:
+ action: Action
+ attachments_updated_at: Files Last Updated
+ counts:
+ samples: Samples
+ selected: Selected
created_at: Created
- expires_at: Expires
- format: Format
- id: ID
- name: Name
- once_ready: Available once export is ready
- status: Status
- type: Type
- destroy:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- remove:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- preview:
- manifest_json: manifest.json
- remove:
- success: Data export '%{name}' was successfully deleted.
- error: Data export '%{name}' could not be deleted.
- show:
- download: Download
- remove_button: Remove
- remove_button_confirmation: Are you sure you would like to delete data export '%{name}'?
- tabs:
- summary: Summary
- preview: Preview
- new:
- after_submission_description_html: After submission, you will be redirected to the export page. While the export status is processing, the contents of the export are being created. Once the export status is ready, it will be available for download. You will have 3 business days to download the export before it's deleted.
- email_label: Receive an email notification when your export is ready to download?
- name_label: "Export Name (Optional):"
- samples_count:
- zero: "Samples (0 selected)"
- non-zero: "Samples (COUNT_PLACEHOLDER selected)"
- sample_description:
- zero_html: This export will contain no samples.
- singular: This export will contain 1 sample.
- plural: This export will contain COUNT_PLACEHOLDER samples.
- submit_button: Submit
- new_sample_export_dialog:
- available: Available
- format_description: By default, all files are included in sample exports. If you would like to filter which files are included based on format, include only those formats within the %{selected} list.
- samples: Samples
- select_formats: Select File Formats
- selected: Selected
- title: Sample Export
- new_analysis_export_dialog:
- selection_count:
- zero: "Workflow Executions (0 selected)"
- non_zero: "Workflow Executions (COUNT_PLACEHOLDER selected)"
- description:
- singular: This export will contain 1 workflow execution.
- plural: This export will contain COUNT_PLACEHOLDER workflow executions.
- title: Analysis Export
- new_single_analysis_export_dialog:
- single_selection: Workflow Executions (1 selected)
- single_description_html: This export will contain 1 workflow execution.
- new_linelist_export_dialog:
- available: Available
- csv: '.csv'
- format: Format
- metadata: Metadata
- metadata_description: Select the metadata fields for export by moving the metadata fields from the %{available} list to the %{selected} list. The export's metadata ordering will be determined by the ordering of the %{selected} list.
- samples: Samples
- select_metadata: Select Metadata
- selected: Selected
- title: Linelist Export
- xlsx: '.xslx'
- list_workflow_execution:
- id: "ID:"
- name: "Name:"
- run_id: "Run ID:"
- workflow: "Workflow:"
- types:
- sample: SAMPLE
- analysis: ANALYSIS
- linelist: LINELIST
- status:
- processing: PROCESSING
- ready: READY
+ limit:
+ item: Samples
+ name: Sample Name
+ project: Project
+ puid: Sample ID
+ select_page: Select / Deselect visible samples
+ updated_at: Last Updated
+ services:
+ attachments:
+ concatenation:
+ filename_missing: Base file name not provided. Please provide a base name for the concatenated file.
+ incorrect_attachable: All or some of then selected files do not belong to the sample.
+ incorrect_basename: The base file name can only contain letters, numbers, hyphens, periods, and underscores
+ incorrect_fastq_file_types: Incorrect file types. '.fastq' files can only be concatenated with other '.fastq' files. '.fastq.gz' files can only be concatenated with other '.fastq.gz' files
+ incorrect_file_pairs: Incorrect file pairing. Forward and reverse read file counts do not match.
+ incorrect_file_types: Files are not of the same type. Paired-end files can only be concatenated with other paired-end files, and single-end files can only be concatenated with other single-end files.
+ no_files_selected: No files were selected to concatenate. Please select files then try again.
+ destroy:
+ associated_att_does_not_belong_to_attachable: This associated attachment does not belong to the sample.
+ does_not_belong_to_attachable: This attachment does not belong to this sample.
+ bots:
+ create:
+ required:
+ access_level: Unable to create bot account as an access level must be selected
+ scopes: Unable to create bot account as the bot API scope must be selected
+ token_name: Unable to create bot account as the token name is required
+ data_exports:
+ create:
+ invalid_export_samples: Unable to create export due to either sample permissions or not found samples.
+ invalid_export_workflow_executions: Unable to create export due to either workflow execution permissions or not found workflow executions.
+ groups:
+ share:
+ group_not_found: Group with id %{group_id} to share namespace with cannot be found.
+ group_self_reference: Group cannot be shared with itself.
+ invalid_namespace_type: Invalid namespace type
+ transfer:
+ namespace_empty: The new namespace is empty.
+ namespace_group_exists: A group with the same name/path already exists in the new namespace.
+ same_group_and_namespace: The new namespace must be different from the group.
+ members:
+ create:
+ role_not_allowed: A maintainer can only add members to the %{namespace_type} %{namespace_name} up to the Maintainer role
+ destroy:
+ role_not_allowed: A maintainer can only remove a member up to the Maintainer role
+ update:
+ cannot_update_self: You cannot update your own %{namespace_type} role
+ role_not_allowed: A maintainer can only update a member's role up to the Maintainer role
+ personal_access_tokens:
+ create:
+ required:
+ scopes: Unable to generate personal access token as the API scope must be selected
+ token_name: Unable to generate personal access token as the name is required
+ projects:
+ create:
+ namespace_required: Namespace required
+ transfer:
+ namespace_empty: Namespace empty
+ namespace_project_exists: Project with the same name or path already exists in the target namespace.
+ project_in_namespace: Project in namespace
+ samples:
+ clone:
+ empty_new_project_id: Destination project was not selected.
+ empty_sample_ids: The sample ids are empty.
+ same_project: The source and destination projects are the same. Please select a different destination project.
+ sample_exists: 'Sample %{sample_puid}: Conflicts with sample named ''%{sample_name}'' in the target project'
+ metadata:
+ empty_metadata: No metadata was received to update sample '%{sample_name}'
+ fields:
+ multi_all_keys_exist: Metadata keys '%{keys}' already exist.
+ sample_does_not_belong_to_project: Sample '%{sample_name}'' does not belong to project '%{project_name}'
+ single_all_keys_exist: Metadata key '%{key}' already exist.
+ import_file:
+ duplicate_column_names: The file has duplicate column header names. Please remove the columns with duplicate header names and retry uploading.
+ empty_file: The file cannot be empty.
+ empty_sample_id_column: The sample id column cannot be empty.
+ invalid_file_extension: The file can only be a csv or excel.
+ missing_metadata_column: The file does not have any metadata columns. Please add some columns of metadata to the file and retry uploading.
+ missing_metadata_row: The file does not have any metadata rows. Please add some rows of metadata to the file and retry uploading.
+ missing_sample_id_column: The file is missing the sample id column. Please make sure the sample id column exists and retry uploading.
+ sample_metadata_fields_not_updated: Sample '%{sample_name}' with field(s) '%{metadata_fields}' cannot be updated.
+ sample_not_found: Sample '%{sample_name}' is not found within this project
+ sample_does_not_belong_to_project: Sample '%{sample_name}'' does not belong to project '%{project_name}'
+ update_fields:
+ key_exists: Sample already contains metadata field '%{key}'.
+ metadata_was_not_changed: Metadata fields were not changed.
+ user_cannot_edit_metadata_key: Metadata key '%{key}' cannot be updated by a user.
+ user_cannot_update_metadata: 'Metadata fields ''%{metadata_fields}'' of sample ''%{sample_name}'' cannot be overwritten by a user as it was previously updated with an analysis. '
+ transfer:
+ empty_new_project_id: Destination project was not selected.
+ empty_sample_ids: The sample ids are empty.
+ maintainer_transfer_not_allowed: A maintainer can only transfer samples to other projects within the same hierarchy with a common ancestor
+ same_project: The samples already exist in the project. Please select a different project.
+ sample_exists: 'Sample %{sample_puid}: Conflicts with sample named ''%{sample_name}'' in the target project'
+ samples_not_found: 'Samples with the following sample ids could not be transferred as they were not found in the source project: %{sample_ids}'
shared:
alert:
list:
@@ -1756,50 +1455,122 @@ fr:
loading:
samples_list_skeleton:
loading: Loading...
- spinner:
- loading: Loading...
samples:
metadata:
file_imports:
dialog:
- title: Upload Sample Metadata
- dialog:
- description: Importing a metadata spreadsheet allows multiple metadata fields to multiple samples be added, updated or removed at once.
+ description: Description
file: File
- file_help: CSV, TSV, XLS or XLSX.
- sample_id_column: Sample ID Column
- select_sample_id_column: Select a Sample ID Column
- submit_button: Import Metadata
- ignore_empty_values: Ignore empty values
+ file_help: File help
ignore_empty_values:
- description: If selected, any metadata fields without an associated value will be ignored and those metadata keys will not be removed from the sample if present. However, if this not selected, any samples with the metadata key and empty value will be deleted.
+ description: Description
namespace:
- description: "The spreadsheet is required to have a column that contains a sample identifier. "
+ description: Description
group:
- description_html: The identifier is case-sensitive and must contain the sample ID.
+ description_html: Description html
project:
- description_html: The identifier is case-sensitive and can contain either the sample name or ID.
+ description_html: Description html
+ sample_id_column: Sample id column
+ select_sample_id_column: Select sample id column
+ submit_button: Submit button
+ title: Title
errors:
- description: "The sample metadata import completed with the following errors:"
- ok_button: OK
+ description: Description
+ ok_button: Ok button
success:
- description: The metadata was imported successfully!
- ok_button: OK
- members:
- access_levels:
- level_0: No Access
- level_10: Guest
- level_20: Uploader
- level_30: Analyst
- level_40: Maintainer
- level_50: Owner
+ description: Description
+ ok_button: Ok button
+ time:
+ formats:
+ abbreviated: "%a %b%e %Y %H:%M"
+ default: "%Y-%m-%d %H:%M:%S"
+ full_date: "%B %d, %Y"
+ viral:
+ pagy:
+ limit_component:
+ items: "%{items} per page:"
+ summary:
+ one: Displaying %{count} item
+ other: Displaying %{from}-%{to} of %{count} items
+ pagination_component:
+ aria-label: Pagination
+ next: Next
+ previous: Previous
+ sortable_lists_component:
+ add_all: Add all
+ remove_all: Remove all
+ workflow_executions:
+ files:
+ table_header:
+ created_at: Created At
+ filename: Filename
+ format: Format
+ puid: ID
+ size: Size
+ type: Type
+ index:
+ actions:
+ cancel_button: Cancel
+ cancel_confirm: Are you sure you want to cancel this workflow execution?
+ delete_button: Delete
+ delete_confirm: Are you sure you want to delete this workflow execution?
+ create_export_button: Create export button
+ deselect_all_button: Deselect all button
+ select_all_button: Select all button
+ title: Workflow Executions
+ samples:
+ empty: No samples could be found for this workflow execution
+ show:
+ cancel_button: Cancel
+ cancel_button_confirmation: Are you sure that you want to cancel this workflow execution?
+ create_export_button: Create Export
+ remove_button: Remove
+ remove_button_confirmation: Are you sure that you want to remove this workflow execution?
+ tabs:
+ files: Files
+ params: Parameters
+ samplesheet: Samplesheet
+ summary: Summary
+ state:
+ canceled: Canceled
+ canceling: Canceling
+ completed: Completed
+ completing: Completing
+ error: Error
+ initial: New
+ prepared: Prepared
+ running: Running
+ submitted: Submitted
+ submissions:
+ create:
+ submit: Submit
+ title: "%{workflow} parameters"
+ update: Update
+ pipeline_selection:
+ loading: Preparing workflow arguments for COUNT_PLACEHOLDER samples, this may take a bit of time.
+ title: Workflow Selection
+ summary:
+ created_at: Created
+ name: Name
+ run_id: Run ID
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
+ table:
+ empty:
+ description: There are no workflow executions associated with this submitter.
+ title: No workflow executions.
table_component:
- user_email: Username
- access_level: Access level
- namespace_name: Source
- created_at: Access granted
- expires_at: Expiration
- action: Action
- aria_labels:
- expires_at: Member expiration
- inherited_from: Inherited from
+ actions: Actions
+ counts:
+ selected: Selected
+ workflow_executions: Workflow executions
+ created_at: Created
+ id: ID
+ name: Name
+ run_id: Run ID
+ select_page: Select / Deselect visible samples
+ state: State
+ updated_at: Last Updated
+ workflow_name: Workflow Name
+ workflow_version: Workflow Version
diff --git a/config/locales/rails-i18n/fr.yml b/config/locales/rails-i18n/fr.yml
deleted file mode 100644
index fbdb8c58b5..0000000000
--- a/config/locales/rails-i18n/fr.yml
+++ /dev/null
@@ -1,221 +0,0 @@
----
-fr:
- activerecord:
- errors:
- messages:
- record_invalid: 'La validation a échoué : %{errors}'
- restrict_dependent_destroy:
- has_one: Vous ne pouvez pas supprimer l'enregistrement car un(e) %{record}
- dépendant(e) existe
- has_many: Vous ne pouvez pas supprimer l'enregistrement parce que les %{record}
- dépendants existent
- date:
- abbr_day_names:
- - dim
- - lun
- - mar
- - mer
- - jeu
- - ven
- - sam
- abbr_month_names:
- -
- - jan.
- - fév.
- - mars
- - avr.
- - mai
- - juin
- - juil.
- - août
- - sept.
- - oct.
- - nov.
- - déc.
- day_names:
- - dimanche
- - lundi
- - mardi
- - mercredi
- - jeudi
- - vendredi
- - samedi
- formats:
- default: "%d/%m/%Y"
- long: "%-d %B %Y"
- short: "%-d %b"
- month_names:
- -
- - janvier
- - février
- - mars
- - avril
- - mai
- - juin
- - juillet
- - août
- - septembre
- - octobre
- - novembre
- - décembre
- order:
- - :day
- - :month
- - :year
- datetime:
- distance_in_words:
- about_x_hours:
- one: environ une heure
- other: environ %{count} heures
- about_x_months:
- one: environ un mois
- other: environ %{count} mois
- about_x_years:
- one: environ un an
- other: environ %{count} ans
- almost_x_years:
- one: presque un an
- other: presque %{count} ans
- half_a_minute: une demi‑minute
- less_than_x_seconds:
- zero: moins d'une seconde
- one: moins d'une seconde
- other: moins de %{count} secondes
- less_than_x_minutes:
- zero: moins d'une minute
- one: moins d'une minute
- other: moins de %{count} minutes
- over_x_years:
- one: plus d'un an
- other: plus de %{count} ans
- x_seconds:
- one: "%{count} seconde"
- other: "%{count} secondes"
- x_minutes:
- one: "%{count} minute"
- other: "%{count} minutes"
- x_days:
- one: "%{count} jour"
- other: "%{count} jours"
- x_months:
- one: "%{count} mois"
- other: "%{count} mois"
- x_years:
- one: "%{count} an"
- other: "%{count} ans"
- prompts:
- second: Seconde
- minute: Minute
- hour: Heure
- day: Jour
- month: Mois
- year: Année
- errors:
- format: "%{attribute} %{message}"
- messages:
- accepted: doit être accepté(e)
- blank: doit être rempli(e)
- confirmation: ne concorde pas avec %{attribute}
- empty: doit être rempli(e)
- equal_to: doit être égal à %{count}
- even: doit être pair
- exclusion: n'est pas disponible
- greater_than: doit être supérieur à %{count}
- greater_than_or_equal_to: doit être supérieur ou égal à %{count}
- in: doit être dans l'intervalle %{count}
- inclusion: n'est pas inclus(e) dans la liste
- invalid: n'est pas valide
- less_than: doit être inférieur à %{count}
- less_than_or_equal_to: doit être inférieur ou égal à %{count}
- model_invalid: 'Validation échouée : %{errors}'
- not_a_number: n'est pas un nombre
- not_an_integer: doit être un nombre entier
- odd: doit être impair
- other_than: doit être différent de %{count}
- present: doit être vide
- required: doit exister
- taken: est déjà utilisé(e)
- too_long:
- one: est trop long (pas plus d'un caractère)
- other: est trop long (pas plus de %{count} caractères)
- too_short:
- one: est trop court (au moins un caractère)
- other: est trop court (au moins %{count} caractères)
- wrong_length:
- one: ne fait pas la bonne longueur (doit comporter un seul caractère)
- other: ne fait pas la bonne longueur (doit comporter %{count} caractères)
- template:
- body: 'Veuillez vérifier les champs suivants : '
- header:
- one: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreur'
- other: 'Impossible d''enregistrer ce(tte) %{model} : %{count} erreurs'
- helpers:
- select:
- prompt: Veuillez sélectionner
- submit:
- create: Créer un(e) %{model}
- submit: Enregistrer ce(tte) %{model}
- update: Modifier ce(tte) %{model}
- number:
- currency:
- format:
- delimiter: " "
- format: "%n %u"
- precision: 2
- separator: ","
- significant: false
- strip_insignificant_zeros: false
- unit: "€"
- format:
- delimiter: " "
- precision: 3
- round_mode: default
- separator: ","
- significant: false
- strip_insignificant_zeros: false
- human:
- decimal_units:
- format: "%n %u"
- units:
- billion: milliard
- million: million
- quadrillion: million de milliards
- thousand: millier
- trillion: billion
- unit: ''
- format:
- delimiter: ''
- precision: 3
- significant: true
- strip_insignificant_zeros: true
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: octet
- other: octets
- eb: Eo
- gb: Go
- kb: ko
- mb: Mo
- pb: Po
- tb: To
- percentage:
- format:
- delimiter: ''
- format: "%n%"
- precision:
- format:
- delimiter: ''
- support:
- array:
- last_word_connector: " et "
- two_words_connector: " et "
- words_connector: ", "
- time:
- am: am
- formats:
- default: "%d %B %Y %Hh %Mmin %Ss"
- long: "%A %d %B %Y %Hh%M"
- short: "%d %b %Hh%M"
- pm: pm
diff --git a/test/i18n_test.rb b/test/i18n_test.rb
new file mode 100644
index 0000000000..a61b1df147
--- /dev/null
+++ b/test/i18n_test.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require 'i18n/tasks'
+
+class I18nTest < ActiveSupport::TestCase
+ def setup
+ @i18n = I18n::Tasks::BaseTask.new
+ end
+
+ def test_no_missing_keys
+ missing_keys = @i18n.missing_keys
+ assert_empty missing_keys,
+ "Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them"
+ end
+
+ def test_no_unused_keys
+ unused_keys = @i18n.unused_keys
+ assert_empty unused_keys,
+ "#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them"
+ end
+
+ def test_files_are_normalized
+ non_normalized = @i18n.non_normalized_paths
+ error_message = "The following files need to be normalized:\n" \
+ "#{non_normalized.map { |path| " #{path}" }.join("\n")}\n" \
+ "Please run `i18n-tasks normalize' to fix"
+ assert_empty non_normalized, error_message
+ end
+
+ def test_no_inconsistent_interpolations
+ inconsistent_interpolations = @i18n.inconsistent_interpolations
+ error_message = "#{inconsistent_interpolations.leaves.count} i18n keys have inconsistent interpolations.\n" \
+ "Please run `i18n-tasks check-consistent-interpolations' to show them"
+ assert_empty inconsistent_interpolations, error_message
+ end
+end
diff --git a/test/system/data_exports_test.rb b/test/system/data_exports_test.rb
index afed75c121..1a322c99b3 100644
--- a/test/system/data_exports_test.rb
+++ b/test/system/data_exports_test.rb
@@ -482,13 +482,15 @@ def setup
assert_no_selector 'turbo-frame[id="list_selections"]'
assert_no_text @workflow_execution1.id
+ assert_no_text I18n.t('data_exports.new_analysis_export_dialog.description.singular')
assert_no_text ActionController::Base.helpers.strip_tags(
- I18n.t('data_exports.new_single_analysis_export_dialog.single_description_html')
+ I18n.t('data_exports.new.after_submission_description_html')
)
click_button I18n.t('data_exports.new_single_analysis_export_dialog.single_selection')
+ assert_text I18n.t('data_exports.new_analysis_export_dialog.description.singular')
assert_text ActionController::Base.helpers.strip_tags(
- I18n.t('data_exports.new_single_analysis_export_dialog.single_description_html')
+ I18n.t('data_exports.new.after_submission_description_html')
)
assert_text @workflow_execution1.id
assert_text @workflow_execution1.run_id
diff --git a/test/system/groups/bots_test.rb b/test/system/groups/bots_test.rb
index 197b5220b4..d5bbe37716 100644
--- a/test/system/groups/bots_test.rb
+++ b/test/system/groups/bots_test.rb
@@ -144,7 +144,7 @@ def setup
click_button 'Confirm'
end
- assert_text I18n.t(:'groups.bots.destroy.success')
+ assert_text I18n.t(:'concerns.bot_actions.destroy.success')
assert_no_selector 'a', text: I18n.t(:'components.pagination.previous')
assert_no_selector 'a', text: /\A#{I18n.t(:'components.pagination.next')}\Z/
@@ -275,7 +275,7 @@ def setup
within('dialog') do
within('#personal-access-token-alert') do
- assert_text I18n.t('groups.bots.personal_access_tokens.revoke.success', pat_name: token.name)
+ assert_text I18n.t('concerns.bot_personal_access_token_actions.revoke.success', pat_name: token.name)
end
end
end
diff --git a/test/system/groups/group_links_test.rb b/test/system/groups/group_links_test.rb
index 5622e329ab..ae6be27254 100644
--- a/test/system/groups/group_links_test.rb
+++ b/test/system/groups/group_links_test.rb
@@ -55,15 +55,15 @@ def setup
table_row = find(:table_row, { 'Group' => namespace_group_link.group.name })
within table_row do
- click_link I18n.t(:'groups.group_links.index.unlink')
+ click_link I18n.t(:'projects.group_links.index.unlink')
end
within('#turbo-confirm[open]') do
click_button 'Confirm'
end
- assert_text I18n.t(:'groups.group_links.destroy.success', namespace_name: namespace_group_link.namespace.name,
- group_name: namespace_group_link.group.name)
+ assert_text I18n.t(:'concerns.share_actions.destroy.success', namespace_name: namespace_group_link.namespace.name,
+ group_name: namespace_group_link.group.name)
assert_selector 'tr', count: (@group_links_count - 1) + header_row_count
end
@@ -78,7 +78,7 @@ def setup
namespace_group_link.destroy
within table_row do
- click_link I18n.t(:'groups.group_links.index.unlink')
+ click_link I18n.t(:'projects.group_links.index.unlink')
end
within('#turbo-confirm[open]') do
@@ -106,7 +106,7 @@ def setup
table_row = find(:table_row, { 'Group' => namespace_group_link.group.name })
within table_row do
- click_link I18n.t(:'groups.group_links.index.unlink')
+ click_link I18n.t(:'projects.group_links.index.unlink')
end
member_namespace_ids_to_update = @namespace.shared_with_group_links.of_ancestors.pluck(:group_id) +
@@ -135,7 +135,7 @@ def setup
find("#invited-group-#{namespace_group_link.group.id}-access-level-select").find(:xpath,
'option[2]').select_option
- assert_text I18n.t(:'groups.group_links.update.success',
+ assert_text I18n.t(:'concerns.share_actions.update.success',
namespace_name: namespace_group_link.namespace.human_name,
group_name: namespace_group_link.group.human_name,
param_name: 'group access level')
@@ -164,7 +164,7 @@ def setup
find("#invited-group-#{namespace_group_link.group.id}-expiration").click.set(expiry_date)
.native.send_keys(:return)
- assert_text I18n.t(:'groups.group_links.update.success',
+ assert_text I18n.t(:'concerns.share_actions.update.success',
namespace_name: namespace_group_link.namespace.human_name,
group_name: namespace_group_link.group.human_name,
param_name: 'expiration')
diff --git a/test/system/groups/members_test.rb b/test/system/groups/members_test.rb
index 7bb63b4982..5a0dd83b2d 100644
--- a/test/system/groups/members_test.rb
+++ b/test/system/groups/members_test.rb
@@ -107,7 +107,7 @@ def setup
click_button I18n.t(:'groups.members.new.add_member_to_group')
end
- assert_text I18n.t(:'groups.members.create.success', user: user_to_add.email)
+ assert_text I18n.t(:'concerns.membership_actions.create.success', user: user_to_add.email)
assert_selector 'h1', text: I18n.t(:'groups.members.index.title')
assert_selector 'tr', count: (@members_count + 1) + header_row_count
assert_not_nil find(:table_row, { 'Username' => user_to_add.email })
@@ -128,7 +128,7 @@ def setup
click_button 'Confirm'
end
- assert_text I18n.t(:'groups.members.destroy.success', user: group_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.success', user: group_member.user.email)
assert_selector 'h1', text: I18n.t(:'groups.members.index.title')
assert_selector 'tr', count: (@members_count - 1) + header_row_count
end
@@ -146,7 +146,7 @@ def setup
click_button 'Confirm'
end
- assert_text I18n.t(:'groups.members.destroy.leave_success', name: @namespace.name)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.leave_success', name: @namespace.name)
end
test 'can not add a member to the group' do
@@ -169,7 +169,7 @@ def setup
find("#member-#{group_member.id}-access-level-select").find(:xpath, 'option[2]').select_option
within %(turbo-frame[id="member-update-alert"]) do
- assert_text I18n.t(:'groups.members.update.success', user_email: group_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.update.success', user_email: group_member.user.email)
end
end
end
@@ -203,7 +203,7 @@ def setup
click_link I18n.t(:'groups.members.index.tabs.groups')
- assert_selector 'th', text: I18n.t(:'groups.group_links.index.table_header.group').upcase
+ assert_selector 'th', text: I18n.t(:'groups.table_component.group_name').upcase
assert_selector 'tr', count: 4 + header_row_count
@@ -231,7 +231,7 @@ def setup
end
within %(turbo-frame[id="member-update-alert"]) do
- assert_text I18n.t(:'groups.members.update.success', user_email: group_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.update.success', user_email: group_member.user.email)
end
group_member_row = find(:table_row, [group_member.user.email])
@@ -274,7 +274,7 @@ def setup
click_button I18n.t(:'groups.members.new.add_member_to_group')
end
- assert_text I18n.t(:'groups.members.create.success', user: user_to_add.email)
+ assert_text I18n.t(:'concerns.membership_actions.create.success', user: user_to_add.email)
assert_selector 'h1', text: I18n.t(:'groups.members.index.title')
assert_selector 'tr', count: (members_count + 1) + header_row_count
assert_not_nil find(:table_row, { 'Username' => user_to_add.email })
diff --git a/test/system/groups/samples_test.rb b/test/system/groups/samples_test.rb
index efc2a13a5d..9e3d44ca4c 100644
--- a/test/system/groups/samples_test.rb
+++ b/test/system/groups/samples_test.rb
@@ -33,21 +33,21 @@ def retrieve_puids
visit group_samples_url(@group)
assert_selector 'h1', text: I18n.t(:'groups.samples.index.title')
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 20
assert_text samples(:sample3).name
- assert_selector 'a', text: Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
+ assert_selector 'a', text: I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
assert_selector 'button[disabled="disabled"]',
- text: Viral::Pagy::PaginationComponent.translate('.previous', locale: @user.locale)
+ text: I18n.t(:'viral.pagy.pagination_component.previous', locale: @user.locale)
- click_on Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 21, to: 26, count: 26,
- locale: @user.locale))
+ click_on I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 21, to: 26, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 6
- click_on Viral::Pagy::PaginationComponent.translate('.previous', locale: @user.locale)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ click_on I18n.t(:'viral.pagy.pagination_component.previous', locale: @user.locale)
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 20
click_link samples(:sample3).name
@@ -61,23 +61,23 @@ def retrieve_puids
visit group_samples_url(group)
assert_selector 'h1', text: I18n.t(:'groups.samples.index.title')
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 20
assert_text samples(:sample1).name
assert_text samples(:sample3).name
- assert_selector 'a', text: Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
+ assert_selector 'a', text: I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
assert_selector 'button[disabled="disabled"]',
- text: Viral::Pagy::PaginationComponent.translate('.previous', locale: @user.locale)
+ text: I18n.t(:'viral.pagy.pagination_component.previous', locale: @user.locale)
- click_on Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 21, to: 26, count: 26,
- locale: @user.locale))
+ click_on I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 21, to: 26, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 6
assert_text samples(:sample28).name
- click_on Viral::Pagy::PaginationComponent.translate('.previous', locale: @user.locale)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ click_on I18n.t(:'viral.pagy.pagination_component.previous', locale: @user.locale)
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'tbody > tr', count: 20
click_link samples(:sample1).name
@@ -90,13 +90,13 @@ def retrieve_puids
visit group_samples_url(group)
- assert_selector 'a', text: Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
+ assert_selector 'a', text: I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
assert_selector 'button[disabled="disabled"]',
- text: Viral::Pagy::PaginationComponent.translate('.previous', locale: @user.locale)
+ text: I18n.t(:'viral.pagy.pagination_component.previous', locale: @user.locale)
- click_on Viral::Pagy::PaginationComponent.translate('.next', locale: @user.locale)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 21, to: 26, count: 26,
- locale: @user.locale))
+ click_on I18n.t(:'viral.pagy.pagination_component.next', locale: @user.locale)
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 21, to: 26, count: 26,
+ locale: @user.locale))
click_link samples(:sample28).name
assert_selector 'h1', text: samples(:sample28).name
@@ -113,8 +113,8 @@ def retrieve_puids
test 'can search the list of samples by name' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 20
assert_text @sample1.name
assert_text @sample2.name
@@ -131,8 +131,8 @@ def retrieve_puids
test 'can sort the list of samples' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
# Because PUIDs are not always generated the same, issues regarding order have occurred when hard testing
# the expected ordering of samples based on PUID. To resolve this, we will gather the first 4 PUIDs and ensure
# they are ordered as expected against one another.
@@ -183,8 +183,8 @@ def retrieve_puids
test 'can filter by name and then sort the list of samples' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 20
within('table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -215,8 +215,8 @@ def retrieve_puids
test 'can filter by puid and then sort the list of samples' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 20
within('table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -224,8 +224,8 @@ def retrieve_puids
fill_in placeholder: I18n.t(:'groups.samples.index.search.placeholder'), with: @sample1.puid
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 1
assert_text @sample1.name
assert_no_text @sample2.name
@@ -241,8 +241,8 @@ def retrieve_puids
test 'can sort and then filter the list of samples by name' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 20
within('table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -278,8 +278,8 @@ def retrieve_puids
test 'can sort and then filter the list of samples by puid' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 20
within('table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -305,8 +305,8 @@ def retrieve_puids
fill_in placeholder: I18n.t(:'groups.samples.index.search.placeholder'), with: @sample1.puid
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector 'table tbody tr', count: 1
assert_text @sample1.name
assert_no_text @sample2.name
@@ -316,15 +316,15 @@ def retrieve_puids
test 'should be able to toggle metadata' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
assert_selector 'table thead tr th', count: 6
click_on 'Last Updated'
assert_selector 'table thead th:nth-child(5) svg.icon-arrow_up'
- assert_selector 'label', text: I18n.t('groups.samples.index.search.metadata'), count: 1
- find('label', text: I18n.t('groups.samples.index.search.metadata')).click
+ assert_selector 'label', text: I18n.t('projects.samples.shared.metadata_toggle.label'), count: 1
+ find('label', text: I18n.t('projects.samples.shared.metadata_toggle.label')).click
assert_selector 'table thead tr th', count: 8
within('table tbody tr:first-child') do
@@ -332,17 +332,17 @@ def retrieve_puids
assert_selector 'td:nth-child(7)', text: 'value1'
assert_selector 'td:nth-child(8)', text: 'value2'
end
- find('label', text: I18n.t('groups.samples.index.search.metadata')).click
+ find('label', text: I18n.t('projects.samples.shared.metadata_toggle.label')).click
assert_selector 'table thead tr th', count: 6
end
test 'can sort samples by metadata column' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
- assert_selector 'label', text: I18n.t('groups.samples.index.search.metadata'), count: 1
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
+ assert_selector 'label', text: I18n.t('projects.samples.shared.metadata_toggle.label'), count: 1
assert_selector 'table thead tr th', count: 6
- find('label', text: I18n.t('groups.samples.index.search.metadata')).click
+ find('label', text: I18n.t('projects.samples.shared.metadata_toggle.label')).click
assert_selector 'table thead tr th', count: 8
click_on 'metadatafield1'
@@ -376,8 +376,8 @@ def retrieve_puids
test 'filtering samples by list of sample puids' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
within 'tbody' do
assert_selector 'tr', count: 20
assert_selector 'tr th', text: @sample1.puid
@@ -415,8 +415,8 @@ def retrieve_puids
test 'selecting / deselecting all samples' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
within 'tbody' do
assert_selector 'input[name="sample_ids[]"]', count: 20
assert_selector 'input[name="sample_ids[]"]:checked', count: 0
@@ -458,8 +458,8 @@ def retrieve_puids
test 'selecting / deselecting a page of samples' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
within 'tbody' do
assert_selector 'input[name="sample_ids[]"]', count: 20
assert_selector 'input[name="sample_ids[]"]:checked', count: 0
@@ -501,8 +501,8 @@ def retrieve_puids
test 'selecting samples while filtering' do
visit group_samples_url(@group)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 20, count: 26,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 20, count: 26,
+ locale: @user.locale))
within 'tbody' do
assert_selector 'input[name="sample_ids[]"]', count: 20
assert_selector 'input[name="sample_ids[]"]:checked', count: 0
diff --git a/test/system/projects/bots_test.rb b/test/system/projects/bots_test.rb
index 7757ab6fdd..721f0f0c2b 100644
--- a/test/system/projects/bots_test.rb
+++ b/test/system/projects/bots_test.rb
@@ -146,7 +146,7 @@ def setup
click_button 'Confirm'
end
- assert_text I18n.t(:'projects.bots.destroy.success')
+ assert_text I18n.t(:'concerns.bot_actions.destroy.success')
assert_no_selector 'a', text: I18n.t(:'components.pagination.previous')
assert_no_selector 'a', text: /\A#{I18n.t(:'components.pagination.next')}\Z/
@@ -277,7 +277,7 @@ def setup
within('dialog') do
within('#personal-access-token-alert') do
- assert_text I18n.t('projects.bots.personal_access_tokens.revoke.success', pat_name: token.name)
+ assert_text I18n.t('concerns.bot_personal_access_token_actions.revoke.success', pat_name: token.name)
end
end
end
diff --git a/test/system/projects/group_links_test.rb b/test/system/projects/group_links_test.rb
index 8cebae5928..c849c9c321 100644
--- a/test/system/projects/group_links_test.rb
+++ b/test/system/projects/group_links_test.rb
@@ -64,7 +64,7 @@ def setup
click_button 'Confirm'
end
- assert_text I18n.t(:'projects.group_links.destroy.success',
+ assert_text I18n.t(:'concerns.share_actions.destroy.success',
namespace_name: namespace_group_link.namespace.human_name,
group_name: namespace_group_link.group.human_name)
end
@@ -133,7 +133,7 @@ def setup
find("#invited-group-#{namespace_group_link.group.id}-access-level-select").find(:xpath,
'option[2]').select_option
- assert_text I18n.t(:'projects.group_links.update.success',
+ assert_text I18n.t(:'concerns.share_actions.update.success',
namespace_name: namespace_group_link.namespace.human_name,
group_name: namespace_group_link.group.human_name,
param_name: 'group access level')
@@ -160,7 +160,7 @@ def setup
find("#invited-group-#{namespace_group_link.group.id}-expiration").click.set(expiry_date)
.send_keys(:return)
- assert_text I18n.t(:'projects.group_links.update.success',
+ assert_text I18n.t(:'concerns.share_actions.update.success',
namespace_name: namespace_group_link.namespace.human_name,
group_name: namespace_group_link.group.human_name,
param_name: 'expiration')
diff --git a/test/system/projects/members_test.rb b/test/system/projects/members_test.rb
index 471f2a1416..b1e23454ce 100644
--- a/test/system/projects/members_test.rb
+++ b/test/system/projects/members_test.rb
@@ -26,7 +26,7 @@ def setup
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
- assert_selector 'th', text: I18n.t(:'projects.members.index.table_header.username').upcase
+ assert_selector 'th', text: I18n.t(:'members.table_component.user_email').upcase
assert_selector 'tr', count: 20 + header_row_count
@@ -52,7 +52,7 @@ def setup
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
- assert_selector 'th', text: I18n.t(:'projects.members.index.table_header.username').upcase
+ assert_selector 'th', text: I18n.t(:'members.table_component.user_email').upcase
assert_selector 'tr', count: members_count + header_row_count
@@ -112,7 +112,7 @@ def setup
click_button I18n.t(:'projects.members.new.add_member_to_project')
end
- assert_text I18n.t(:'projects.members.create.success', user: user_to_add.email)
+ assert_text I18n.t(:'concerns.membership_actions.create.success', user: user_to_add.email)
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
assert_selector 'tr', count: (@members_count + 1) + header_row_count
@@ -133,7 +133,7 @@ def setup
click_button I18n.t(:'components.confirmation.confirm')
end
- assert_text I18n.t(:'projects.members.destroy.success', user: project_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.success', user: project_member.user.email)
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
assert_selector 'tr', count: (@members_count - 1) + header_row_count
end
@@ -155,7 +155,7 @@ def setup
click_button I18n.t(:'components.confirmation.confirm')
end
- assert_text I18n.t(:'projects.members.destroy.success', user: project_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.success', user: project_member.user.email)
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
assert_selector 'tr', count: (members_count - 1) + header_row_count
end
@@ -172,7 +172,7 @@ def setup
assert_selector 'a', text: /\A#{I18n.t(:'components.pagination.next')}\Z/
assert_no_selector 'a', text: I18n.t(:'components.pagination.previous')
- assert_selector 'th', text: I18n.t(:'projects.members.index.table_header.username').upcase
+ assert_selector 'th', text: I18n.t(:'members.table_component.user_email').upcase
table_row = find(:table_row, { 'Username' => project_member.user.email })
@@ -184,7 +184,7 @@ def setup
click_button I18n.t(:'components.confirmation.confirm')
end
- assert_text I18n.t(:'projects.members.destroy.leave_success', name: project.name)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.leave_success', name: project.name)
assert_text I18n.t(:'dashboard.projects.index.title')
end
@@ -200,7 +200,7 @@ def setup
click_button I18n.t(:'components.confirmation.confirm')
end
- assert_text I18n.t(:'projects.members.destroy.leave_success', name: @project.name)
+ assert_text I18n.t(:'concerns.membership_actions.destroy.leave_success', name: @project.name)
assert_no_selector 'h1', text: I18n.t(:'projects.members.index.title')
end
@@ -243,7 +243,7 @@ def setup
click_button I18n.t(:'projects.members.new.add_member_to_project')
end
- assert_text I18n.t(:'projects.members.create.success', user: user_to_add.email)
+ assert_text I18n.t(:'concerns.membership_actions.create.success', user: user_to_add.email)
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
assert_selector 'tr', count: 1 + header_row_count
assert_not_nil find(:table_row, { 'Username' => user_to_add.email })
@@ -270,7 +270,7 @@ def setup
find("#member-#{project_member.id}-access-level-select").find(:xpath, 'option[2]').select_option
within %(turbo-frame[id="member-update-alert"]) do
- assert_text I18n.t(:'projects.members.update.success', user_email: project_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.update.success', user_email: project_member.user.email)
end
end
end
@@ -305,7 +305,7 @@ def setup
click_link I18n.t(:'projects.members.index.tabs.groups')
- assert_selector 'th', text: I18n.t(:'groups.group_links.index.table_header.group').upcase
+ assert_selector 'th', text: I18n.t(:'groups.table_component.group_name').upcase
assert_selector 'tr', count: 4 + header_row_count
@@ -333,7 +333,7 @@ def setup
.native.send_keys(:return)
within %(turbo-frame[id="member-update-alert"]) do
- assert_text I18n.t(:'projects.members.update.success', user_email: project_member.user.email)
+ assert_text I18n.t(:'concerns.membership_actions.update.success', user_email: project_member.user.email)
end
end
@@ -376,7 +376,7 @@ def setup
click_button I18n.t(:'projects.members.new.add_member_to_project')
end
- assert_text I18n.t(:'projects.members.create.success', user: user_to_add.email)
+ assert_text I18n.t(:'concerns.membership_actions.create.success', user: user_to_add.email)
assert_selector 'h1', text: I18n.t(:'projects.members.index.title')
assert_selector 'tr', count: (members_count + 1) + header_row_count
diff --git a/test/system/projects/samples_test.rb b/test/system/projects/samples_test.rb
index 710f293bc6..0d57757d72 100644
--- a/test/system/projects/samples_test.rb
+++ b/test/system/projects/samples_test.rb
@@ -239,8 +239,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should destroy Sample from sample listing page' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
table_row = find(:table_row, [@sample1.name])
within table_row do
@@ -267,8 +267,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should transfer multiple samples' do
project2 = projects(:project2)
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -293,8 +293,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should transfer a single sample' do
project2 = projects(:project2)
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type="checkbox"]')[0].click
@@ -314,8 +314,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should not transfer samples with session storage cleared' do
project2 = projects(:project2)
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -339,8 +339,8 @@ class SamplesTest < ApplicationSystemTestCase
project26 = projects(:project26)
sample30 = samples(:sample30)
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
check sample30.name
click_link I18n.t('projects.samples.index.transfer_button'), match: :first
@@ -364,8 +364,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should transfer some samples' do
project25 = projects(:project25)
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -396,8 +396,8 @@ class SamplesTest < ApplicationSystemTestCase
login_as user
project2 = projects(:project2)
visit namespace_project_samples_url(namespace_id: @namespace.path, project_id: @project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -423,8 +423,8 @@ class SamplesTest < ApplicationSystemTestCase
namespace = groups(:group_hotel)
project2 = projects(:projectHotel)
visit namespace_project_samples_url(namespace, project2)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 1
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -449,8 +449,8 @@ class SamplesTest < ApplicationSystemTestCase
# Project is a part of Group 8 and not a part of the current project hierarchy
project32 = projects(:project32)
visit namespace_project_samples_url(namespace_id: @namespace.path, project_id: @project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within '#samples-table table tbody' do
assert_selector 'tr', count: 3
all('input[type=checkbox]').each { |checkbox| checkbox.click unless checkbox.checked? }
@@ -556,8 +556,8 @@ class SamplesTest < ApplicationSystemTestCase
assert_selector 'a', text: I18n.t('projects.samples.index.new_button'), count: 1
assert_selector 'h1', text: I18n.t('projects.samples.index.title')
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('tbody tr:first-child') do
assert_selector 'a', text: 'Edit', count: 1
@@ -575,8 +575,8 @@ class SamplesTest < ApplicationSystemTestCase
assert_selector 'a', text: I18n.t('projects.samples.index.new_button'), count: 0
assert_selector 'h1', text: I18n.t('projects.samples.index.title')
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
assert_selector '#samples-table table tbody tr', count: 3
assert_selector 'a', text: 'Edit', count: 0
assert_selector 'a', text: 'Remove', count: 0
@@ -588,16 +588,16 @@ class SamplesTest < ApplicationSystemTestCase
visit namespace_project_samples_url(@namespace, @project)
filter_text = samples(:sample1).name[-3..-1]
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
assert_text @sample1.name
assert_text @sample2.name
fill_in placeholder: I18n.t(:'projects.samples.index.search.placeholder'), with: filter_text
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_selector 'mark', text: filter_text
assert_no_text @sample2.name
@@ -606,8 +606,8 @@ class SamplesTest < ApplicationSystemTestCase
# Refresh the page to ensure the search is still active
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_selector 'mark', text: filter_text
assert_no_text @sample2.name
@@ -617,8 +617,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'can sort samples by column' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('tbody tr:first-child th') do
assert_text @sample1.puid
@@ -717,8 +717,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'can filter and then sort the list of samples by name' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('#samples-table table tbody tr:first-child td:nth-child(2)') do
assert_text @sample1.name
@@ -726,8 +726,8 @@ class SamplesTest < ApplicationSystemTestCase
fill_in placeholder: I18n.t(:'projects.samples.index.search.placeholder'), with: samples(:sample1).name
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_text @sample1.puid
assert_text @sample1.name
@@ -746,8 +746,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'can filter and then sort the list of samples by puid' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('#samples-table table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -755,8 +755,8 @@ class SamplesTest < ApplicationSystemTestCase
fill_in placeholder: I18n.t(:'projects.samples.index.search.placeholder'), with: @sample1.puid
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_text @sample1.puid
assert_text @sample1.name
@@ -782,8 +782,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'can sort and then filter the list of samples by name' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('#samples-table table tbody tr:first-child td:nth-child(2)') do
assert_text @sample1.name
@@ -801,8 +801,8 @@ class SamplesTest < ApplicationSystemTestCase
fill_in placeholder: I18n.t(:'projects.samples.index.search.placeholder'), with: samples(:sample1).name
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_text @sample1.puid
assert_text @sample1.name
@@ -811,8 +811,8 @@ class SamplesTest < ApplicationSystemTestCase
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_text @sample1.puid
assert_text @sample1.name
@@ -823,8 +823,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'can sort and then filter the list of samples by puid' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 3
within('#samples-table table tbody tr:first-child th') do
assert_text @sample1.puid
@@ -842,8 +842,8 @@ class SamplesTest < ApplicationSystemTestCase
fill_in placeholder: I18n.t(:'projects.samples.index.search.placeholder'), with: @sample1.puid
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: @user.locale))
assert_selector '#samples-table table tbody tr', count: 1
assert_text @sample1.puid
assert_text @sample1.name
@@ -1333,8 +1333,8 @@ class SamplesTest < ApplicationSystemTestCase
test 'should be able to toggle metadata' do
visit namespace_project_samples_url(@namespace, @project)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: @user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: @user.locale))
assert_selector '#samples-table table thead tr th', count: 6
click_on 'Last Updated'
diff --git a/test/system/projects/workflow_executions_test.rb b/test/system/projects/workflow_executions_test.rb
index 1eb58c562b..8fc238055b 100644
--- a/test/system/projects/workflow_executions_test.rb
+++ b/test/system/projects/workflow_executions_test.rb
@@ -98,7 +98,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_link 'Cancel', count: 1
click_link 'Cancel'
end
@@ -108,7 +108,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within %(div[data-controller='viral--flash']) do
assert_text I18n.t(
- :'projects.workflow_executions.cancel.success',
+ :'concerns.workflow_execution_actions.cancel.success',
workflow_name: workflow_execution.metadata['workflow_name']
)
end
@@ -129,7 +129,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_no_link 'Delete'
end
end
@@ -146,7 +146,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_no_link 'Delete'
end
end
@@ -163,7 +163,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_link 'Delete', count: 1
click_link 'Delete'
end
@@ -173,7 +173,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within %(div[data-controller='viral--flash']) do
assert_text I18n.t(
- :'projects.workflow_executions.destroy.success',
+ :'concerns.workflow_execution_actions.destroy.success',
workflow_name: workflow_execution.metadata['workflow_name']
)
end
@@ -193,7 +193,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_link 'Delete', count: 1
click_link 'Delete'
end
@@ -216,7 +216,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_no_link 'Delete'
end
end
@@ -233,7 +233,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_link 'Delete', count: 1
click_link 'Delete'
end
@@ -256,7 +256,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_no_link 'Delete'
end
end
@@ -273,7 +273,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within tr do
assert_selector "td:nth-child(#{@state_col})",
- text: I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ text: I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_no_link 'Delete'
end
end
@@ -284,15 +284,15 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
visit namespace_project_workflow_execution_path(@namespace, @project, workflow_execution)
assert_text workflow_execution.id
- assert_text I18n.t(:"projects.workflow_executions.state.#{workflow_execution.state}")
+ assert_text I18n.t(:"workflow_executions.state.#{workflow_execution.state}")
assert_text workflow_execution.metadata['workflow_name']
assert_text workflow_execution.metadata['workflow_version']
- click_on I18n.t('projects.workflow_executions.show.tabs.files')
+ click_on I18n.t('workflow_executions.show.tabs.files')
assert_text 'FILENAME'
- click_on I18n.t('projects.workflow_executions.show.tabs.params')
+ click_on I18n.t('workflow_executions.show.tabs.params')
assert_selector 'div.project_name-param > span', text: '--project_name'
assert_selector 'div.project_name-param > input[value="assembly"]'
diff --git a/test/system/workflow_executions/submissions_test.rb b/test/system/workflow_executions/submissions_test.rb
index 532a743a28..138f400801 100644
--- a/test/system/workflow_executions/submissions_test.rb
+++ b/test/system/workflow_executions/submissions_test.rb
@@ -19,8 +19,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit namespace_project_samples_url(namespace_id: @namespace.path, project_id: @project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
@@ -53,8 +53,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit namespace_project_samples_url(namespace_id: @namespace.path, project_id: @project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
@@ -87,8 +87,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit namespace_project_samples_url(namespace_id: @namespace.path, project_id: @project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
@@ -125,8 +125,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit namespace_project_samples_url(namespace_id: namespace.path, project_id: project.path)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 1, count: 1,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 1, count: 1,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{sample.id}']").click
@@ -165,8 +165,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit group_samples_url(@namespace)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
@@ -199,8 +199,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit group_samples_url(@namespace)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
@@ -233,8 +233,8 @@ class SubmissionsTest < ApplicationSystemTestCase
visit group_samples_url(@namespace)
- assert_text strip_tags(Viral::Pagy::LimitComponent.translate('.summary', from: 1, to: 3, count: 3,
- locale: user.locale))
+ assert_text strip_tags(I18n.t(:'viral.pagy.limit_component.summary', from: 1, to: 3, count: 3,
+ locale: user.locale))
within 'table' do
find("input[type='checkbox'][value='#{@sample43.id}']").click
diff --git a/test/system/workflow_executions_test.rb b/test/system/workflow_executions_test.rb
index aacfcb1f3a..1216f3c8ad 100644
--- a/test/system/workflow_executions_test.rb
+++ b/test/system/workflow_executions_test.rb
@@ -126,7 +126,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within %(div[data-controller='viral--flash']) do
assert_text I18n.t(
- :'workflow_executions.cancel.success',
+ :'concerns.workflow_execution_actions.cancel.success',
workflow_name: workflow_execution.metadata['workflow_name']
)
end
@@ -204,7 +204,7 @@ class WorkflowExecutionsTest < ApplicationSystemTestCase
within %(div[data-controller='viral--flash']) do
assert_text I18n.t(
- :'workflow_executions.destroy.success',
+ :'concerns.workflow_execution_actions.destroy.success',
workflow_name: workflow_execution.metadata['workflow_name']
)
end