This page is a translated version of the page Help:Import and the translation is 100% complete.
MediaWiki手册:内容读者编辑者管理人员系统管理员研究员 +/-
元维基导入者的图标
元维基导入者的图标

这里有两种导入的形式,两者皆使用Special:Import

  • transwiki导入,或称之跨维基导入:从其他wiki导入页面;目的wiki将确定来源wiki是否启用相关设置;请留意message with id 'import-interwiki-text' (talk);转换页面至名字空间后将确认相应名字空间的正误;选项所有意味着所有早期编辑历史将被导入。
  • 上传导入:导入一个从其他wiki通过导出页面特殊编程的XML文件;请留意message with id 'importtext' (talk);

关于上述用户组的详细信息请参阅导入者

跨维基导入

在许多维基媒体wiki上,跨维基导入也是被禁用的,它提供message with id 'importnosources' (talk):“No wikis from which to import have been defined and direct history uploads are disabled.”,但是,来自共享资源基金会官网wiki英语维基百科捷克语维基百科法语维基百科的页面目前可以导入元维基,元维基中的页面可以导入到MediaWiki官网。导入操作将添加到页面历史记录和Special:Log/import中。

如果导入的页面具有相同的名称在目标维基现有的页面,如果页面是新的进口页面覆盖(根据时间戳)。如果在导入期间发生错误,那么您可能会发现导入部分完成(一些页面导入,但不是全部)。由于页面被覆盖,再次尝试导入不应该成为问题。

如果您指定要包含历史信息,那么您还应该看到关于导入页面的“历史”中的编辑和用户贡献的信息。编辑不会出现在“最近的更改”中(既不位于原始编辑的时间,也不在导入的时候)。其效果类似于完全历史合并,以后可能难以确定导入了哪些编辑。

有一个选项为“包含所有模板”,它将导入导入页面上的模板。如果未使用它们,则除非目标维基上存在同名模板,否则它们将被重新链接。如果使用此选项,目标维基上的同名模板将被覆盖,导入将不仅包括导入页面上的模板,还包括这些模板中使用的任何模板。可以通过专门创建一个转换它们的页面来导入一组页面,然后导入该页面,并打开选项。但是,这应该非常小心地完成,否则可能导致导入的内容远远超过预期,再次,它将导入转换页面上的所有模板以及嵌套在这些模板中的所有模板。

有用的导入应用包括:

  • 当一个页面被移动到另一个維基并随后在那里编辑时,在目标維基中将历史记录放在一起;如果源页面由于页面移动等而变得更难找到,这将特别有用。
  • 当页面移动到另一个維基并在來源維基上删除时,保留历史记录。
  • 讓模板也存在於另一个維基或子域中。
  • 在某些项目(如维基文库、维基词典)上,可以在语言子域之间移动多语言内容。

实现

要检查您的wiki是否已经配置了跨维基导入权,以及配置了哪个wiki,您可以使用API查询您的wiki。

配置以表示<param name="interwikisource" description="对于跨维基导入:从wiki导入"> …

或者,可以检查全局配置:http://noc.wikimedia.org/conf/highlight.php?file=InitialiseSettings.php 并查看章节wgImportSources

如果没有配置跨维基导入权,那么请寻求当地社区的共识以配置跨维基导入权,并确定您可能希望导入哪些wiki。配置更改请求应存入Phabricator:,您需要链接到您的社区在您的错误请求中的讨论。

在本地wiki上查询API也会显示用户组权限,请检查<add>标签

跨维基导入权的分配

大多数transwiki权利在社区维基上成功讨论后分配给用户,随后是Steward requests/Permission的监管员请求。一些wiki已经请求并被授予当地官僚能够分配此权利,请与您的wiki核实当前的情况。

上传导入

mw:Help:export之中描述如何导出以及导出页面的格式。通常,任何用户都可以将Wiki页面导出到文件,但是要从文件中将页面导入到Wiki中,您必须在该Wiki上具有“管理员”权限。因此,如果您有自己安装的MediaWiki,那么您应该能够在那里看到“特殊:导入”页面。在维基媒体基金会wiki项目系列中,只有拥有importupload用户权限的用户才能将文件从文件导入到wiki中,这仅包括"importer"组和监管员。

要从计算机导入Wiki页面,只需单击“浏览”以在本地文件系统上找到该文件。

编辑导入文件

要从您的计算机导入Wiki页面,只需单击浏览以找到该文件。在上载导入的情况下,由于简单可读的文件格式,可以在导出和导入之间轻松编辑XML文件。这应该谨慎和完整,人们可以进行编辑和使用虚假的用户名,并结合删除,可以“改变历史”。此编辑的应用包括:

  • 在编辑摘要中添加有关导入的注释
  • 更改用户名和/或页面名称以避免名称冲突(仅在标题标签之间以及用户名标签之间或链接和签名之间)
  • 将名称空间名称更改为通用名称或适用名称(同上)

请注意,如果页面的两个版本具有相同的时间戳(因为一个版本的上传时间戳与预先存在的版本相同),则后一个(导入的)版本将显示在编辑历史记录中,但不显示在文章本身中。

参见mw:Manual:XML Import file manipulation in CSharp有关在Visual Studio .NET C#中使用这些XML文件的示例。

合并历史和其他细节

参见mw:Manual:Importing_XML_dumps#Troubleshooting

如果导入包含历史信息,并且编辑涉及导入项目中的其他人使用的用户名,则应该应用上载导入,并且XML文件中用户名的出现应首先替换为其他名称以避免歧义。如果导入项目中尚未使用用户名,则无论如何都可以使用用户贡献,但不会自动创建帐户。

就像在链接中引用页面和/或放入URL时一样,通用名称空间名称会自动转换,如果前缀不是名称空间名称,页面将到达主名称空间。但是,例如对于使用该前缀进行跨维基链接的项目,可以忽略(删除)“Meta:”。可能需要在导入之前将XML文件中的更改为“Project:”。

如果已存在页面名称,则导入具有该名称的页面的修订会导致合并页面历史记录。请注意,在页面历史记录中的两个现有修订版本之间插入修订版后,进行下一次编辑的用户所做的更改似乎与实际不同:要查看用户所做的实际更改,必须在两个已经存在的修订版之间采取差异,而不是相对于插入版本的差异。因此,除了重建真实的页面历史记录之外,不应该这样做。

如果已经存在相同頁面和日期時間(精確到秒)的修订版本,则不会导入該修订版本。实际上,只有在該修訂版本已被匯入才會發生(無論是目前的維基、曾匯出到該維基,或者两者都从第三个站点导入时)。

编辑摘要可以引用并且可能链接到另一页面。导入页面但目标页面未导入时,这可能会造成混淆。

编辑摘要不会自动显示页面已导入,但在上载导入的情况下,可以在导入之前将其添加到XML文件中的编辑摘要中。这可以避免一些潜在的模糊和/或混淆的来源。使用查找和替换编辑XML文件时请注意向编辑摘要添加文本需要区分已编辑摘要的编辑,因此XML文件中的注释标记以及没有这些标记的编辑标记。如果有多对注释标记,则只有最后一个有效。

用户贡献

如果没有用户名冲突的规定,用户贡献列表会显示:

  • 由与项目有关的用户名注册的人员的编辑
  • 对于已导入页面的每个wiki,导入前导入页面的编辑,源项目上具有相关用户名的用户的编辑

如果在导入时页面在目标站点上尚不存在,则可以通过比较导入时间和编辑时间来区分这两者。

如果用户页面和用户对话页面在页面边距中没有用户贡献链接,则用户未注册,因此将导入所有编辑。

大规模转移

对于大规模传输,具有足够系统权限的人可以在服务器内移动数据,这比从服务器向用户的本地计算机发送大型XML文件然后返回服务器更实用。

大文件可能因两个原因被拒绝。PHP确认文件php.ini中的PHP上传限制。

 ; Maximum allowed size for uploaded files.
 upload_max_filesize = 20M

也可能是隐藏变量限制了输入框的大小。这需要在mediawiki源代码中查找, includes/specials/SpecialImport.php:

   <input type='hidden' name='MAX_FILE_SIZE' value='20000000' /> 

您或许应更改php.ini中的以下4条指令:

; Maximum size of POST data that PHP will accept.
post_max_size = 20M
max_execution_time = 1000  ; Maximum execution time of each script, in seconds
max_input_time = 2000	    ; Maximum amount of time each script may spend parsing request data
; Default timeout for socket based streams (seconds)
default_socket_timeout = 2000

参见

  • 数据转储介绍维护脚本maintenance/importDump.php 提供一个替代导入的机制,但在大多数MediaWiki站点并不总是保持工作
  • 导入者