diff --git a/apps/dashboard/Gemfile b/apps/dashboard/Gemfile
index 3fad5f2970..7d04308e71 100644
--- a/apps/dashboard/Gemfile
+++ b/apps/dashboard/Gemfile
@@ -39,6 +39,10 @@ end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
# gem 'web-console', '~> 2.0'
+ gem 'i18n-tasks'
+ gem 'highline', '2.1.0'
+ # gem 'easy_translate'
+ # gem 'ruby-openai'
end
# lock gems to versions that are compatible with ruby 2.7.0,
diff --git a/apps/dashboard/Gemfile.lock b/apps/dashboard/Gemfile.lock
index 9fe094b5f3..eea65a9af7 100644
--- a/apps/dashboard/Gemfile.lock
+++ b/apps/dashboard/Gemfile.lock
@@ -68,6 +68,7 @@ GEM
tzinfo (~> 2.0)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
+ ast (2.4.2)
autoprefixer-rails (10.2.5.1)
execjs (> 0)
base64 (0.2.0)
@@ -115,11 +116,22 @@ GEM
ffi (1.16.3)
globalid (1.2.1)
activesupport (>= 6.1)
+ highline (2.1.0)
http-accept (1.7.0)
http-cookie (1.0.8)
domain_name (~> 0.5)
i18n (1.14.6)
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)
jbuilder (2.13.0)
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
@@ -181,6 +193,9 @@ GEM
ood_support (~> 0.0.2)
rexml (~> 3.2)
ood_support (0.0.5)
+ parser (3.3.6.0)
+ ast (~> 2.4.1)
+ racc
pry (0.15.0)
coderay (~> 1.1)
method_source (~> 1.0)
@@ -216,6 +231,9 @@ GEM
rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
+ rails-i18n (7.0.10)
+ i18n (>= 0.7, < 2)
+ railties (>= 6.0.0, < 8)
railties (7.0.8.5)
actionpack (= 7.0.8.5)
activesupport (= 7.0.8.5)
@@ -223,6 +241,7 @@ GEM
rake (>= 12.2)
thor (~> 1.0)
zeitwerk (~> 2.5)
+ rainbow (3.1.1)
rake (13.2.1)
rdoc (6.10.0)
psych (>= 4.0.0)
@@ -266,6 +285,8 @@ GEM
activesupport (>= 6.1)
sprockets (>= 3.0.0)
stringio (3.1.2)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
thor (1.3.2)
tilt (2.4.0)
timecop (0.9.10)
@@ -276,6 +297,7 @@ GEM
railties (>= 6.0.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
+ unicode-display_width (2.6.0)
webrick (1.9.1)
websocket (1.2.11)
websocket-driver (0.7.6)
@@ -302,6 +324,8 @@ DEPENDENCIES
dotenv-rails (~> 2.1)
dotiw
erubi
+ highline (= 2.1.0)
+ i18n-tasks
jbuilder (~> 2.0)
jsbundling-rails (~> 1.0)
local_time (~> 1.0.3)
diff --git a/apps/dashboard/config/i18n-tasks.yml.erb b/apps/dashboard/config/i18n-tasks.yml.erb
new file mode 100644
index 0000000000..fe432c4813
--- /dev/null
+++ b/apps/dashboard/config/i18n-tasks.yml.erb
@@ -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:
+ ## Default:
+ # - config/locales/%{locale}.yml
+ ## More files:
+ # - config/locales/**/*.%{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:
+ ## For example, write devise and simple form keys to their respective files:
+ # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml']
+ ## Catch-all default:
+ # - 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, isolating_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/presenters
+ # - app/views
+
+ ## 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:
+ # -
+
+ ## 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.
+translation:
+ backend: openai
+ openai_api_key: <%= ENV["OPENAI_API_KEY"] %>
+
+## Do not consider these keys missing:
+# ignore_missing:
+# - 'errors.messages.{accepted,blank,invalid,too_short,too_long}'
+# - '{devise,simple_form}.*'
+
+## Consider these keys used:
+# ignore_unused:
+# - 'activerecord.attributes.*'
+# - '{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/apps/dashboard/config/locales/en.yml b/apps/dashboard/config/locales/en.yml
index 5e37ebd24c..9bb12c056a 100644
--- a/apps/dashboard/config/locales/en.yml
+++ b/apps/dashboard/config/locales/en.yml
@@ -1,75 +1,21 @@
-# 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:
activemodel:
errors:
messages:
- required: "%{attribute} is required"
format: "%{attribute} format invalid or missing"
invalid: "%{attribute} is invalid"
+ required: "%{attribute} is required"
used: "%{attribute} is already used"
-
dashboard:
- # Site specific translations
- batch_connect_sessions_status_bad: "Your session has entered a bad state. Feel free to contact support for
- further information."
- batch_connect_sessions_status_missing_connection: |
- This app is missing information required to establish a connection. Please
- contact support if you see this message.
- batch_connect_sessions_status_queued: |
- Please be patient as your job currently sits in queue. The wait time depends
- on the number of cores as well as time requested.
-
- motd_erb_render_error: "MOTD was not parsed or rendered correctly: %{error_message}"
- nav_help_change_password: "Change HPC Password"
- nav_help_docs: "Online Documentation"
- nav_help_support: "Contact Support"
- nav_help_two_factor: "Configure Two-Factor Authentication"
- nav_help_support_ticket: "Submit Support Ticket"
-
- quota_additional_message: "Consider deleting or archiving files to free up disk space."
- quota_reload_message: "Reload page to see updated quota. Quotas are updated every 5 minutes."
- quota_warning_prefix_html: "Quota limit warning for"
-
- balance_additional_message: "Consider requesting additional %{balanace_units}"
- balance_reload_message_html: "Reload page to see updated balance. Balances are updated daily.
Last update was %{last_update}"
- balance_warning_prefix_html: "%{units_balance} warning for"
- balance_message: "%{units_balance} is %{value}"
-
- welcome_html: |
- %{logo_img_tag}
-
OnDemand provides an integrated, single access point for all of your HPC resources.
-
- # General translations
+ active_sessions_caption_html: view all (%{number_of_sessions})
+ active_sessions_title: Active interactive sessions
+ add: Add
+ all_apps_table_app_column: Name
+ all_apps_table_category_column: Category
+ all_apps_table_sub_category_column: Sub Category
+ announcements_dismissible_button: OK
+ announcements_required_button: Accept
apps_setup_failure_html: |
A problem occurred while initializing your data for this app.
@@ -84,242 +30,226 @@ en:
%{exception_message}
Stack trace:
%{exception_trace}
- apps_system_apps_title: "System Apps" # Not used anywhere
- system_apps_caption: "System Installed App"
-
- shell_app_title: "%{cluster_title} Shell Access"
-
- batch_connect_form_attr_cache_error: "Unable to use previously cached values, using defaults instead. (%{error_message})"
- batch_connect_form_choose_template_name: "Choose a template name"
- batch_connect_form_data_root: "data root directory"
- batch_connect_form_launch: "Launch"
- batch_connect_form_prefill: "Use saved settings"
- batch_connect_form_prefill_error: "Oops... Something is wrong with your template"
- batch_connect_form_reset_resolution: "Reset Resolution"
- batch_connect_form_save: "Save settings"
- batch_connect_form_save_submit: "Save settings and close"
- batch_connect_form_save_new_template: "save new settings"
- batch_connect_form_select_template: "select saved settings"
- batch_connect_form_template_name_label: "setting name"
+ apps_system_apps_title: System Apps
+ auto_log_location_title: Log Location
+ balance_additional_message: Consider requesting additional %{balanace_units}
+ balance_message: "%{units_balance} is %{value}"
+ balance_reload_message_html: Reload page to see updated balance. Balances are updated daily.
Last update was %{last_update}
+ balance_warning_prefix_html: "%{units_balance} warning for"
+ batch_connect_apps_menu_title: Interactive Apps
+ batch_connect_form_attr_cache_error: Unable to use previously cached values, using defaults instead. (%{error_message})
+ batch_connect_form_choose_template_name: Choose a template name
+ batch_connect_form_data_root: data root directory
+ batch_connect_form_invalid: The form.yml has missing options in the %{id} form field.
+ batch_connect_form_launch: Launch
+ batch_connect_form_prefill: Use saved settings
+ batch_connect_form_prefill_error: Oops... Something is wrong with your template
+ batch_connect_form_reset_resolution: Reset Resolution
+ batch_connect_form_save: Save settings
+ batch_connect_form_save_new_template: save new settings
+ batch_connect_form_save_submit: Save settings and close
+ batch_connect_form_select_template: select saved settings
batch_connect_form_session_data_html: |
* The %{title} session data for this session can be accessed
under the %{data_link_tag}.
- batch_connect_form_type_new_name: "App settings name"
- batch_connect_form_type_new_name_error: "Please type a valid name to continue"
- batch_connect_form_invalid: "The form.yml has missing options in the %{id} form field."
+ batch_connect_form_template_name_label: setting name
+ batch_connect_form_type_new_name: App settings name
+ batch_connect_form_type_new_name_error: Please type a valid name to continue
batch_connect_invalid_form_array: "'form' element in form.yml is not an Array"
batch_connect_invalid_form_attributes: "'attributes' element in form.yml is not a Map"
- batch_connect_no_apps: "There are no available Interactive Apps."
- batch_connect_no_sessions: "You have no active sessions."
- batch_connect_sandbox: " [Sandbox]"
batch_connect_missing_cluster: |
The cluster was never set. Either set it in form.yml.erb with `cluster` or `form.cluster` or
set `cluster` in submit.yml.erb.
- batch_connect_sessions_word: 'Session'
+ batch_connect_no_apps: There are no available Interactive Apps.
+ batch_connect_no_sessions: You have no active sessions.
+ batch_connect_sandbox: " [Sandbox]"
+ batch_connect_sessions_cancel_confirm: Are you sure?
+ batch_connect_sessions_cancel_title: Cancel
batch_connect_sessions_data_html: |
The %{title} session data for this session can be accessed
under the %{data_link_tag}.
+ batch_connect_sessions_delete_confirm: Are you sure?
+ batch_connect_sessions_delete_hover: 删除会话
+ batch_connect_sessions_delete_title: Delete
+ batch_connect_sessions_edit_title: Edit new %{title} with this session parameters
batch_connect_sessions_error_invalid_job_name_html: |
If this job failed to submit because of an invalid job name
please ask your administrator to configure OnDemand to set the
environment variable OOD_JOB_NAME_ILLEGAL_CHARS.
- batch_connect_sessions_delete_confirm: "Are you sure?"
- batch_connect_sessions_delete_title: "Delete"
- batch_connect_sessions_cancel_confirm: "Are you sure?"
- batch_connect_sessions_cancel_title: "Cancel"
- batch_connect_sessions_relaunch_title: "Relaunch"
- batch_connect_sessions_edit_title: "Edit new %{title} with this session parameters"
- batch_connect_sessions_errors_staging: "Failed to stage the template with the following error:"
- batch_connect_sessions_errors_submission: "Failed to submit session with the following error:"
- batch_connect_sessions_novnc_launch: "Launch %{app_title}"
- batch_connect_sessions_novnc_view_only: "View Only (Share-able Link)"
- batch_connect_sessions_staged_root: "staged root directory"
- batch_connect_sessions_stats_created_at: "Created at:"
- batch_connect_sessions_stats_host: "Host:"
- batch_connect_sessions_stats_session_id: "Session ID:"
- batch_connect_sessions_stats_time_remaining: "Time Remaining:"
- batch_connect_sessions_stats_time_requested: "Time Requested:"
- batch_connect_sessions_stats_time_used: "Time Used:"
- batch_connect_sessions_stats_undetermined_host: "Undetermined"
- batch_connect_sessions_stats_support_ticket: "Problems with this session?"
- batch_connect_sessions_stats_support_ticket_link_text: "Submit support ticket"
- batch_connect_sessions_status_blurb_create_success: "Session was successfully created."
- batch_connect_sessions_status_blurb_delete_failure: "Failed to delete session."
- batch_connect_sessions_status_blurb_delete_success: "Session was successfully deleted."
- batch_connect_sessions_status_blurb_cancel_failure: "Failed to cancel session."
- batch_connect_sessions_status_blurb_cancel_success: "Session was successfully canceled."
+ batch_connect_sessions_errors_staging: 'Failed to stage the template with the following error:'
+ batch_connect_sessions_errors_submission: 'Failed to submit session with the following error:'
+ batch_connect_sessions_novnc_launch: Launch %{app_title}
+ batch_connect_sessions_novnc_view_only: View Only (Share-able Link)
+ batch_connect_sessions_path_selector_forbidden_error: You do not have permission to select that directory or file.
+ batch_connect_sessions_relaunch_title: Relaunch
+ batch_connect_sessions_staged_root: staged root directory
+ batch_connect_sessions_stats_created_at: 'Created at:'
+ batch_connect_sessions_stats_host: 'Host:'
+ batch_connect_sessions_stats_session_id: 'Session ID:'
+ batch_connect_sessions_stats_support_ticket: Problems with this session?
+ batch_connect_sessions_stats_support_ticket_link_text: Submit support ticket
+ batch_connect_sessions_stats_time_remaining: 'Time Remaining:'
+ batch_connect_sessions_stats_time_requested: 'Time Requested:'
+ batch_connect_sessions_stats_time_used: 'Time Used:'
+ batch_connect_sessions_stats_undetermined_host: Undetermined
+ batch_connect_sessions_status_bad: Your session has entered a bad state. Feel free to contact support for further information.
+ batch_connect_sessions_status_blurb_cancel_failure: Failed to cancel session.
+ batch_connect_sessions_status_blurb_cancel_success: Session was successfully canceled.
+ batch_connect_sessions_status_blurb_create_success: Session was successfully created.
+ batch_connect_sessions_status_blurb_delete_failure: Failed to delete session.
+ batch_connect_sessions_status_blurb_delete_success: Session was successfully deleted.
+ batch_connect_sessions_status_completed: For debugging purposes, this card will be retained for %{days} more days
+ batch_connect_sessions_status_missing_connection: |
+ This app is missing information required to establish a connection. Please
+ contact support if you see this message.
+ batch_connect_sessions_status_queued: |
+ Please be patient as your job currently sits in queue. The wait time depends
+ on the number of cores as well as time requested.
batch_connect_sessions_status_starting: |
Your session is currently starting... Please be patient as this process can
take a few minutes.
-
- batch_connect_sessions_status_completed: "For debugging purposes, this card will be retained for %{days} more days"
- batch_connect_sessions_path_selector_forbidden_error: "You do not have permission to select that directory or file."
- batch_connect_apps_menu_title: "Interactive Apps"
- breadcrumbs_all_apps: "All Apps"
- breadcrumbs_home: "Home"
- breadcrumbs_my_sessions: "My Interactive Sessions"
-
- motd_title: "Message of the Day"
-
- nav_all_apps: "All Apps"
- nav_develop_docs: "Developer Documentation"
- nav_develop_my_sandbox_apps_dev: "My Sandbox Apps (Development)"
- nav_develop_my_sandbox_apps_prod: "My Shared Apps (Production)"
- nav_develop_title: "Develop"
- nav_help_title: "Help"
- nav_logout: "Log Out"
- nav_restart_server: "Restart Web Server"
- nav_sessions: "My Interactive Sessions" # Note duplication with breadcrumbs_my_sessions
- nav_user: "Logged in as %{username}"
-
- quota_block: "Using %{used} of quota %{available}"
+ batch_connect_sessions_word: Session
+ bc_saved_settings:
+ delete_confirm: Are you sure?
+ delete_title: Delete %{settings_name} saved settings
+ deleted_message: Saved settings %{settings_name} deleted.
+ edit_title: Edit %{settings_name} saved settings
+ launch_title: Launch %{app_title} with %{settings_name} parameters
+ missing_settings: Selected saved settings not found.
+ no_settings_title: You have no saved settings.
+ outdated_message: "%{app_title} parameters have changed since these settings were created."
+ saved_message: "%{settings_name} settings saved"
+ settings_values_label: Values
+ title: Saved Settings
+ breadcrumbs_all_apps: All Apps
+ breadcrumbs_home: Home
+ breadcrumbs_my_sessions: My Interactive Sessions
+ breadcrumbs_support_ticket: Support Ticket
+ close: Close
+ custom_pages:
+ invalid: 'Invalid page code: %{page}. This page has not been configured'
+ delete: Delete
+ development_apps_caption: Sandbox App
+ directory: Directory
+ edit: Edit
+ files_directory_download_error_modal_title: Directory too large to download
+ files_directory_download_unauthorized: You can only download a directory as zip that you have read and execute access to
+ files_directory_size_calculation_error: Timeout while trying to determine directory size.
+ files_directory_size_calculation_timeout: Timeout while trying to determine directory size.
+ files_directory_size_unknown: 'Error with status %{exit_code} when trying to determine directory size: %{error}'
+ files_directory_too_large: The directory is too large to download as a zip. The directory should be less than %{download_directory_size_limit} bytes.
+ files_download_not_enabled: Downloading files is not enabled on this server.
+ files_remote_dir_not_created: Did not create directory %{path}
+ files_remote_disabled: Remote file support is not enabled
+ files_remote_empty_dir_unsupported: Remote does not support empty directories
+ files_remote_error_listing_remotes: 'Error listing Rclone remotes: %{error}'
+ jobs_create_blank_project: Create a new project
+ jobs_create_template_project: Create a new project from a template
+ jobs_launchers: Launchers
+ jobs_launchers_created: Launcher successfully created!
+ jobs_launchers_default_created: A 'hello_world.sh' was also added to this project.
+ jobs_launchers_delete_script_confirmation: Delete all contents of launcher?
+ jobs_launchers_deleted: Launcher successfully deleted!
+ jobs_launchers_fixed_field: Fixed Value
+ jobs_launchers_not_found: Cannot find Launcher %{launcher_id}
+ jobs_launchers_submitted: Successfully submitted job %{job_id}.
+ jobs_launchers_updated: Launcher manifest updated!
+ jobs_new_launcher: New Launcher
+ jobs_project_created: Project successfully created!
+ jobs_project_delete_project_confirmation: Delete all contents of project directory?
+ jobs_project_deleted: Project successfully deleted!
+ jobs_project_description_placeholder: Project description
+ jobs_project_directory_help_html: 'Leave empty and a new directory will be created.
Default location: %{root_directory}'
+ jobs_project_directory_placeholder: Project directory absolute path
+ jobs_project_generic_error: 'There was an error processing your request: %{error}'
+ jobs_project_invalid_configuration_clusters: An HPC cluster is required. Contact your administrator to add one to the system.
+ jobs_project_invalid_configuration_scripts: An executable script is required for your project. Upload a script using the file application.
+ jobs_project_job_deleted: Successfully deleted job %{job_id}
+ jobs_project_job_not_deleted: Cannot delete job %{job_id}
+ jobs_project_job_stopped: Successfully stopped job %{job_id}
+ jobs_project_manifest_updated: Project manifest updated!
+ jobs_project_name_placeholder: Project name
+ jobs_project_name_validation: Project name may only contain letters, digits, dashes, underscores, and spaces
+ jobs_project_not_found: Cannot find project %{project_id}
+ jobs_project_save_error: Cannot save manifest to %{path}
+ jobs_project_validation_error: Invalid Request. Please review the errors below
+ launch: Launch
+ motd_erb_render_error: 'MOTD was not parsed or rendered correctly: %{error_message}'
+ motd_title: Message of the Day
+ nav_all_apps: All Apps
+ nav_develop_docs: Developer Documentation
+ nav_develop_my_sandbox_apps_dev: My Sandbox Apps (Development)
+ nav_develop_my_sandbox_apps_prod: My Shared Apps (Production)
+ nav_develop_title: Develop
+ nav_help_change_password: Change HPC Password
+ nav_help_custom: Nav help custom
+ nav_help_docs: Online Documentation
+ nav_help_support: Contact Support
+ nav_help_support_ticket: Submit Support Ticket
+ nav_help_title: Help
+ nav_help_two_factor: Configure Two-Factor Authentication
+ nav_limit_caption: showing %{subset_count} of %{total_count}
+ nav_logout: Log Out
+ nav_restart_server: Restart Web Server
+ nav_sessions: My Interactive Sessions
+ nav_user: Logged in as %{username}
+ not_grouped: Other Apps
+ pinned_apps_caption_html: A featured subset of all available apps
+ pinned_apps_category: Apps
+ pinned_apps_title: Pinned Apps
+ project: Project
+ quota_additional_message: Consider deleting or archiving files to free up disk space.
+ quota_block: Using %{used} of quota %{available}
quota_block_shared: "(%{used_exclusive} are yours)"
- quota_file: "Using %{used} files of quota %{available} files"
+ quota_file: Using %{used} files of quota %{available} files
quota_file_shared: "(%{used_exclusive} files are yours)"
-
+ quota_reload_message: Reload page to see updated quota. Quotas are updated every 5 minutes.
+ quota_warning_prefix_html: Quota limit warning for
+ recently_used_apps_title: Recently Used Apps
+ remove: Remove
restart_msg_html: |
Your group membership has changed, which affects your access to apps. Your dashboard should restart automatically.
If it doesn't please, click: restart web server.
-
- shared_apps_title: "Shared Apps"
- shared_apps_caption: "Shared by %{owner_title} (%{owner})"
- shared_apps_caption_short: "Shared by %{owner}"
- sharing_catalog_title: "App Catalog"
- sharing_no_shared_apps_html: |
- No custom shared apps available.
- sharing_catalog_msg_html: |
-
A subset of the apps available can be viewed on the %{catalog_link_tag}.
+ save: Save
+ saved_settings_title: Saved Settings
+ settings_invalid_request: Invalid settings submitted
+ settings_updated: Settings updated
+ shared_apps_caption: Shared by %{owner_title} (%{owner})
+ shared_apps_caption_short: Shared by %{owner}
+ shared_apps_title: Shared Apps
+ sharing_catalog_msg_html: "
A subset of the apps available can be viewed on the %{catalog_link_tag}.\n"
+ sharing_catalog_title: App Catalog
+ sharing_no_shared_apps_html: "No custom shared apps available.\n"
sharing_support_msg_html: |
If you don't see the app you are looking for, please
contact support.
sharing_welcome_msg_html: |
Cluster access applications are available from the dropdown menus in the navbar above.
Custom shared apps are available below.
-
- all_apps_table_app_column: "Name"
- all_apps_table_category_column: "Category"
- all_apps_table_sub_category_column: "Sub Category"
-
- not_grouped: "Other Apps"
-
- nav_limit_caption: 'showing %{subset_count} of %{total_count}'
- pinned_apps_category: "Apps"
- pinned_apps_title: 'Pinned Apps'
- pinned_apps_caption_html: 'A featured subset of all available apps'
- development_apps_caption: "Sandbox App"
-
- active_sessions_title: 'Active interactive sessions'
- active_sessions_caption_html: ' view all (%{number_of_sessions})'
-
- recently_used_apps_title: 'Recently Used Apps'
-
- saved_settings_title: 'Saved Settings'
-
- files_download_not_enabled: "Downloading files is not enabled on this server."
- files_directory_download_error_modal_title: "Directory too large to download"
- files_directory_download_unauthorized: "You can only download a directory as zip that you have read and execute access to"
- files_directory_too_large: "The directory is too large to download as a zip. The directory should be less than %{download_directory_size_limit} bytes."
- files_directory_size_calculation_error: "Timeout while trying to determine directory size."
- files_directory_size_calculation_timeout: "Timeout while trying to determine directory size."
- files_directory_size_unknown: "Error with status %{exit_code} when trying to determine directory size: %{error}"
-
- files_remote_disabled: "Remote file support is not enabled"
- files_remote_empty_dir_unsupported: "Remote does not support empty directories"
- files_remote_dir_not_created: "Did not create directory %{path}"
- files_remote_error_listing_remotes: "Error listing Rclone remotes: %{error}"
-
- jobs_project_created: "Project successfully created!"
- jobs_project_deleted: "Project successfully deleted!"
- jobs_project_delete_project_confirmation: "Delete all contents of project directory?"
- jobs_project_not_found: "Cannot find project %{project_id}"
- jobs_project_manifest_updated: "Project manifest updated!"
- jobs_project_name_placeholder: "Project name"
- jobs_project_name_validation: "Project name may only contain letters, digits, dashes, underscores, and spaces"
- jobs_project_directory_placeholder: "Project directory absolute path"
- jobs_project_directory_help_html: "Leave empty and a new directory will be created.
Default location: %{root_directory}"
- jobs_project_description_placeholder: "Project description"
- jobs_create_blank_project: "Create a new project"
- jobs_create_template_project: "Create a new project from a template"
- jobs_new_launcher: "New Launcher"
- jobs_launchers: "Launchers"
-
-
- jobs_project_validation_error: "Invalid Request. Please review the errors below"
- jobs_project_save_error: "Cannot save manifest to %{path}"
- jobs_project_generic_error: "There was an error processing your request: %{error}"
- jobs_project_invalid_configuration_clusters: "An HPC cluster is required. Contact your administrator to add one to the system."
- jobs_project_invalid_configuration_scripts: "An executable script is required for your project. Upload a script using the file application."
-
- jobs_project_job_stopped: "Successfully stopped job %{job_id}"
- jobs_project_job_deleted: "Successfully deleted job %{job_id}"
- jobs_project_job_not_deleted: "Cannot delete job %{job_id}"
-
- jobs_launchers_created: "Launcher successfully created!"
- jobs_launchers_default_created: "A 'hello_world.sh' was also added to this project."
- jobs_launchers_updated: "Launcher manifest updated!"
- jobs_launchers_not_found: "Cannot find Launcher %{launcher_id}"
- jobs_launchers_deleted: "Launcher successfully deleted!"
- jobs_launchers_submitted: "Successfully submitted job %{job_id}."
- jobs_launchers_delete_script_confirmation: "Delete all contents of launcher?"
- jobs_launchers_fixed_field: "Fixed Value"
-
- settings_updated: "Settings updated"
- settings_invalid_request: "Invalid settings submitted"
-
- announcements_required_button: "Accept"
- announcements_dismissible_button: "OK"
-
- bc_saved_settings:
- title: "Saved Settings"
- no_settings_title: "You have no saved settings."
- missing_settings: "Selected saved settings not found."
- launch_title: "Launch %{app_title} with %{settings_name} parameters"
- edit_title: "Edit %{settings_name} saved settings"
- saved_message: "%{settings_name} settings saved"
- delete_title: "Delete %{settings_name} saved settings"
- delete_confirm: "Are you sure?"
- deleted_message: "Saved settings %{settings_name} deleted."
- settings_values_label: "Values"
- outdated_message: "%{app_title} parameters have changed since these settings were created."
-
- auto_log_location_title: "Log Location"
-
- user_configuration:
- support_ticket_error: "support_ticket is misconfigured. \"email\" or \"rt_api\" sections are required in the configuration YAML."
-
- breadcrumbs_support_ticket: "Support Ticket"
+ shell_app_title: "%{cluster_title} Shell Access"
+ show: Show
support_ticket:
- title: "Support Ticket"
- header: "Support Ticket"
- creation_success: "Support ticket email sent to: %{to}"
- generic_error: "There was an error processing your request: %{error}"
- validation_error: "Invalid Request. Please review the error messages below"
+ creation_success: 'Support ticket email sent to: %{to}'
+ generic_error: 'There was an error processing your request: %{error}'
+ header: Support Ticket
+ rt:
+ creation_success: 'Support ticket created in RequestTracker system. TicketId: %{ticket_id}'
+ title: Support Ticket
validation:
- required: "The %{id} is required"
- email: "The %{id} format is invalid. Expected a valid email address"
- attachments_items: "The %{id} are invalid. %{items} added, maximum number of attachments is %{max}"
- attachments_size: "The %{id} are invalid. Maximum attachment size is %{max}"
+ attachments_items: The %{id} are invalid. %{items} added, maximum number of attachments is %{max}
+ attachments_size: The %{id} are invalid. Maximum attachment size is %{max}
+ email: The %{id} format is invalid. Expected a valid email address
items:
- attachments_js: "No more attachments allowed"
+ attachments_js: No more attachments allowed
+ required: The %{id} is required
size:
- attachments_js: "Max attachment size is %{max}. Selected file size is %{size}"
-
- rt:
- creation_success: "Support ticket created in RequestTracker system. TicketId: %{ticket_id}"
-
- custom_pages:
- invalid: "Invalid page code: %{page}. This page has not been configured"
-
-
- # These are basic words that many partials can use
- unknown: "Unknown"
- save: "Save"
- add: "Add"
- remove: "Remove"
- delete: "Delete"
- edit: "Edit"
- show: "Show"
- launch: "Launch"
- project: "Project"
- directory: "Directory"
- close: "Close"
+ attachments_js: Max attachment size is %{max}. Selected file size is %{size}
+ validation_error: Invalid Request. Please review the error messages below
+ system_apps_caption: System Installed App
+ unknown: Unknown
+ uppy: Uppy
+ user_configuration:
+ support_ticket_error: support_ticket is misconfigured. "email" or "rt_api" sections are required in the configuration YAML.
+ welcome_html: |
+ %{logo_img_tag}
+ OnDemand provides an integrated, single access point for all of your HPC resources.
diff --git a/apps/dashboard/config/locales/ja_JP.yml b/apps/dashboard/config/locales/ja_JP.yml
index e3b3282fdf..224800146a 100644
--- a/apps/dashboard/config/locales/ja_JP.yml
+++ b/apps/dashboard/config/locales/ja_JP.yml
@@ -1,15 +1,255 @@
-# Japanese locale
-
+---
ja_JP:
+ activemodel:
+ errors:
+ messages:
+ format: "%{attribute} format invalid or missing"
+ invalid: "%{attribute} is invalid"
+ required: "%{attribute} is required"
+ used: "%{attribute} is already used"
dashboard:
- # unknown: "Unknown"
- save: "溜める"
- add: "付け加え"
- remove: "抜かす"
- delete: "消す"
- edit: "編集する"
- show: "見せる"
- launch: "起動する"
- # project: "Project"
- # directory: "Directory"
- auto_log_location_title: "ログの場所"
\ No newline at end of file
+ active_sessions_caption_html: view all (%{number_of_sessions})
+ active_sessions_title: Active interactive sessions
+ add: 付け加え
+ all_apps_table_app_column: Name
+ all_apps_table_category_column: Category
+ all_apps_table_sub_category_column: Sub Category
+ announcements_dismissible_button: OK
+ announcements_required_button: Accept
+ apps_setup_failure_html: |
+ A problem occurred while initializing your data for this app.
+
+ At your own risk you can still open the app
+ or you can just go back to the dashboard
+
+
+ Share this with the developer of your app:
+ The setup production script is supposed to be idempotent and is run each time
+ the user opens the app through the dashboard.
+ Exception: %{exception_class}
+ %{exception_message}
+ Stack trace:
+ %{exception_trace}
+ apps_system_apps_title: System Apps
+ auto_log_location_title: ログの場所
+ balance_additional_message: Consider requesting additional %{balanace_units}
+ balance_message: "%{units_balance} is %{value}"
+ balance_reload_message_html: Reload page to see updated balance. Balances are updated daily.
Last update was %{last_update}
+ balance_warning_prefix_html: "%{units_balance} warning for"
+ batch_connect_apps_menu_title: Interactive Apps
+ batch_connect_form_attr_cache_error: Unable to use previously cached values, using defaults instead. (%{error_message})
+ batch_connect_form_choose_template_name: Choose a template name
+ batch_connect_form_data_root: data root directory
+ batch_connect_form_invalid: The form.yml has missing options in the %{id} form field.
+ batch_connect_form_launch: Launch
+ batch_connect_form_prefill: Use saved settings
+ batch_connect_form_prefill_error: Oops... Something is wrong with your template
+ batch_connect_form_reset_resolution: Reset Resolution
+ batch_connect_form_save: Save settings
+ batch_connect_form_save_new_template: save new settings
+ batch_connect_form_save_submit: Save settings and close
+ batch_connect_form_select_template: select saved settings
+ batch_connect_form_session_data_html: |
+ * The %{title} session data for this session can be accessed
+ under the %{data_link_tag}.
+ batch_connect_form_template_name_label: setting name
+ batch_connect_form_type_new_name: App settings name
+ batch_connect_form_type_new_name_error: Please type a valid name to continue
+ batch_connect_invalid_form_array: "'form' element in form.yml is not an Array"
+ batch_connect_invalid_form_attributes: "'attributes' element in form.yml is not a Map"
+ batch_connect_missing_cluster: |
+ The cluster was never set. Either set it in form.yml.erb with `cluster` or `form.cluster` or
+ set `cluster` in submit.yml.erb.
+ batch_connect_no_apps: There are no available Interactive Apps.
+ batch_connect_no_sessions: You have no active sessions.
+ batch_connect_sandbox: " [Sandbox]"
+ batch_connect_sessions_cancel_confirm: Are you sure?
+ batch_connect_sessions_cancel_title: Cancel
+ batch_connect_sessions_data_html: |
+ The %{title} session data for this session can be accessed
+ under the %{data_link_tag}.
+ batch_connect_sessions_delete_confirm: Are you sure?
+ batch_connect_sessions_delete_hover: 删除会话
+ batch_connect_sessions_delete_title: Delete
+ batch_connect_sessions_edit_title: Edit new %{title} with this session parameters
+ batch_connect_sessions_error_invalid_job_name_html: |
+ If this job failed to submit because of an invalid job name
+ please ask your administrator to configure OnDemand to set the
+ environment variable OOD_JOB_NAME_ILLEGAL_CHARS.
+ batch_connect_sessions_errors_staging: 'Failed to stage the template with the following error:'
+ batch_connect_sessions_errors_submission: 'Failed to submit session with the following error:'
+ batch_connect_sessions_novnc_launch: Launch %{app_title}
+ batch_connect_sessions_novnc_view_only: View Only (Share-able Link)
+ batch_connect_sessions_path_selector_forbidden_error: You do not have permission to select that directory or file.
+ batch_connect_sessions_relaunch_title: Relaunch
+ batch_connect_sessions_staged_root: staged root directory
+ batch_connect_sessions_stats_created_at: 'Created at:'
+ batch_connect_sessions_stats_host: 'Host:'
+ batch_connect_sessions_stats_session_id: 'Session ID:'
+ batch_connect_sessions_stats_support_ticket: Problems with this session?
+ batch_connect_sessions_stats_support_ticket_link_text: Submit support ticket
+ batch_connect_sessions_stats_time_remaining: 'Time Remaining:'
+ batch_connect_sessions_stats_time_requested: 'Time Requested:'
+ batch_connect_sessions_stats_time_used: 'Time Used:'
+ batch_connect_sessions_stats_undetermined_host: Undetermined
+ batch_connect_sessions_status_bad: Your session has entered a bad state. Feel free to contact support for further information.
+ batch_connect_sessions_status_blurb_cancel_failure: Failed to cancel session.
+ batch_connect_sessions_status_blurb_cancel_success: Session was successfully canceled.
+ batch_connect_sessions_status_blurb_create_success: Session was successfully created.
+ batch_connect_sessions_status_blurb_delete_failure: Failed to delete session.
+ batch_connect_sessions_status_blurb_delete_success: Session was successfully deleted.
+ batch_connect_sessions_status_completed: For debugging purposes, this card will be retained for %{days} more days
+ batch_connect_sessions_status_missing_connection: |
+ This app is missing information required to establish a connection. Please
+ contact support if you see this message.
+ batch_connect_sessions_status_queued: |
+ Please be patient as your job currently sits in queue. The wait time depends
+ on the number of cores as well as time requested.
+ batch_connect_sessions_status_starting: |
+ Your session is currently starting... Please be patient as this process can
+ take a few minutes.
+ batch_connect_sessions_word: Session
+ bc_saved_settings:
+ delete_confirm: Are you sure?
+ delete_title: Delete %{settings_name} saved settings
+ deleted_message: Saved settings %{settings_name} deleted.
+ edit_title: Edit %{settings_name} saved settings
+ launch_title: Launch %{app_title} with %{settings_name} parameters
+ missing_settings: Selected saved settings not found.
+ no_settings_title: You have no saved settings.
+ outdated_message: "%{app_title} parameters have changed since these settings were created."
+ saved_message: "%{settings_name} settings saved"
+ settings_values_label: Values
+ title: Saved Settings
+ breadcrumbs_all_apps: All Apps
+ breadcrumbs_home: Home
+ breadcrumbs_my_sessions: My Interactive Sessions
+ breadcrumbs_support_ticket: Support Ticket
+ close: Close
+ custom_pages:
+ invalid: 'Invalid page code: %{page}. This page has not been configured'
+ delete: 消す
+ development_apps_caption: Sandbox App
+ directory: Directory
+ edit: 編集する
+ files_directory_download_error_modal_title: Directory too large to download
+ files_directory_download_unauthorized: You can only download a directory as zip that you have read and execute access to
+ files_directory_size_calculation_error: Timeout while trying to determine directory size.
+ files_directory_size_calculation_timeout: Timeout while trying to determine directory size.
+ files_directory_size_unknown: 'Error with status %{exit_code} when trying to determine directory size: %{error}'
+ files_directory_too_large: The directory is too large to download as a zip. The directory should be less than %{download_directory_size_limit} bytes.
+ files_download_not_enabled: Downloading files is not enabled on this server.
+ files_remote_dir_not_created: Did not create directory %{path}
+ files_remote_disabled: Remote file support is not enabled
+ files_remote_empty_dir_unsupported: Remote does not support empty directories
+ files_remote_error_listing_remotes: 'Error listing Rclone remotes: %{error}'
+ jobs_create_blank_project: Create a new project
+ jobs_create_template_project: Create a new project from a template
+ jobs_launchers: Launchers
+ jobs_launchers_created: Launcher successfully created!
+ jobs_launchers_default_created: A 'hello_world.sh' was also added to this project.
+ jobs_launchers_delete_script_confirmation: Delete all contents of launcher?
+ jobs_launchers_deleted: Launcher successfully deleted!
+ jobs_launchers_fixed_field: Fixed Value
+ jobs_launchers_not_found: Cannot find Launcher %{launcher_id}
+ jobs_launchers_submitted: Successfully submitted job %{job_id}.
+ jobs_launchers_updated: Launcher manifest updated!
+ jobs_new_launcher: New Launcher
+ jobs_project_created: Project successfully created!
+ jobs_project_delete_project_confirmation: Delete all contents of project directory?
+ jobs_project_deleted: Project successfully deleted!
+ jobs_project_description_placeholder: Project description
+ jobs_project_directory_help_html: 'Leave empty and a new directory will be created.
Default location: %{root_directory}'
+ jobs_project_directory_placeholder: Project directory absolute path
+ jobs_project_generic_error: 'There was an error processing your request: %{error}'
+ jobs_project_invalid_configuration_clusters: An HPC cluster is required. Contact your administrator to add one to the system.
+ jobs_project_invalid_configuration_scripts: An executable script is required for your project. Upload a script using the file application.
+ jobs_project_job_deleted: Successfully deleted job %{job_id}
+ jobs_project_job_not_deleted: Cannot delete job %{job_id}
+ jobs_project_job_stopped: Successfully stopped job %{job_id}
+ jobs_project_manifest_updated: Project manifest updated!
+ jobs_project_name_placeholder: Project name
+ jobs_project_name_validation: Project name may only contain letters, digits, dashes, underscores, and spaces
+ jobs_project_not_found: Cannot find project %{project_id}
+ jobs_project_save_error: Cannot save manifest to %{path}
+ jobs_project_validation_error: Invalid Request. Please review the errors below
+ launch: 起動する
+ motd_erb_render_error: 'MOTD was not parsed or rendered correctly: %{error_message}'
+ motd_title: Message of the Day
+ nav_all_apps: All Apps
+ nav_develop_docs: Developer Documentation
+ nav_develop_my_sandbox_apps_dev: My Sandbox Apps (Development)
+ nav_develop_my_sandbox_apps_prod: My Shared Apps (Production)
+ nav_develop_title: Develop
+ nav_help_change_password: Change HPC Password
+ nav_help_custom: Nav help custom
+ nav_help_docs: Online Documentation
+ nav_help_support: Contact Support
+ nav_help_support_ticket: Submit Support Ticket
+ nav_help_title: Help
+ nav_help_two_factor: Configure Two-Factor Authentication
+ nav_limit_caption: showing %{subset_count} of %{total_count}
+ nav_logout: Log Out
+ nav_restart_server: Restart Web Server
+ nav_sessions: My Interactive Sessions
+ nav_user: Logged in as %{username}
+ not_grouped: Other Apps
+ pinned_apps_caption_html: A featured subset of all available apps
+ pinned_apps_category: Apps
+ pinned_apps_title: Pinned Apps
+ project: Project
+ quota_additional_message: Consider deleting or archiving files to free up disk space.
+ quota_block: Using %{used} of quota %{available}
+ quota_block_shared: "(%{used_exclusive} are yours)"
+ quota_file: Using %{used} files of quota %{available} files
+ quota_file_shared: "(%{used_exclusive} files are yours)"
+ quota_reload_message: Reload page to see updated quota. Quotas are updated every 5 minutes.
+ quota_warning_prefix_html: Quota limit warning for
+ recently_used_apps_title: Recently Used Apps
+ remove: 抜かす
+ restart_msg_html: |
+ Your group membership has changed, which affects your access to apps. Your dashboard should restart automatically.
+ If it doesn't please, click: restart web server.
+ save: 溜める
+ saved_settings_title: Saved Settings
+ settings_invalid_request: Invalid settings submitted
+ settings_updated: Settings updated
+ shared_apps_caption: Shared by %{owner_title} (%{owner})
+ shared_apps_caption_short: Shared by %{owner}
+ shared_apps_title: Shared Apps
+ sharing_catalog_msg_html: "
A subset of the apps available can be viewed on the %{catalog_link_tag}.\n"
+ sharing_catalog_title: App Catalog
+ sharing_no_shared_apps_html: "No custom shared apps available.\n"
+ sharing_support_msg_html: |
+ If you don't see the app you are looking for, please
+ contact support.
+ sharing_welcome_msg_html: |
+ Cluster access applications are available from the dropdown menus in the navbar above.
+
Custom shared apps are available below.
+ shell_app_title: "%{cluster_title} Shell Access"
+ show: 見せる
+ support_ticket:
+ creation_success: 'Support ticket email sent to: %{to}'
+ generic_error: 'There was an error processing your request: %{error}'
+ header: Support Ticket
+ rt:
+ creation_success: 'Support ticket created in RequestTracker system. TicketId: %{ticket_id}'
+ title: Support Ticket
+ validation:
+ attachments_items: The %{id} are invalid. %{items} added, maximum number of attachments is %{max}
+ attachments_size: The %{id} are invalid. Maximum attachment size is %{max}
+ email: The %{id} format is invalid. Expected a valid email address
+ items:
+ attachments_js: No more attachments allowed
+ required: The %{id} is required
+ size:
+ attachments_js: Max attachment size is %{max}. Selected file size is %{size}
+ validation_error: Invalid Request. Please review the error messages below
+ system_apps_caption: System Installed App
+ unknown: Unknown
+ uppy: Uppy
+ user_configuration:
+ support_ticket_error: support_ticket is misconfigured. "email" or "rt_api" sections are required in the configuration YAML.
+ welcome_html: |
+ %{logo_img_tag}
+ OnDemand provides an integrated, single access point for all of your HPC resources.
diff --git a/apps/dashboard/config/locales/zh-CN.yml b/apps/dashboard/config/locales/zh-CN.yml
index bb3c798bdb..e8e0819042 100644
--- a/apps/dashboard/config/locales/zh-CN.yml
+++ b/apps/dashboard/config/locales/zh-CN.yml
@@ -1,50 +1,21 @@
-# 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.
-#
-# To learn more, please read the Rails Internationalization guide
-# available at http://guides.rubyonrails.org/i18n.html.
-
+---
zh-CN:
+ activemodel:
+ errors:
+ messages:
+ format: "%{attribute} format invalid or missing"
+ invalid: "%{attribute} is invalid"
+ required: "%{attribute} is required"
+ used: "%{attribute} is already used"
dashboard:
- # Site specific translations
- batch_connect_sessions_status_bad: "你的会话出现问题。请与支持人员联系以获取更多信息。"
- batch_connect_sessions_status_missing_connection: |
- 此应用缺少建立连接所需的信息。 如果看到此消息,请与支持人员联系。
- batch_connect_sessions_status_queued: |
- 由于您的工作目前正在排队,请耐心等待。 等待时间取决于内核数以及请求的时间。
- nav_help_change_password: "修改HPC密码"
- nav_help_docs: "帮助文档"
- nav_help_support: "联系支持人员"
- nav_help_two_factor: "配置双重身份验证"
-
- quota_additional_message: "考虑删除或归档文件以释放磁盘空间。"
- quota_reload_message: "重新加载页面以查看更新的配额。 配额每5分钟更新一次。"
- quota_warning_prefix_html: "配额限制警告"
-
- balance_additional_message: "考虑申请额外的 %{balanace_units}"
- balance_reload_message_html: "重新加载页面以查看更新后的余额。 余额每天更新。
最后一次更新是 %{last_update}"
- balance_warning_prefix_html: "%{units_balance} 警告"
- balance_message: "%{units_balance} 是 %{value}"
-
- welcome_html: |
- %{logo_img_tag}
- OnDemand为您的所有HPC资源提供了一个集成的单一访问点。
- # General translations
+ active_sessions_caption_html: view all (%{number_of_sessions})
+ active_sessions_title: Active interactive sessions
+ add: Add
+ all_apps_table_app_column: Name
+ all_apps_table_category_column: Category
+ all_apps_table_sub_category_column: Sub Category
+ announcements_dismissible_button: OK
+ announcements_required_button: Accept
apps_setup_failure_html: |
初始化此应用程序的数据时出现问题。
@@ -58,97 +29,223 @@ zh-CN:
%{exception_message}
堆栈跟踪:
%{exception_trace}
- apps_system_apps_title: "系统应用"
-
- batch_connect_form_choose_template_name: "选择模版名称"
- batch_connect_form_data_root: "数据根目录"
- batch_connect_form_launch: "启动"
- batch_connect_form_prefill: "使用模版预填写"
- batch_connect_form_prefill_error: "诶呀,你的模版有问题"
- batch_connect_form_reset_resolution: "重置分辨率"
- batch_connect_form_save: "保存为模版"
- batch_connect_form_save_new_template: "保存为一个新模版"
- batch_connect_form_select_template: "选择一个模版"
- batch_connect_form_session_data_html: |
- * 你可以通过%{data_link_tag}来获取会话数据%{title}。
- batch_connect_form_type_new_name: "在这里输入你的新模版名称"
- batch_connect_form_type_new_name_error: "请输入一个有效的名称以继续"
- batch_connect_no_apps: "没有可用的互动应用程序。"
- batch_connect_no_sessions: "您没有可运行的会话。"
+ apps_system_apps_title: 系统应用
+ auto_log_location_title: 日志位置
+ balance_additional_message: 考虑申请额外的 %{balanace_units}
+ balance_message: "%{units_balance} 是 %{value}"
+ balance_reload_message_html: 重新加载页面以查看更新后的余额。 余额每天更新。
最后一次更新是 %{last_update}
+ balance_warning_prefix_html: "%{units_balance} 警告"
+ batch_connect_apps_menu_title: Interactive Apps
+ batch_connect_form_attr_cache_error: Unable to use previously cached values, using defaults instead. (%{error_message})
+ batch_connect_form_choose_template_name: 选择模版名称
+ batch_connect_form_data_root: 数据根目录
+ batch_connect_form_invalid: The form.yml has missing options in the %{id} form field.
+ batch_connect_form_launch: 启动
+ batch_connect_form_prefill: 使用模版预填写
+ batch_connect_form_prefill_error: 诶呀,你的模版有问题
+ batch_connect_form_reset_resolution: 重置分辨率
+ batch_connect_form_save: 保存为模版
+ batch_connect_form_save_new_template: 保存为一个新模版
+ batch_connect_form_save_submit: Save settings and close
+ batch_connect_form_select_template: 选择一个模版
+ batch_connect_form_session_data_html: "* 你可以通过%{data_link_tag}来获取会话数据%{title}。\n"
+ batch_connect_form_template_name_label: setting name
+ batch_connect_form_type_new_name: 在这里输入你的新模版名称
+ batch_connect_form_type_new_name_error: 请输入一个有效的名称以继续
+ batch_connect_invalid_form_array: "'form' element in form.yml is not an Array"
+ batch_connect_invalid_form_attributes: "'attributes' element in form.yml is not a Map"
+ batch_connect_missing_cluster: |
+ The cluster was never set. Either set it in form.yml.erb with `cluster` or `form.cluster` or
+ set `cluster` in submit.yml.erb.
+ batch_connect_no_apps: 没有可用的互动应用程序。
+ batch_connect_no_sessions: 您没有可运行的会话。
batch_connect_sandbox: " [Sandbox]"
- batch_connect_sessions_data_html: |
- 你可以通过%{data_link_tag}来获取会话数据%{title}。
- batch_connect_sessions_error_invalid_job_name_html: |
- 如果由于作业名称无效而导致该作业提交失败,请要求管理员配置OnDemand来设置环境变量OOD_JOB_NAME_ILLEGAL_CHARS。
- batch_connect_sessions_delete_confirm: "你确定吗?"
- batch_connect_sessions_delete_hover: "删除会话"
- batch_connect_sessions_delete_title: "删除"
- batch_connect_sessions_errors_staging: "无法调用模板,并显示以下错误:"
- batch_connect_sessions_errors_submission: "提交会话失败,出现以下错误:"
- batch_connect_sessions_novnc_launch: "启动%{app_title}"
- batch_connect_sessions_novnc_view_only: "只读 (共享链接)"
- batch_connect_sessions_staged_root: "暂存根目录"
- batch_connect_sessions_stats_created_at: "创建于:"
- batch_connect_sessions_stats_host: "主机:"
- batch_connect_sessions_stats_session_id: "会话ID:"
- batch_connect_sessions_stats_time_remaining: "剩余时间:"
- batch_connect_sessions_stats_time_requested: "所需时间:"
- batch_connect_sessions_stats_time_used: "使用时间:"
- batch_connect_sessions_stats_undetermined_host: "未定"
- batch_connect_sessions_status_blurb_create_success: "会话已成功创建。"
- batch_connect_sessions_status_blurb_delete_failure: "删除会话失败。"
- batch_connect_sessions_status_blurb_delete_success: "会话已成功删除."
- batch_connect_sessions_status_starting: |
- 您的会话目前正在启动...请耐心等待,因为此过程可能需要几分钟。
- breadcrumbs_all_apps: "所有应用"
- breadcrumbs_home: "主页"
- breadcrumbs_my_sessions: "我的交互会话"
+ batch_connect_sessions_cancel_confirm: Are you sure?
+ batch_connect_sessions_cancel_title: Cancel
+ batch_connect_sessions_data_html: '你可以通过%{data_link_tag}来获取会话数据%{title}。
+
+'
+ batch_connect_sessions_delete_confirm: 你确定吗?
+ batch_connect_sessions_delete_hover: 删除会话
+ batch_connect_sessions_delete_title: 删除
+ batch_connect_sessions_edit_title: Edit new %{title} with this session parameters
+ batch_connect_sessions_error_invalid_job_name_html: '如果由于作业名称无效而导致该作业提交失败,请要求管理员配置OnDemand来设置环境变量OOD_JOB_NAME_ILLEGAL_CHARS。
+
+'
+ batch_connect_sessions_errors_staging: 无法调用模板,并显示以下错误:
+ batch_connect_sessions_errors_submission: 提交会话失败,出现以下错误:
+ batch_connect_sessions_novnc_launch: 启动%{app_title}
+ batch_connect_sessions_novnc_view_only: 只读 (共享链接)
+ batch_connect_sessions_path_selector_forbidden_error: You do not have permission to select that directory or file.
+ batch_connect_sessions_relaunch_title: Relaunch
+ batch_connect_sessions_staged_root: 暂存根目录
+ batch_connect_sessions_stats_created_at: 创建于:
+ batch_connect_sessions_stats_host: 主机:
+ batch_connect_sessions_stats_session_id: 会话ID:
+ batch_connect_sessions_stats_support_ticket: Problems with this session?
+ batch_connect_sessions_stats_support_ticket_link_text: Submit support ticket
+ batch_connect_sessions_stats_time_remaining: 剩余时间:
+ batch_connect_sessions_stats_time_requested: 所需时间:
+ batch_connect_sessions_stats_time_used: 使用时间:
+ batch_connect_sessions_stats_undetermined_host: 未定
+ batch_connect_sessions_status_bad: 你的会话出现问题。请与支持人员联系以获取更多信息。
+ batch_connect_sessions_status_blurb_cancel_failure: Failed to cancel session.
+ batch_connect_sessions_status_blurb_cancel_success: Session was successfully canceled.
+ batch_connect_sessions_status_blurb_create_success: 会话已成功创建。
+ batch_connect_sessions_status_blurb_delete_failure: 删除会话失败。
+ batch_connect_sessions_status_blurb_delete_success: 会话已成功删除.
+ batch_connect_sessions_status_completed: For debugging purposes, this card will be retained for %{days} more days
+ batch_connect_sessions_status_missing_connection: '此应用缺少建立连接所需的信息。 如果看到此消息,请与支持人员联系。
- motd_title: "每日信息"
+'
+ batch_connect_sessions_status_queued: '由于您的工作目前正在排队,请耐心等待。 等待时间取决于内核数以及请求的时间。
- nav_all_apps: "所有应用"
- nav_develop_docs: "开发者文档"
- nav_develop_my_sandbox_apps_dev: "我的沙盒应用 (Development)"
- nav_develop_my_sandbox_apps_prod: "我的沙盒应用 (Production)"
- nav_develop_title: "开发"
- nav_help_title: "帮助"
- nav_logout: "登出"
- nav_restart_server: "重启网页服务器"
- nav_sessions: "我的交互会话" # Note duplication with breadcrumbs_my_sessions
- nav_user: "以用户名:%{username}登陆"
+'
+ batch_connect_sessions_status_starting: '您的会话目前正在启动...请耐心等待,因为此过程可能需要几分钟。
- quota_block: "配额使用量%{used} 可用 %{available}"
+'
+ batch_connect_sessions_word: Session
+ bc_saved_settings:
+ delete_confirm: Are you sure?
+ delete_title: Delete %{settings_name} saved settings
+ deleted_message: Saved settings %{settings_name} deleted.
+ edit_title: Edit %{settings_name} saved settings
+ launch_title: Launch %{app_title} with %{settings_name} parameters
+ missing_settings: Selected saved settings not found.
+ no_settings_title: You have no saved settings.
+ outdated_message: "%{app_title} parameters have changed since these settings were created."
+ saved_message: "%{settings_name} settings saved"
+ settings_values_label: Values
+ title: Saved Settings
+ breadcrumbs_all_apps: 所有应用
+ breadcrumbs_home: 主页
+ breadcrumbs_my_sessions: 我的交互会话
+ breadcrumbs_support_ticket: Support Ticket
+ close: Close
+ custom_pages:
+ invalid: 'Invalid page code: %{page}. This page has not been configured'
+ delete: 删除
+ development_apps_caption: Sandbox App
+ directory: Directory
+ edit: 编辑
+ files_directory_download_error_modal_title: Directory too large to download
+ files_directory_download_unauthorized: You can only download a directory as zip that you have read and execute access to
+ files_directory_size_calculation_error: Timeout while trying to determine directory size.
+ files_directory_size_calculation_timeout: Timeout while trying to determine directory size.
+ files_directory_size_unknown: 'Error with status %{exit_code} when trying to determine directory size: %{error}'
+ files_directory_too_large: The directory is too large to download as a zip. The directory should be less than %{download_directory_size_limit} bytes.
+ files_download_not_enabled: Downloading files is not enabled on this server.
+ files_remote_dir_not_created: Did not create directory %{path}
+ files_remote_disabled: Remote file support is not enabled
+ files_remote_empty_dir_unsupported: Remote does not support empty directories
+ files_remote_error_listing_remotes: 'Error listing Rclone remotes: %{error}'
+ jobs_create_blank_project: Create a new project
+ jobs_create_template_project: Create a new project from a template
+ jobs_launchers: Launchers
+ jobs_launchers_created: Launcher successfully created!
+ jobs_launchers_default_created: A 'hello_world.sh' was also added to this project.
+ jobs_launchers_delete_script_confirmation: Delete all contents of launcher?
+ jobs_launchers_deleted: Launcher successfully deleted!
+ jobs_launchers_fixed_field: Fixed Value
+ jobs_launchers_not_found: Cannot find Launcher %{launcher_id}
+ jobs_launchers_submitted: Successfully submitted job %{job_id}.
+ jobs_launchers_updated: Launcher manifest updated!
+ jobs_new_launcher: New Launcher
+ jobs_project_created: Project successfully created!
+ jobs_project_delete_project_confirmation: Delete all contents of project directory?
+ jobs_project_deleted: Project successfully deleted!
+ jobs_project_description_placeholder: Project description
+ jobs_project_directory_help_html: 'Leave empty and a new directory will be created.
Default location: %{root_directory}'
+ jobs_project_directory_placeholder: Project directory absolute path
+ jobs_project_generic_error: 'There was an error processing your request: %{error}'
+ jobs_project_invalid_configuration_clusters: An HPC cluster is required. Contact your administrator to add one to the system.
+ jobs_project_invalid_configuration_scripts: An executable script is required for your project. Upload a script using the file application.
+ jobs_project_job_deleted: Successfully deleted job %{job_id}
+ jobs_project_job_not_deleted: Cannot delete job %{job_id}
+ jobs_project_job_stopped: Successfully stopped job %{job_id}
+ jobs_project_manifest_updated: Project manifest updated!
+ jobs_project_name_placeholder: Project name
+ jobs_project_name_validation: Project name may only contain letters, digits, dashes, underscores, and spaces
+ jobs_project_not_found: Cannot find project %{project_id}
+ jobs_project_save_error: Cannot save manifest to %{path}
+ jobs_project_validation_error: Invalid Request. Please review the errors below
+ launch: 启动
+ motd_erb_render_error: 'MOTD was not parsed or rendered correctly: %{error_message}'
+ motd_title: 每日信息
+ nav_all_apps: 所有应用
+ nav_develop_docs: 开发者文档
+ nav_develop_my_sandbox_apps_dev: 我的沙盒应用 (Development)
+ nav_develop_my_sandbox_apps_prod: 我的沙盒应用 (Production)
+ nav_develop_title: 开发
+ nav_help_change_password: 修改HPC密码
+ nav_help_custom: Nav help custom
+ nav_help_docs: 帮助文档
+ nav_help_support: 联系支持人员
+ nav_help_support_ticket: Submit Support Ticket
+ nav_help_title: 帮助
+ nav_help_two_factor: 配置双重身份验证
+ nav_limit_caption: showing %{subset_count} of %{total_count}
+ nav_logout: 登出
+ nav_restart_server: 重启网页服务器
+ nav_sessions: 我的交互会话
+ nav_user: 以用户名:%{username}登陆
+ not_grouped: Other Apps
+ pinned_apps_caption_html: A featured subset of all available apps
+ pinned_apps_category: Apps
+ pinned_apps_title: Pinned Apps
+ project: Project
+ quota_additional_message: 考虑删除或归档文件以释放磁盘空间。
+ quota_block: 配额使用量%{used} 可用 %{available}
quota_block_shared: "(您的配额%{used_exclusive} )"
- quota_file: "文件配额使用量%{used} 可用 %{available}"
+ quota_file: 文件配额使用量%{used} 可用 %{available}
quota_file_shared: "(您的文件配额%{used_exclusive})"
-
+ quota_reload_message: 重新加载页面以查看更新的配额。 配额每5分钟更新一次。
+ quota_warning_prefix_html: 配额限制警告
+ recently_used_apps_title: Recently Used Apps
+ remove: Remove
restart_msg_html: |
您的小组成员资格已更改,这会影响您对应用程序的访问。 您的dashboard将自动重启。
如果没有重启,请点击 来重启网页服务器.
- shared_apps_title: "共享应用"
- # shared_apps_caption: "Shared by %{owner_title} (%{owner})"
- # shared_apps_caption_short: "Shared by %{owner}"
- sharing_catalog_title: "应用目录"
- sharing_no_shared_apps_html: |
- 没有可用的自定义共享应用。
- sharing_catalog_msg_html: |
-
可以在%{catalog_link_tag}上查看可用应用程序的子集。
+ save: Save
+ saved_settings_title: Saved Settings
+ settings_invalid_request: Invalid settings submitted
+ settings_updated: Settings updated
+ shared_apps_caption: Shared by %{owner_title} (%{owner})
+ shared_apps_caption_short: Shared by %{owner}
+ shared_apps_title: 共享应用
+ sharing_catalog_msg_html: "
可以在%{catalog_link_tag}上查看可用应用程序的子集。\n"
+ sharing_catalog_title: 应用目录
+ sharing_no_shared_apps_html: "没有可用的自定义共享应用。\n"
sharing_support_msg_html: |
如果您没有找到所需的应用程序,请
联系支持.
sharing_welcome_msg_html: |
可以从上方导航栏中的下拉菜单访问群集访问应用程序。
自定义共享应用程序可以在下面使用。
-
- auto_log_location_title: "日志位置"
-
- # all_apps_table_app_column: "Name"
- # all_apps_table_category_column: "Category"
- # all_apps_table_sub_category_column: "Sub Category"
-
- # unknown: "Unknown"
- delete: "删除"
- edit: "编辑"
- show: "显示"
- launch: "启动"
- # development_apps_caption: "Sandbox App"
+ shell_app_title: "%{cluster_title} Shell Access"
+ show: 显示
+ support_ticket:
+ creation_success: 'Support ticket email sent to: %{to}'
+ generic_error: 'There was an error processing your request: %{error}'
+ header: Support Ticket
+ rt:
+ creation_success: 'Support ticket created in RequestTracker system. TicketId: %{ticket_id}'
+ title: Support Ticket
+ validation:
+ attachments_items: The %{id} are invalid. %{items} added, maximum number of attachments is %{max}
+ attachments_size: The %{id} are invalid. Maximum attachment size is %{max}
+ email: The %{id} format is invalid. Expected a valid email address
+ items:
+ attachments_js: No more attachments allowed
+ required: The %{id} is required
+ size:
+ attachments_js: Max attachment size is %{max}. Selected file size is %{size}
+ validation_error: Invalid Request. Please review the error messages below
+ system_apps_caption: System Installed App
+ unknown: Unknown
+ uppy: Uppy
+ user_configuration:
+ support_ticket_error: support_ticket is misconfigured. "email" or "rt_api" sections are required in the configuration YAML.
+ welcome_html: |
+ %{logo_img_tag}
+ OnDemand为您的所有HPC资源提供了一个集成的单一访问点。
diff --git a/apps/dashboard/test/unit/i18n_test.rb b/apps/dashboard/test/unit/i18n_test.rb
new file mode 100644
index 0000000000..770097814c
--- /dev/null
+++ b/apps/dashboard/test/unit/i18n_test.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+=begin
+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
+=end
\ No newline at end of file