bulkrax 9.3.4 → 9.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/app/assets/javascripts/bulkrax/application.js +2 -1
- data/app/assets/javascripts/bulkrax/bulkrax.js +13 -4
- data/app/assets/javascripts/bulkrax/bulkrax_utils.js +96 -0
- data/app/assets/javascripts/bulkrax/datatables.js +1 -0
- data/app/assets/javascripts/bulkrax/entries.js +17 -10
- data/app/assets/javascripts/bulkrax/importers.js.erb +9 -2
- data/app/assets/javascripts/bulkrax/importers_stepper.js +2420 -0
- data/app/assets/stylesheets/bulkrax/application.css +1 -1
- data/app/assets/stylesheets/bulkrax/import_export.scss +9 -2
- data/app/assets/stylesheets/bulkrax/stepper/_header.scss +83 -0
- data/app/assets/stylesheets/bulkrax/stepper/_mixins.scss +26 -0
- data/app/assets/stylesheets/bulkrax/stepper/_navigation.scss +103 -0
- data/app/assets/stylesheets/bulkrax/stepper/_responsive.scss +46 -0
- data/app/assets/stylesheets/bulkrax/stepper/_review.scss +92 -0
- data/app/assets/stylesheets/bulkrax/stepper/_settings.scss +106 -0
- data/app/assets/stylesheets/bulkrax/stepper/_success.scss +26 -0
- data/app/assets/stylesheets/bulkrax/stepper/_summary.scss +171 -0
- data/app/assets/stylesheets/bulkrax/stepper/_upload.scss +339 -0
- data/app/assets/stylesheets/bulkrax/stepper/_validation.scss +237 -0
- data/app/assets/stylesheets/bulkrax/stepper/_variables.scss +46 -0
- data/app/assets/stylesheets/bulkrax/stepper.scss +32 -0
- data/app/controllers/bulkrax/guided_imports_controller.rb +175 -0
- data/app/controllers/bulkrax/importers_controller.rb +34 -28
- data/app/controllers/concerns/bulkrax/guided_import_demo_scenarios.rb +201 -0
- data/app/controllers/concerns/bulkrax/importer_file_handler.rb +217 -0
- data/app/factories/bulkrax/object_factory.rb +3 -2
- data/app/factories/bulkrax/valkyrie_object_factory.rb +61 -17
- data/app/jobs/bulkrax/export_work_job.rb +1 -3
- data/app/jobs/bulkrax/importer_job.rb +11 -4
- data/app/models/bulkrax/csv_entry.rb +27 -7
- data/app/models/bulkrax/entry.rb +4 -0
- data/app/models/bulkrax/importer.rb +31 -1
- data/app/models/concerns/bulkrax/has_matchers.rb +2 -2
- data/app/models/concerns/bulkrax/importer_exporter_behavior.rb +6 -5
- data/app/parsers/bulkrax/application_parser.rb +31 -5
- data/app/parsers/bulkrax/csv_parser.rb +42 -10
- data/app/parsers/concerns/bulkrax/csv_parser/csv_template_generation.rb +73 -0
- data/app/parsers/concerns/bulkrax/csv_parser/csv_validation.rb +133 -0
- data/app/parsers/concerns/bulkrax/csv_parser/csv_validation_helpers.rb +282 -0
- data/app/parsers/concerns/bulkrax/csv_parser/csv_validation_hierarchy.rb +96 -0
- data/app/services/bulkrax/csv_template/column_builder.rb +60 -0
- data/app/services/bulkrax/csv_template/column_descriptor.rb +58 -0
- data/app/services/bulkrax/csv_template/csv_builder.rb +83 -0
- data/app/services/bulkrax/csv_template/explanation_builder.rb +57 -0
- data/app/services/bulkrax/csv_template/field_analyzer.rb +56 -0
- data/app/services/bulkrax/csv_template/file_path_generator.rb +47 -0
- data/app/services/bulkrax/csv_template/file_validator.rb +68 -0
- data/app/services/bulkrax/csv_template/mapping_manager.rb +55 -0
- data/app/services/bulkrax/csv_template/model_loader.rb +50 -0
- data/app/services/bulkrax/csv_template/row_builder.rb +35 -0
- data/app/services/bulkrax/csv_template/schema_analyzer.rb +70 -0
- data/app/services/bulkrax/csv_template/split_formatter.rb +44 -0
- data/app/services/bulkrax/csv_template/value_determiner.rb +68 -0
- data/app/services/bulkrax/stepper_response_formatter.rb +347 -0
- data/app/services/bulkrax/validation_error_csv_builder.rb +99 -0
- data/app/validators/bulkrax/csv_row/child_reference.rb +56 -0
- data/app/validators/bulkrax/csv_row/circular_reference.rb +71 -0
- data/app/validators/bulkrax/csv_row/controlled_vocabulary.rb +74 -0
- data/app/validators/bulkrax/csv_row/duplicate_identifier.rb +63 -0
- data/app/validators/bulkrax/csv_row/missing_source_identifier.rb +31 -0
- data/app/validators/bulkrax/csv_row/parent_reference.rb +59 -0
- data/app/validators/bulkrax/csv_row/required_values.rb +64 -0
- data/app/views/bulkrax/entries/_parsed_metadata.html.erb +1 -1
- data/app/views/bulkrax/entries/_raw_metadata.html.erb +1 -1
- data/app/views/bulkrax/entries/show.html.erb +6 -6
- data/app/views/bulkrax/exporters/_form.html.erb +19 -43
- data/app/views/bulkrax/exporters/edit.html.erb +2 -2
- data/app/views/bulkrax/exporters/index.html.erb +5 -5
- data/app/views/bulkrax/exporters/new.html.erb +3 -5
- data/app/views/bulkrax/exporters/show.html.erb +3 -3
- data/app/views/bulkrax/guided_imports/new.html.erb +567 -0
- data/app/views/bulkrax/importers/_bagit_fields.html.erb +9 -9
- data/app/views/bulkrax/importers/_browse_everything.html.erb +1 -1
- data/app/views/bulkrax/importers/_csv_fields.html.erb +11 -11
- data/app/views/bulkrax/importers/_edit_form_buttons.html.erb +23 -23
- data/app/views/bulkrax/importers/_edit_item_buttons.html.erb +2 -2
- data/app/views/bulkrax/importers/_file_uploader.html.erb +3 -3
- data/app/views/bulkrax/importers/_form.html.erb +4 -5
- data/app/views/bulkrax/importers/_oai_fields.html.erb +8 -18
- data/app/views/bulkrax/importers/_xml_fields.html.erb +13 -13
- data/app/views/bulkrax/importers/edit.html.erb +2 -2
- data/app/views/bulkrax/importers/index.html.erb +19 -14
- data/app/views/bulkrax/importers/new.html.erb +10 -9
- data/app/views/bulkrax/importers/show.html.erb +23 -7
- data/app/views/bulkrax/importers/upload_corrected_entries.html.erb +6 -6
- data/app/views/bulkrax/shared/_bulkrax_errors.html.erb +11 -11
- data/app/views/bulkrax/shared/_bulkrax_field_mapping.html.erb +3 -3
- data/config/i18n-tasks.yml +195 -0
- data/config/locales/bulkrax.de.yml +504 -0
- data/config/locales/bulkrax.en.yml +487 -28
- data/config/locales/bulkrax.es.yml +504 -0
- data/config/locales/bulkrax.fr.yml +504 -0
- data/config/locales/bulkrax.it.yml +504 -0
- data/config/locales/bulkrax.pt-BR.yml +504 -0
- data/config/locales/bulkrax.zh.yml +503 -0
- data/config/routes.rb +10 -0
- data/lib/bulkrax/data/demo_scenarios.json +2235 -0
- data/lib/bulkrax/version.rb +1 -1
- data/lib/bulkrax.rb +31 -3
- data/lib/tasks/bulkrax_tasks.rake +0 -102
- metadata +55 -3
- /data/{app/services → lib}/wings/custom_queries/find_by_source_identifier.rb +0 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
---
|
|
2
|
+
zh:
|
|
3
|
+
bulkrax:
|
|
4
|
+
admin:
|
|
5
|
+
sidebar:
|
|
6
|
+
exporters: 出口商
|
|
7
|
+
importers: 进口商
|
|
8
|
+
cancel: 取消
|
|
9
|
+
entry:
|
|
10
|
+
labels:
|
|
11
|
+
item_link: 物品链接
|
|
12
|
+
item_link_error: 无法检索项目 (%{message})
|
|
13
|
+
item_no_association: 此条目或类别中未找到相关项目。
|
|
14
|
+
item_not_imported: 项目尚未成功导入。
|
|
15
|
+
parsed_metadata: 已解析的元数据
|
|
16
|
+
raw_metadata: 原始元数据
|
|
17
|
+
record_link: "%{record_type} 链接"
|
|
18
|
+
unknown: 未知
|
|
19
|
+
exporter:
|
|
20
|
+
labels:
|
|
21
|
+
all: 全部
|
|
22
|
+
collection: 收藏
|
|
23
|
+
export_from: 导出
|
|
24
|
+
export_source: 出口来源
|
|
25
|
+
export_type: 出口类型
|
|
26
|
+
field_mapping: 田间测绘
|
|
27
|
+
full: 元数据和文件
|
|
28
|
+
generated_metadata: 是否包含生成的元数据?
|
|
29
|
+
importer: 进口商
|
|
30
|
+
include_thumbnails: 是否包含缩略图?
|
|
31
|
+
limit: 限制
|
|
32
|
+
metadata: 仅元数据
|
|
33
|
+
name: 姓名
|
|
34
|
+
parser_fields: 解析器字段
|
|
35
|
+
parser_klass: 解析器
|
|
36
|
+
user: 用户
|
|
37
|
+
worktype: 工作类型
|
|
38
|
+
prompts:
|
|
39
|
+
export_from: 请选择导出源
|
|
40
|
+
export_type: 请选择导出类型
|
|
41
|
+
select_from_list: 从列表中选择
|
|
42
|
+
start_typing: 开始输入……
|
|
43
|
+
validations:
|
|
44
|
+
errors_prohibited:
|
|
45
|
+
one: 1 个错误导致此导出器无法保存:
|
|
46
|
+
other: "%{count} 错误导致无法保存此导出器:"
|
|
47
|
+
headings:
|
|
48
|
+
importers: 进口商
|
|
49
|
+
upload_corrected_entries: 上传更正后的条目:%{name}
|
|
50
|
+
importer:
|
|
51
|
+
bagit:
|
|
52
|
+
bags_to_import: 进口袋或包:
|
|
53
|
+
file_style:
|
|
54
|
+
cloud: 添加云文件
|
|
55
|
+
server_path: 指定服务器上的路径
|
|
56
|
+
upload: 上传文件
|
|
57
|
+
file_upload_hint: 文件上传和云端文件上传必须是包含单个 BagIt Bag 的 Zip 文件,或者包含多个 BagIt Bag 的文件夹。
|
|
58
|
+
server_path_hint: 服务器路径可以指向 BagIt Bag、包含 BagIt Bag 的文件夹或包含 BagIt Bag 或 BagIt Bag 的 zip 文件。
|
|
59
|
+
visibility:
|
|
60
|
+
institution: 机构
|
|
61
|
+
private: 私人的
|
|
62
|
+
public: 民众
|
|
63
|
+
browse_everything:
|
|
64
|
+
add_cloud_files: 添加云文件
|
|
65
|
+
csv:
|
|
66
|
+
add_csv_to_import: 添加要导入的 CSV 或 ZIP 文件:
|
|
67
|
+
add_files_hint: 选择要上传的文件。文件名必须唯一,并且文件名必须在随附的 CSV 文件中名为“file”的列中引用。
|
|
68
|
+
add_files_to_import: 添加要导入的文件:
|
|
69
|
+
file_style:
|
|
70
|
+
existing_entries: 现有条目
|
|
71
|
+
server_path: 指定服务器上的路径
|
|
72
|
+
upload: 上传文件
|
|
73
|
+
labels:
|
|
74
|
+
default_visibility: 默认可见性
|
|
75
|
+
visibility:
|
|
76
|
+
institution: 机构
|
|
77
|
+
private: 私人的
|
|
78
|
+
public: 民众
|
|
79
|
+
edit_form:
|
|
80
|
+
modal_title: 更新导入程序的选项
|
|
81
|
+
remove_and_rerun_hint: 删除所有作品,然后从头开始重新导入。这将删除所有文件和关联关系,并且自上次导入以来所做的任何编辑都将丢失。
|
|
82
|
+
update_and_harvest_hint: 更新导入器表单中的值,并更新源中已更改的项目。
|
|
83
|
+
update_and_import_hint: 更新导入器表单中的值,并首次运行导入器。
|
|
84
|
+
update_and_re_harvest_hint: 更新导入器表单中的值,并从源重新创建所有项目。
|
|
85
|
+
update_and_replace_files_hint: 更新导入器表单中的值并更新元数据。彻底删除与此导入器关联的所有文件,并从头开始重新创建这些文件。
|
|
86
|
+
update_metadata_and_files_hint: 更新导入表单中的值,并更新所有作品的元数据和文件。创建文件的新版本并保留旧版本。
|
|
87
|
+
update_metadata_hint: 更新导入表单中的值,并更新所有作品的元数据。请勿更新任何文件。
|
|
88
|
+
update_only_hint: 仅更新导入表单中的值。请勿导入任何作品或收藏集的元数据或文件。
|
|
89
|
+
update_only_no_update_hint: 仅更新导入表单中的值。请勿更新任何作品或合集的元数据或文件。
|
|
90
|
+
file_uploader:
|
|
91
|
+
add_files: 添加文件
|
|
92
|
+
cancel_upload: 取消上传
|
|
93
|
+
dropzone: 文件拖放到这里即可上传
|
|
94
|
+
hints:
|
|
95
|
+
default_visibility: 如果您的 CSV 文件包含可见性字段,它将覆盖默认设置。
|
|
96
|
+
override_rights_statement: 如果选中,则始终使用选定的权限语句。如果未选中,则使用记录中的权限或权限语句,并且仅当 dc:rights 为空时才使用提供的值。
|
|
97
|
+
labels:
|
|
98
|
+
admin_set: 管理集
|
|
99
|
+
entry_id: 条目 ID
|
|
100
|
+
exporter: 出口商
|
|
101
|
+
frequency: 频率
|
|
102
|
+
identifier: 标识符
|
|
103
|
+
importer: 进口商
|
|
104
|
+
limit: 限制
|
|
105
|
+
name: 姓名
|
|
106
|
+
parser_klass: 解析器
|
|
107
|
+
total_collections: 总收藏
|
|
108
|
+
total_file_sets: 文件集总数
|
|
109
|
+
total_work_entries: 总作品
|
|
110
|
+
type: 类型
|
|
111
|
+
user: 用户
|
|
112
|
+
oai:
|
|
113
|
+
hints:
|
|
114
|
+
metadata_prefix: 例如 oai_dc、dcterms 或 oai_qdc
|
|
115
|
+
override_rights_statement: 如果选中,则始终使用选定的权限语句。如果未选中,则使用记录中的 dc:rights,并且仅当 dc:rights 为空时才使用提供的值。
|
|
116
|
+
thumbnail_url_html: |
|
|
117
|
+
<p>
|
|
118
|
+
缩略图 URL 允许对 URL 中的任何已识别信息进行基本模板化和替换。例如:
|
|
119
|
+
</p>
|
|
120
|
+
<p>
|
|
121
|
+
http://commons.ptsem.edu/?cover=<%= identifier.split(':').last %>&size=L
|
|
122
|
+
</p>
|
|
123
|
+
<p>
|
|
124
|
+
http://commons.ptsem.edu/?cover=<%= record.header.identifier.split(':').last %>&size=L
|
|
125
|
+
</p>
|
|
126
|
+
labels:
|
|
127
|
+
set: 设置(源)
|
|
128
|
+
refresh_sets: 刷新集
|
|
129
|
+
visibility:
|
|
130
|
+
institution: 机构
|
|
131
|
+
private: 私人的
|
|
132
|
+
public: 民众
|
|
133
|
+
upload_corrected_entries:
|
|
134
|
+
click_here: 点击这里
|
|
135
|
+
csv_only: 仅允许上传CSV文件。
|
|
136
|
+
instructions_html: "<b>仅</b>上传已更正的<b>%{name}</b>导入器条目。要导出失败的条目以进行更正,"
|
|
137
|
+
guided_import:
|
|
138
|
+
breadcrumb: 引导式导入
|
|
139
|
+
flash:
|
|
140
|
+
demo_not_available: 暂无演示场景
|
|
141
|
+
import_started: 导入操作已成功开始。
|
|
142
|
+
js:
|
|
143
|
+
admin_set_prompt: 选择一个管理员集...
|
|
144
|
+
already_uploaded: 以下文件已上传:
|
|
145
|
+
appears_in_collections: 出现在 %{count} 系列中
|
|
146
|
+
circular_reference: 检测到圆形参考
|
|
147
|
+
csv_limit: 仅允许添加一个 CSV 文件。以下文件未添加:
|
|
148
|
+
demo_data_not_loaded: 演示数据未加载。请尝试重新选择场景。
|
|
149
|
+
demo_load_failed: 演示场景加载失败
|
|
150
|
+
demo_network_error: 网络错误 - 请检查您的连接
|
|
151
|
+
demo_server_error: 加载演示场景时出现服务器错误
|
|
152
|
+
demo_timeout: 加载演示场景时请求超时
|
|
153
|
+
detected_in_zip: 在 ZIP 中检测到
|
|
154
|
+
file_upload_error: 文件上传错误
|
|
155
|
+
files_too_large: 文件过大。请减小文件大小后重试。
|
|
156
|
+
gauge_import_size: 导入尺寸:%{count} 件
|
|
157
|
+
gauge_large: 大的
|
|
158
|
+
gauge_large_msg: 大型导入操作耗时更长,调试难度也更大。我们强烈建议将导入操作拆分成若干批次,每批次不超过 %{limit} 个文件。
|
|
159
|
+
gauge_moderate: 缓和
|
|
160
|
+
gauge_moderate_msg: 为了便于排查错误,可以考虑分成更小的批次进行处理。
|
|
161
|
+
download_validation_errors_csv: 下载错误 CSV
|
|
162
|
+
gauge_optimal: 最佳的
|
|
163
|
+
gauge_optimal_msg: 太好了!较小的导入操作更容易验证和排查问题。
|
|
164
|
+
hierarchy_too_deep: 层级过深(最多 %{max} 层)
|
|
165
|
+
import_hierarchy: 导入层级
|
|
166
|
+
import_name_prefix: CSV 导入 -
|
|
167
|
+
invalid_file_format: 文件格式无效。请检查您的文件并重试。
|
|
168
|
+
invalid_format: 文件格式无效。仅允许 .csv 和 .zip 文件格式。
|
|
169
|
+
max_files: 已达到 %{count} 个文件的最大数量(1 个 CSV 文件和 1 个 ZIP 文件)。
|
|
170
|
+
max_files_added: 最多允许添加 %{count} 个文件(1 个 CSV 文件和 1 个 ZIP 文件)。但只添加了前 %{added} 个文件。
|
|
171
|
+
network_error: 网络错误 - 请检查您的网络连接并重试。
|
|
172
|
+
no_extension: 没有扩展
|
|
173
|
+
not_selected: 未选择
|
|
174
|
+
only_first_files: 目前仅上传了前 %{count} 个文件。您最多可以上传 %{max} 个文件(1 个 CSV 文件和 1 个 ZIP 文件)。
|
|
175
|
+
only_one_additional: 只能添加一个文件。第一个文件已添加。
|
|
176
|
+
rejected_files: 以下文件已被拒绝:
|
|
177
|
+
remove_file: 删除文件
|
|
178
|
+
render_error: 验证已完成,但结果无法显示。请重试。
|
|
179
|
+
review_admin_set: 管理员设置:
|
|
180
|
+
review_first_n_records: 前 %{count} 条记录
|
|
181
|
+
review_limit: 限制:
|
|
182
|
+
review_name: 姓名:
|
|
183
|
+
review_rights: 权利:
|
|
184
|
+
review_skipped: 验证步骤已跳过——记录数不可用
|
|
185
|
+
review_total: 总计 %{total} — %{collections} 个收藏集,%{works} 个作品,%{file_sets} 个文件集
|
|
186
|
+
review_visibility: 能见度:
|
|
187
|
+
server_error: 验证过程中服务器出错。请重试或联系客服。
|
|
188
|
+
shared_badge: 共享
|
|
189
|
+
starting: 开始...
|
|
190
|
+
upload_csv_and_zip: CSV 文件和其他文件单独上传
|
|
191
|
+
upload_csv_only: 未上传 ZIP 文件——文件将从服务器路径匹配,或者您可以添加更多文件。
|
|
192
|
+
upload_single_package: 包含 CSV 和文件的单个软件包
|
|
193
|
+
upload_zip_only: 已上传 ZIP 文件——验证将检查 CSV 内容
|
|
194
|
+
uploaded_file: 已上传文件
|
|
195
|
+
uploaded_files: 已上传文件 (%{count})
|
|
196
|
+
validate_path: 验证导入路径中的文件
|
|
197
|
+
validate_upload: 验证上传的文件
|
|
198
|
+
validated: 已验证
|
|
199
|
+
validating: 正在验证……
|
|
200
|
+
validation_failed: 验证失败,请重试。
|
|
201
|
+
validation_timeout: 验证超时。您的文件可能过大。请尝试上传较小的文件或联系技术支持。
|
|
202
|
+
visibility_institution: 机构
|
|
203
|
+
visibility_private: 私人的
|
|
204
|
+
visibility_public: 民众
|
|
205
|
+
zip_limit: 仅允许上传 1 个 ZIP 文件。以下文件未添加:
|
|
206
|
+
nav:
|
|
207
|
+
back: 后退
|
|
208
|
+
clear_start_over: 清除并重新开始
|
|
209
|
+
next_step: 下一个
|
|
210
|
+
skip_validation: 跳过验证
|
|
211
|
+
start_import: 开始导入
|
|
212
|
+
page_subtitle: 通过 CSV 导入收藏集、作品和文件
|
|
213
|
+
page_title: 开始批量导入
|
|
214
|
+
step1:
|
|
215
|
+
add_another: 添加另一个文件
|
|
216
|
+
add_another_hint_html: 将 CSV 或 ZIP 文件拖放到此处,或点击<strong class="text-primary">浏览。</strong>
|
|
217
|
+
admin_set: 管理员设置
|
|
218
|
+
admin_set_hint: 导入和下载 CSV 模板需要管理员权限。
|
|
219
|
+
admin_set_prompt: 选择一个管理员集...
|
|
220
|
+
collections: 收藏
|
|
221
|
+
description_html: 上传一个元数据 CSV 文件和一个包含您的文件的 ZIP 文件(最多上传 2 个文件),或者上传一个包含两者的 ZIP 文件——如果使用单个 ZIP 文件,则元数据 CSV 文件必须是顶层唯一的<code>.csv</code>文件。<br />您也可以使用服务器上的文件路径。
|
|
222
|
+
download_template: 下载租户的 CSV 模板
|
|
223
|
+
dropzone_csv_hint: ".csv — 仅元数据"
|
|
224
|
+
dropzone_hint: 上传 CSV 和 ZIP 文件(最多上传 2 个文件)
|
|
225
|
+
dropzone_main_html: 将文件拖放到此处,或<strong class="text-primary">浏览</strong>
|
|
226
|
+
dropzone_zip_hint: ".zip 文件或元数据 CSV + 文件"
|
|
227
|
+
file_path_hint: CSV 或 ZIP 文件
|
|
228
|
+
file_path_label: 输入服务器上文件的路径
|
|
229
|
+
file_path_placeholder: "/path/to/import.csv"
|
|
230
|
+
file_sets: 文件集
|
|
231
|
+
import_path: 导入路径
|
|
232
|
+
import_summary: 导入摘要
|
|
233
|
+
title: 导入您的文件
|
|
234
|
+
upload_files: 上传文件
|
|
235
|
+
file_input_label: 上传CSV或ZIP文件
|
|
236
|
+
validate_path: 验证导入路径中的文件
|
|
237
|
+
validate_upload: 验证上传的文件
|
|
238
|
+
warning_ack: 我已了解这些警告或错误,并希望继续导入。
|
|
239
|
+
works: 作品
|
|
240
|
+
step2:
|
|
241
|
+
default_rights: 默认权利声明
|
|
242
|
+
default_visibility: 默认可见性
|
|
243
|
+
description: 设置适用于此导入中所有记录的参数。
|
|
244
|
+
import_name: 导入名称
|
|
245
|
+
import_name_prefix: CSV 导入 -
|
|
246
|
+
optional_settings: 可选设置
|
|
247
|
+
rights_none: 没有任何
|
|
248
|
+
rights_required_alert_html: 您的 CSV 文件不包含<strong>rights_statement</strong>列。请在下方选择默认权利声明,以应用于所有记录。
|
|
249
|
+
rights_skipped_hint_html: 已跳过验证。如果您的 CSV 文件不包含<strong>rights_statement</strong>列,您可以从下方选择默认权利声明,将其应用于所有记录。
|
|
250
|
+
test_limit: 测试限制记录
|
|
251
|
+
test_limit_placeholder: 仅导入前 N 条记录进行测试
|
|
252
|
+
title: 配置导入设置
|
|
253
|
+
visibility_hint: 适用于未指定可见性的记录。
|
|
254
|
+
visibility_institution: 机构
|
|
255
|
+
visibility_institution_desc: 已登录用户
|
|
256
|
+
visibility_private: 私人的
|
|
257
|
+
visibility_private_desc: 仅限管理员
|
|
258
|
+
visibility_public: 民众
|
|
259
|
+
visibility_public_desc: 所有人都能看到
|
|
260
|
+
step3:
|
|
261
|
+
background_note: 此过程将在后台运行。您可以在导入队列中监控进度。
|
|
262
|
+
description: 开始之前,请确认您的进口详情。
|
|
263
|
+
large_import_message_html: 您即将导入<span class="total-items-count">%{count}</span>个项目。大量导入操作耗时更长,且更难排查问题。建议您分批导入。
|
|
264
|
+
large_import_warning: 大量进口警告
|
|
265
|
+
ready_to_import: 准备进口
|
|
266
|
+
section_files: 文件
|
|
267
|
+
section_records: 记录
|
|
268
|
+
section_settings: 设置
|
|
269
|
+
section_warnings: 警告
|
|
270
|
+
title: 审核并开始导入
|
|
271
|
+
steps:
|
|
272
|
+
configure_settings: 配置设置
|
|
273
|
+
review_start: 回顾与开始
|
|
274
|
+
upload_validate: 上传并验证
|
|
275
|
+
stepper_response_formatter:
|
|
276
|
+
row_errors_issue:
|
|
277
|
+
description: "您的 CSV 数据中存在以下问题:"
|
|
278
|
+
row_label: "第 %{row} 行 · %{column}"
|
|
279
|
+
title_errors: 行校验错误
|
|
280
|
+
title_warnings: 行校验警告
|
|
281
|
+
success:
|
|
282
|
+
message: 您的导入操作正在后台处理中。完成后您将收到通知。
|
|
283
|
+
start_another: 开始另一次导入
|
|
284
|
+
title: 导入开始
|
|
285
|
+
view_queue: 查看导入队列
|
|
286
|
+
validation:
|
|
287
|
+
columns_detected: 检测到 %{columns} 列 · 找到 %{records} 条记录
|
|
288
|
+
controlled_vocabulary_validator:
|
|
289
|
+
errors:
|
|
290
|
+
message: "'%{value}' 不是 '%{field}' 的认可术语。"
|
|
291
|
+
suggestion: "请检查受控词表以获取有效术语。"
|
|
292
|
+
critical_errors: 导入前必须修复关键错误。
|
|
293
|
+
did_you_mean: 您是不是想输入“%{suggestion}”?
|
|
294
|
+
duplicate_identifier_validator:
|
|
295
|
+
errors:
|
|
296
|
+
message: "重复的 %{field} '%{value}' — 也出现在第 %{original_row} 行。"
|
|
297
|
+
suggestion: "每个 %{field} 在 CSV 中必须是唯一的。"
|
|
298
|
+
existing_source_identifier_validator:
|
|
299
|
+
warnings:
|
|
300
|
+
message: "'%{value}' 与仓库中的现有记录匹配 — 此行将更新该记录。"
|
|
301
|
+
suggestion: "如果您不打算更新现有记录,请更改 %{field} 的值。"
|
|
302
|
+
failed: 验证失败
|
|
303
|
+
file_path_not_exist: 文件路径不存在
|
|
304
|
+
file_references_title: 文件引用
|
|
305
|
+
files_found_in_zip: 在 ZIP 文件中找到 %{found} 个文件(共 %{total} 个)。
|
|
306
|
+
files_missing_from_zip: CSV 文件中引用了 %{count} %{files_word},但 ZIP 文件中缺少该 %{files_word}:
|
|
307
|
+
files_referenced: 导入时未找到 CSV 文件中引用的 %{count} 文件。
|
|
308
|
+
missing_from_zip: ZIP 文件中缺少
|
|
309
|
+
missing_source_identifier_validator:
|
|
310
|
+
errors:
|
|
311
|
+
message: "该行缺少 '%{field}' 的值。"
|
|
312
|
+
suggestion: "为此行添加 '%{field}' 值,或配置 Bulkrax 以自动生成源标识符。"
|
|
313
|
+
missing_required_desc: 您必须在 CSV 文件中添加以下必填列:
|
|
314
|
+
missing_required_hint: 将此列添加到您的 CSV 文件中
|
|
315
|
+
missing_required_title: 缺少必填字段
|
|
316
|
+
missing_rights_desc: 您的 CSV 文件不包含 rights_statement 列。您可以在下一步中将其添加到 CSV 文件中,或选择默认的权利声明。
|
|
317
|
+
multiple_csv_same_dir: ZIP 文件中的同一目录下发现了多个 CSV 文件
|
|
318
|
+
multiple_csv_same_level: 在 ZIP 文件中的同一层级发现了多个 CSV 文件
|
|
319
|
+
no_csv_in_zip: ZIP 文件中未找到 CSV 文件
|
|
320
|
+
no_csv_uploaded: 未上传 CSV 元数据文件。
|
|
321
|
+
no_files_uploaded: 未上传任何文件。
|
|
322
|
+
no_zip_desc: 未上传 ZIP 文件。请确保服务器上的文件可访问,或上传 ZIP 文件。
|
|
323
|
+
parent_reference_validator:
|
|
324
|
+
errors:
|
|
325
|
+
message: "引用的父级 '%{value}' 在此 CSV 中不存在对应的 %{field}。"
|
|
326
|
+
suggestion: "请检查拼写错误或添加父级记录。"
|
|
327
|
+
passed: 验证通过
|
|
328
|
+
passed_warnings: 验证通过,但存在警告
|
|
329
|
+
recognized_fields: 已识别字段:%{fields}
|
|
330
|
+
default_work_type_validator:
|
|
331
|
+
warnings:
|
|
332
|
+
message: "未指定模型 — 此行将以 '%{default_work_type}' 导入。"
|
|
333
|
+
suggestion: "如果要为此行使用不同的作品类型,请在 'model' 列中指定一个模型值。"
|
|
334
|
+
default_work_type_notice:
|
|
335
|
+
message_column_missing: "未找到模型列 — 所有行将以 '%{default_work_type}' 导入。"
|
|
336
|
+
message_column_empty: "未提供模型 — 所有行将以 '%{default_work_type}' 导入。"
|
|
337
|
+
suggestion_column_empty: "如果您想为某些行使用不同的作品类型,请在 CSV 的 'model' 列中添加模型值。"
|
|
338
|
+
suggestion_column_missing: "如果您想为某些行使用不同的作品类型,请在 CSV 中添加 'model' 列。"
|
|
339
|
+
required_field_validator:
|
|
340
|
+
errors:
|
|
341
|
+
message: "字段 '%{field}' 是必填项,但此行中该字段为空。"
|
|
342
|
+
suggestion: "请为 '%{field}' 添加一个值。"
|
|
343
|
+
unable_to_process: 无法处理文件进行验证
|
|
344
|
+
notices_desc: '这些通知可能会影响您的 CSV 的导入方式:'
|
|
345
|
+
notices_title: 导入通知
|
|
346
|
+
unrecognized_desc: 导入过程中将忽略以下列:
|
|
347
|
+
unrecognized_title: 未识别字段
|
|
348
|
+
validations:
|
|
349
|
+
errors_prohibited:
|
|
350
|
+
one: 1 个错误导致此导入程序无法保存:
|
|
351
|
+
other: "%{count} 错误导致无法保存此导入程序:"
|
|
352
|
+
xml:
|
|
353
|
+
file_style:
|
|
354
|
+
cloud: 添加云文件
|
|
355
|
+
server_path: 指定服务器上的路径
|
|
356
|
+
upload: 上传文件
|
|
357
|
+
hints:
|
|
358
|
+
file_upload_hint: 文件上传和云文件上传必须是一个单独的 XML 文件(仅用于导入元数据)或一个包含 XML 文件和数据文件的 Zip 文件,每个文件都位于单独的文件夹中。
|
|
359
|
+
override_rights_statement: 如果选中,则始终使用选定的权限语句。如果未选中,则使用记录中的权限或权限语句,并且仅当 dc:rights 为空时才使用提供的值。
|
|
360
|
+
record_element: 提供用于标识记录的 XML 元素名称,例如 ROW - 附加 XML 中的每个记录都包含在 <ROW> 标签中。
|
|
361
|
+
server_path_hint: 服务器路径可以指向包含要导入的 XML 文件和数据文件的文件夹,也可以直接指向 XML 文件本身。
|
|
362
|
+
import_type:
|
|
363
|
+
multiple: 每个元数据文件包含多个作品
|
|
364
|
+
single: 每个元数据文件对应一个工作
|
|
365
|
+
labels:
|
|
366
|
+
visibility: 能见度
|
|
367
|
+
xml_and_files: 要导入的 XML 和文件:
|
|
368
|
+
visibility:
|
|
369
|
+
institution: 机构
|
|
370
|
+
private: 私人的
|
|
371
|
+
public: 民众
|
|
372
|
+
shared:
|
|
373
|
+
errors:
|
|
374
|
+
error: 错误:
|
|
375
|
+
error_trace: 错误跟踪:
|
|
376
|
+
errored_at: 出错位置:
|
|
377
|
+
errors_heading: 错误:
|
|
378
|
+
full: 满的
|
|
379
|
+
not_yet_exported: 项目尚未成功导出。
|
|
380
|
+
not_yet_imported: 项目尚未成功导入。
|
|
381
|
+
raw: 生的
|
|
382
|
+
succeeded_at: 成功完成:
|
|
383
|
+
field_mapping:
|
|
384
|
+
full: 满的
|
|
385
|
+
heading: 字段映射:
|
|
386
|
+
raw: 生的
|
|
387
|
+
table_header:
|
|
388
|
+
labels:
|
|
389
|
+
actions: 行动
|
|
390
|
+
date_exported: 导出日期
|
|
391
|
+
downloadable_files: 可下载文件
|
|
392
|
+
entries_deleted_upstream: 上游已删除条目
|
|
393
|
+
entries_enqueued: 已入队的条目
|
|
394
|
+
entries_failed: 录入失败
|
|
395
|
+
entries_processed: 已处理条目
|
|
396
|
+
entry_id: 条目 ID
|
|
397
|
+
errors: 错误
|
|
398
|
+
identifier: 标识符
|
|
399
|
+
last_run: 最后一次
|
|
400
|
+
name: 姓名
|
|
401
|
+
next_run: 下一轮
|
|
402
|
+
status: 地位
|
|
403
|
+
total_collection_entries: 总收款条目
|
|
404
|
+
total_file_set_entries: 文件集条目总数
|
|
405
|
+
total_work_entries: 总工作条目
|
|
406
|
+
type: 类型
|
|
407
|
+
updated_at: 更新于
|
|
408
|
+
helpers:
|
|
409
|
+
action:
|
|
410
|
+
exporter:
|
|
411
|
+
back: 后退
|
|
412
|
+
create: 创造
|
|
413
|
+
create_and_export: 创建和导出
|
|
414
|
+
download: 下载
|
|
415
|
+
edit: 编辑
|
|
416
|
+
new: 新的
|
|
417
|
+
update: 更新导出器
|
|
418
|
+
update_and_re_export: 更新并重新导出所有项目
|
|
419
|
+
importer:
|
|
420
|
+
add_file: 添加文件...
|
|
421
|
+
back: 后退
|
|
422
|
+
build: 建造
|
|
423
|
+
continue: 继续
|
|
424
|
+
create: 创造
|
|
425
|
+
create_and_import: 创建和导入
|
|
426
|
+
create_and_validate: 创建并验证
|
|
427
|
+
discard: 丢弃
|
|
428
|
+
discard_confirm: 你确定吗?
|
|
429
|
+
download_original_file: 下载原始文件
|
|
430
|
+
download_original_files: 下载原始文件
|
|
431
|
+
edit: 编辑
|
|
432
|
+
edit_importer: 编辑导入器
|
|
433
|
+
export_errored_entries: 导出错误条目
|
|
434
|
+
generate_csv_template: 生成 CSV 导入模板
|
|
435
|
+
import_corrected_works: 导入修正作品
|
|
436
|
+
new: 高级导入
|
|
437
|
+
guided_import_new: 引导式进口
|
|
438
|
+
remove_and_build: 移除,然后构建
|
|
439
|
+
remove_and_rerun: 删除并重新运行
|
|
440
|
+
remove_and_rerun_confirm: 你确定吗?重新运行后,这将删除所有作品及其关联文件和关系。
|
|
441
|
+
update: 更新导入器
|
|
442
|
+
update_and_harvest_updated: 更新和收获更新后的物品
|
|
443
|
+
update_and_import: 更新和导入
|
|
444
|
+
update_and_re_harvest: 更新并重新收获所有物品
|
|
445
|
+
update_and_replace_files: 更新和替换文件
|
|
446
|
+
update_and_replace_files_confirm: 你确定吗?这样做会在导入之前删除所有文件。
|
|
447
|
+
update_metadata: 更新元数据
|
|
448
|
+
update_metadata_and_files: 更新元数据和文件
|
|
449
|
+
upload_corrected_entries: 上传更正后的条目
|
|
450
|
+
simple_form:
|
|
451
|
+
hints:
|
|
452
|
+
defaults:
|
|
453
|
+
default_visibility: 如果您的 CSV 文件包含可见性字段,它将覆盖默认设置。
|
|
454
|
+
metadata_prefix: 例如 oai_dc、dcterms 或 oai_qdc
|
|
455
|
+
override_rights_statement: 如果选中,则始终使用选定的权限语句。如果未选中,则使用记录中的权限或权限语句,并且仅当 dc:rights 为空时才使用提供的值。
|
|
456
|
+
record_element: 提供用于标识记录的 XML 元素名称,例如 ROW - 附加 XML 中的每个记录都包含在 <ROW> 标签中。
|
|
457
|
+
exporter:
|
|
458
|
+
generated_metadata?: 这些导出的字段目前无法导入。
|
|
459
|
+
include_thumbnails?: 这些导出的字段目前无法导入。
|
|
460
|
+
limit: 输入任意数字可仅运行部分记录。留空或输入 0 可运行所有记录。
|
|
461
|
+
name: 用于识别该进口商的任何名称
|
|
462
|
+
importer:
|
|
463
|
+
admin_set_id: 选择应将策略(例如工作流和访问控制)应用于这些导入的管理集。如果不确定,请选择默认管理集。
|
|
464
|
+
frequency: 运行此导入程序的频率
|
|
465
|
+
limit: 输入任意数字可仅运行部分记录。留空或输入 0 可运行所有记录。
|
|
466
|
+
name: 用于识别该进口商的任何名称
|
|
467
|
+
parser_fields: 只有在选定解析器后,每个解析器的特定字段才可用。
|
|
468
|
+
labels:
|
|
469
|
+
defaults:
|
|
470
|
+
base_url: 基本 URL
|
|
471
|
+
file_style: 文件样式
|
|
472
|
+
import_file_path: 导入文件路径
|
|
473
|
+
import_type: 进口类型
|
|
474
|
+
metadata_format: 元数据格式
|
|
475
|
+
metadata_prefix: 元数据前缀
|
|
476
|
+
override_rights_statement: 优先权声明
|
|
477
|
+
record_element: 记录元素
|
|
478
|
+
rights_statement: 权利声明
|
|
479
|
+
set: 设置(源)
|
|
480
|
+
thumbnail_url: 缩略图网址
|
|
481
|
+
visibility: 能见度
|
|
482
|
+
exporter:
|
|
483
|
+
date_filter: 按日期筛选
|
|
484
|
+
export_from: 导出
|
|
485
|
+
export_source_collection: 收藏
|
|
486
|
+
export_source_importer: 进口商
|
|
487
|
+
export_source_worktype: 工作类型
|
|
488
|
+
export_type: 出口类型
|
|
489
|
+
finish_date: 结束日期
|
|
490
|
+
generated_metadata?: 是否包含生成的元数据?
|
|
491
|
+
include_thumbnails?: 是否包含缩略图?
|
|
492
|
+
limit: 限制
|
|
493
|
+
name: 姓名
|
|
494
|
+
parser_klass: 导出格式
|
|
495
|
+
start_date: 开始日期
|
|
496
|
+
work_visibility: 能见度
|
|
497
|
+
workflow_status: 地位
|
|
498
|
+
importer:
|
|
499
|
+
admin_set_id: 行政集
|
|
500
|
+
frequency: 频率
|
|
501
|
+
limit: 限制
|
|
502
|
+
name: 姓名
|
|
503
|
+
parser_klass: 解析器
|
data/config/routes.rb
CHANGED
|
@@ -9,6 +9,15 @@ Bulkrax::Engine.routes.draw do
|
|
|
9
9
|
end
|
|
10
10
|
resources :entries, only: %i[show update destroy]
|
|
11
11
|
end
|
|
12
|
+
|
|
13
|
+
scope '/importers' do
|
|
14
|
+
get 'new/guided_import', to: 'guided_imports#new', as: :guided_import_new
|
|
15
|
+
post 'guided_import', to: 'guided_imports#create', as: :guided_import_create
|
|
16
|
+
post 'guided_import/validate', to: 'guided_imports#validate', as: :guided_import_validate
|
|
17
|
+
get 'guided_import/download_validation_errors', to: 'guided_imports#download_validation_errors', as: :guided_import_download_validation_errors
|
|
18
|
+
get 'guided_import/demo_scenarios', to: 'guided_imports#demo_scenarios', as: :guided_import_demo_scenarios if Bulkrax.config.guided_import_demo_scenarios_enabled
|
|
19
|
+
end
|
|
20
|
+
|
|
12
21
|
resources :importers do
|
|
13
22
|
put :continue
|
|
14
23
|
get :original_file
|
|
@@ -17,6 +26,7 @@ Bulkrax::Engine.routes.draw do
|
|
|
17
26
|
collection do
|
|
18
27
|
get :importer_table
|
|
19
28
|
post :external_sets
|
|
29
|
+
get :sample_csv_file
|
|
20
30
|
end
|
|
21
31
|
resources :entries, only: %i[show update destroy]
|
|
22
32
|
get :upload_corrected_entries
|