# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR The R Foundation
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: R 2.1.1 \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\n"
"PO-Revision-Date: 2014-03-26 10:02+0200 \n"
"Last-Translator: Masafumi  \n"
"Language-Team: RjpWiki Message Translation Team <mokada@md.tsukuba.ac.jp> \n"
"Language: ja \n"
"MIME-Version: 1.0 \n"
"Content-Type: text/plain; charset=UTF-8 \n"
"Content-Transfer-Encoding: 8bit \n"
"Plural-Forms: nplurals=1; plural=0; \n"
"X-Generator: Pootle 2.0.5 \n"

#: gpar.c:473
msgid "updateGContext must only be called after initGContext"
msgstr ""

#: grid.c:212
msgid "cannot clip to rotated viewport"
msgstr " rotated viewport のクリップは出来ません "

#: grid.c:697 grid.c:702 grid.c:792 grid.c:797
msgid "cannot pop the top-level viewport ('grid' and 'graphics' output mixed?)"
msgstr ""
" トップレベルの viewport は pop することが出来ません ('grid' と 'graphics' の"
"出力を混同していませんか?) "

#: grid.c:979
msgid "attempt to plot on null device"
msgstr " ナルデバイスにプロットしようとしています "

#: grid.c:1400
msgid "there is no layout defined"
msgstr " レイアウトが定義されていません "

#: grid.c:1620
msgid "polygon edge not found (zero-width or zero-height?)"
msgstr " 多角形の頂点が見付かりません (幅もしくは高さがゼロ？) "

#: grid.c:1629
msgid "polygon edge not found"
msgstr " 多角形の頂点が見付かりません "

#: grid.c:1783
msgid "require at least two points to draw arrow"
msgstr " 矢印を書くためには少なくとも二つの点が必要です "

#: grid.c:2102
msgid "non-finite control point in Xspline"
msgstr " Xspline 中に有限でない制御点 "

#: grid.c:2982
msgid "non-finite x or y in graphics path"
msgstr " グラフィックパスに有限でない x か y があります "

#: grid.c:3026
msgid "Empty raster"
msgstr " ラスターが空です "

#: grid.c:3509
msgid "invalid plotting symbol"
msgstr " 不正なプロット記号です "

#: grid.c:3597
msgid "unable to clip to rotated rectangle"
msgstr " 回転された矩形へクリップ出来ません "

#: layout.c:600
msgid "invalid 'layout.pos.row'"
msgstr " 不正な 'layout.pos.row' です "

#: layout.c:604
msgid "invalid 'layout.pos.col'"
msgstr " 不正な 'layout.pos.col' です "

#: matrix.c:50
msgid "singular transformation matrix"
msgstr " 特異な変換行列です "

#: state.c:170
msgid "unable to store 'grid' state.  Too many devices open?"
msgstr ""
" 現在の 'grid' の状態を保持することが出来ません。デバイスを開きすぎていません"
"か? "

#: unit.c:65
msgid "Cannot create unit scalar from 0-length unit vector"
msgstr ""

#: unit.c:789 unit.c:1288
msgid "invalid unit or unit not yet implemented"
msgstr " 不正な単位 (unit) か、まだ実装されていない単位 (unit) です "

#: unit.c:1345 unit.c:1376
msgid "Viewport has zero dimension(s)"
msgstr " ビューポートの次元数がゼロです "

#: unit.c:1408 unit.c:1423 unit.c:1438 unit.c:1453
msgid "Unsupported unit conversion"
msgstr " 対応していない単位変換です "

#: unit.c:1545
msgid "Invalid unit"
msgstr " 不正な単位 (unit) です "

#: unit.c:1560
msgid "'units' must be character"
msgstr " 単位 ('units') は文字型でなければなりません "

#: unit.c:1563
msgid "'units' must be of length > 0"
msgstr " 単位 ('units') の長さは 0 より大きくなければなりません "

#: unit.c:1574
msgid ""
"data must be either NULL, have length 1, or match the length of the final "
"unit vector"
msgstr ""

#: unit.c:1586
msgid "no string supplied for 'strwidth/height' unit"
msgstr ""

#: unit.c:1590
msgid "no 'grob' supplied for 'grobwidth/height' unit"
msgstr ""

#: unit.c:1608
msgid "'gPath' must have depth 1 in 'grobwidth/height' units"
msgstr ""

#: unit.c:1613
msgid "non-NULL value supplied for plain unit"
msgstr ""

#: unit.c:1666 unit.c:1700 unit.c:1749
msgid "old version of unit class is no longer allowed"
msgstr ""

#: unit.c:1672
msgid "object is not coercible to a unit"
msgstr ""

#: unit.c:1698
msgid "object is not a unit"
msgstr ""

#: unit.c:1830
msgid "units can only be multiplied with numerics and integers"
msgstr ""

#: viewport.c:315
msgid "non-finite location and/or size for viewport"
msgstr ""
" 有限でない location かつ/または 有限でない viewport に対するサイズです "

#~ msgid "unimplemented unit function"
#~ msgstr " 未実装の単位 (unit) 関数です "

#~ msgid "Invalid circle radius (must be non-negative)"
#~ msgstr " 不正な円の半径です（非負でなければなりません） "
