# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

SolrConnector.Arguments=引数
SolrConnector.KeepAllMetadata=Keep all metadata:
SolrConnector.UseExtractUpdateHandler=Use the Extract Update Handler:
SolrConnector.Arguments2=引数：
SolrConnector.Commits=コミット
SolrConnector.Documents=コンテンツ
SolrConnector.Schema=スキーマ
SolrConnector.Server=サーバ
SolrConnector.Paths=パス
SolrConnector.SolrType=Solrタイプ
SolrConnector.Zookeeper=ZooKeeper
SolrConnector.SolrType2=Solrタイプ:
SolrConnector.SingleServer=シングルサーバー
SolrConnector.SolrCloud=SolrCloud
SolrConnector.ZookeeperHosts=ZooKeeperホスト:
SolrConnector.Host=ホスト
SolrConnector.Port=ポート:
SolrConnector.ZnodePath=Znodeパス:
SolrConnector.Protocol=プロトコル：
SolrConnector.ServerName=サーバ名：
SolrConnector.WebApplicationName=Webアプリケーション名：
SolrConnector.CoreName=コア/コレクション名:
SolrConnector.CollectionName=コレクション名:
SolrConnector.ConnectionTimeout=コネクションタイムアウト（秒）:
SolrConnector.SocketTimeout=ソケットタイムアウト（秒）:
SolrConnector.ZookeeperSocketTimeout=ソケットタイムアウト（秒）:
SolrConnector.ZookeeperConnectionTimeout=コネクションタイムアウト（秒）:
SolrConnector.UpdateHandler=更新ハンドラー：
SolrConnector.RemoveHandler=除外ハンドラー：
SolrConnector.StatusHandler=状態ハンドラー：
SolrConnector.Realm=領域：
SolrConnector.UserID=ユーザID
SolrConnector.Password=パスワード：
SolrConnector.SSLTrustCertificateList=SSLトラスト証明証一覧：
SolrConnector.NoCertificatesPresent=証明証がありません
SolrConnector.AddCert=証明証の追加
SolrConnector.Add=追加
SolrConnector.AddZookeeperHost=ZooKeeperホストを追加
SolrConnector.Certificate=証明証：
SolrConnector.IDFieldName=IDフィールド名：
SolrConnector.OriginalSizeFieldName=Original size field name:
SolrConnector.ModifiedDateFieldName=更新日付フィールド名：
SolrConnector.CreatedDateFieldName=作成日付フィールド名：
SolrConnector.IndexedDateFieldName=Indexed date field name:
SolrConnector.FileNameFieldName=ファイル名称フィールド名：
SolrConnector.MimeTypeFieldName=MIMEタイプフィールド名：
SolrConnector.ContentFieldName=Content field name:
SolrConnector.MaximumDocumentLength=最大コンテンツ長：
SolrConnector.IncludedMimeTypes=含むMIMEタイプ：
SolrConnector.ExcludedMimeTypes=除外するMIMEタイプ：
SolrConnector.CommitAtEndOfEveryJob=ジョブ毎にコミット：
SolrConnector.CommitEachDocumentWithin=コンテンツを指定した時間内（ミリ秒）毎にコミット：
SolrConnector.Name=名前
SolrConnector.Value=値
SolrConnector.NoArgumentsSpecified=引数を指定してください
SolrConnector.Parameters=引数：
SolrConnector.Arguments3=引数：
SolrConnector.NoArguments=引数が未指定
SolrConnector.SolrFieldMapping=Solrフィールドマップ
SolrConnector.FieldMappings=フィールドマップ：
SolrConnector.MetadataFieldName=メタデータフィールド名
SolrConnector.SolrFieldName=Solrフィールド名
SolrConnector.NoFieldMappingSpecified=フィールドマッピングの指定がありません
SolrConnector.NoZookeeperHostsSpecified=ZooKeeperホストの指定がありません
SolrConnector.AddFieldMapping=フィールドマッピングを追加
SolrConnector.ChooseACertificateFile=証明書ファイルを選択してください
SolrConnector.ZookeeperHostCannotBeNull=ZooKeeperホストはNullにできません
SolrConnector.ZookeeperPortCannotBeNull=ZooKeeperポートはNullにできません
SolrConnector.ZookeeperPortMustBeAnInteger=ZooKeeperポートには整数を入力してください
SolrConnector.ZnodePathMustStartWithACharacter=Znodeパスは「/」から始めてください
SolrConnector.PleaseSupplyAValidSolrServerName=正しいSolrサーバ名を入力してください
SolrConnector.SolrServerPortMustBeAValidInteger=Solrサーバポート番号には整数を入力してください
SolrConnector.WebApplicationNameCannotHaveCharacters=Webアプリケーション名には文字「/」は使えません
SolrConnector.PleaseSupplySolrCoreName=コア名を入力してください
SolrConnector.CoreNameCannotHaveCharacters=コア名には文字「/」は使えません
SolrConnector.WebApplicationMustBeSpecifiedIfCoreIsSpecified=コアを指定する場合はWebアプリケーションも指定してください
SolrConnector.ConnectionTimeoutMustBeInteger=コネクションタイムアウトには整数を入力してください
SolrConnector.SocketTimeoutMustBeInteger=ソケットタイムアウト値には整数を入力してください
SolrConnector.UpdatePathMustStartWithACharacter=更新パスは文字「/」から始めてください
SolrConnector.RemovePathMustStartWithACharacter=削除パスは文字「/」から始めてください
SolrConnector.StatusPathMustStartWithACharacter=状態パスは文字「/」から始めてください
SolrConnector.MaximumDocumentLengthMustBAnInteger=コンテンツの最大長さには整数を入力してください
SolrConnector.CommitWithinValueMustBeAnInteger=Commit-within値には整数を入力してください
SolrConnector.MaximumDocumentLengthMustBeAnInteger=最大コンテンツ長さには整数を入力してください
SolrConnector.ArgumentNameCannotBeAnEmptyString=引数名を入力してください
SolrConnector.MaximumDocumentLengthRequiredUnlessExtractingUpdateHandler=Maximum document length required unless using extract update handler
SolrConnector.ContentFieldNameRequiredUnlessExtractingUpdateHandler=Content field name required unless using extract update handler
SolrConnector.DeleteCert=証明書を削除 
SolrConnector.Delete=削除
SolrConnector.DeleteArgument=引数を削除 #
SolrConnector.DeleteZookeeperHost=ZooKeeperホストを削除 #
SolrConnector.FieldMapMustHaveNonNullSource=フィールドマップを入力してください
SolrConnector.DeleteFieldMapping=フィールドマップを削除 #

