# 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.
# Chinese translations for Apache Superset.
msgid ""
msgstr ""
"Project-Id-Version: Apache Superset 0.22.1\n"
"Report-Msgid-Bugs-To: zhouyao94@qq.com\n"
"POT-Creation-Date: 2018-06-07 00:22-0700\n"
"PO-Revision-Date: 2019-01-04 22:19+0800\n"
"Last-Translator: \n"
"Language: zh\n"
"Language-Team: zh <benedictjin2016@gmail.com>\n"
"Plural-Forms: nplurals=1; plural=0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.8.0\n"

#: superset/assets/src/explore/controls.jsx:818 superset/db_engine_specs.py:343
#: superset/db_engine_specs.py:393 superset/db_engine_specs.py:422
#: superset/db_engine_specs.py:447 superset/db_engine_specs.py:499
#: superset/db_engine_specs.py:561 superset/db_engine_specs.py:625
#: superset/db_engine_specs.py:1190 superset/db_engine_specs.py:1232
#: superset/db_engine_specs.py:1287 superset/db_engine_specs.py:1332
#: superset/db_engine_specs.py:1365 superset/db_engine_specs.py:1395
#: superset/db_engine_specs.py:1413
msgid "Time Column"
msgstr "时间字段"

#: superset/db_engine_specs.py:344 superset/db_engine_specs.py:394
#: superset/db_engine_specs.py:448 superset/db_engine_specs.py:562
#: superset/db_engine_specs.py:626 superset/db_engine_specs.py:1191
#: superset/db_engine_specs.py:1233 superset/db_engine_specs.py:1333
#: superset/db_engine_specs.py:1396 superset/db_engine_specs.py:1414
msgid "second"
msgstr "秒"

#: superset/db_engine_specs.py:346 superset/db_engine_specs.py:395
#: superset/db_engine_specs.py:423 superset/db_engine_specs.py:452
#: superset/db_engine_specs.py:566 superset/db_engine_specs.py:629
#: superset/db_engine_specs.py:1194 superset/db_engine_specs.py:1236
#: superset/db_engine_specs.py:1288 superset/db_engine_specs.py:1334
#: superset/db_engine_specs.py:1366 superset/db_engine_specs.py:1397
#: superset/db_engine_specs.py:1417
msgid "minute"
msgstr "分"

#: superset/db_engine_specs.py:348 superset/db_engine_specs.py:396
#: superset/db_engine_specs.py:424 superset/db_engine_specs.py:457
#: superset/db_engine_specs.py:500 superset/db_engine_specs.py:569
#: superset/db_engine_specs.py:632 superset/db_engine_specs.py:1203
#: superset/db_engine_specs.py:1239 superset/db_engine_specs.py:1297
#: superset/db_engine_specs.py:1335 superset/db_engine_specs.py:1367
#: superset/db_engine_specs.py:1398 superset/db_engine_specs.py:1420
msgid "hour"
msgstr "小时"

#: superset/db_engine_specs.py:350 superset/db_engine_specs.py:397
#: superset/db_engine_specs.py:425 superset/db_engine_specs.py:463
#: superset/db_engine_specs.py:503 superset/db_engine_specs.py:572
#: superset/db_engine_specs.py:635 superset/db_engine_specs.py:1206
#: superset/db_engine_specs.py:1242 superset/db_engine_specs.py:1300
#: superset/db_engine_specs.py:1336 superset/db_engine_specs.py:1368
#: superset/db_engine_specs.py:1399 superset/db_engine_specs.py:1423
msgid "day"
msgstr "天"

#: superset/db_engine_specs.py:352 superset/db_engine_specs.py:398
#: superset/db_engine_specs.py:426 superset/db_engine_specs.py:470
#: superset/db_engine_specs.py:504 superset/db_engine_specs.py:573
#: superset/db_engine_specs.py:638 superset/db_engine_specs.py:1209
#: superset/db_engine_specs.py:1245 superset/db_engine_specs.py:1337
#: superset/db_engine_specs.py:1369 superset/db_engine_specs.py:1400
#: superset/db_engine_specs.py:1426
msgid "week"
msgstr "周"

#~ msgid "Please choose at least one \"Group by\" field"
#~ msgstr "请至少选择一个“分组”字段"

#~ msgid "'Group By' and 'Columns' can't overlap"
#~ msgstr "“分组”和“列”不能重叠"

#~ msgid "Must have one numeric column specified"
#~ msgstr "必须指定一个数字列"

#~ msgid "Could not connect to server"
#~ msgstr "无法连接服务器"

#~ msgid ""
#~ "%s is not right as a column "
#~ "name, please alias it (as in "
#~ "SELECT count(*))"
#~ msgstr "%s 不适合作为列名，请对其进行别名（如 SELECT count(*)）"

#~ msgid "Click the"
#~ msgstr "点击"

#~ msgid "button on the top right to save your changes."
#~ msgstr "请点击右上角的按钮，以保存您的更改。"

#~ msgid "Served from data cached %s, click to force refresh."
#~ msgstr "来自数据缓存 %s，点击强制刷新。"

#~ msgid "Click to force refresh"
#~ msgstr "点击强制刷新"

#~ msgid "Sorry, there was an error adding slices to this dashboard: %s"
#~ msgstr "对不起，在此仪表板中添加切片时出错：%s"

#~ msgid "Edit this dashboard's properties"
#~ msgstr "编辑这个仪表板的属性"

#~ msgid "Add Slices"
#~ msgstr "添加切片"

#~ msgid "Add a new slice to the dashboard"
#~ msgstr "向仪表板添加新的切片"

#~ msgid "Add Slices to Dashboard"
#~ msgstr "将切片添加到仪表板"

#~ msgid "Edit slice properties"
#~ msgstr "编辑切片属性"

#~ msgid "Please enter a slice name"
#~ msgstr "请输入切片名称"

#~ msgid "Save A Slice"
#~ msgstr "保存一个切片"

#~ msgid "Overwrite slice %s"
#~ msgstr "覆盖切片 %s"

#~ msgid "[slice name]"
#~ msgstr "[切片名称]"

#~ msgid "Add slice to existing dashboard"
#~ msgstr "将切片添加到现有仪表板"

#~ msgid "Check out this slice: %s"
#~ msgstr "查看切片：%s"

#~ msgid "Select %s"
#~ msgstr "选择 %s"

#~ msgid ""
#~ "Perhaps your data has grown, your "
#~ "database is under unusual load, or "
#~ "you are simply querying a data "
#~ "source that is to large to be "
#~ "processed within the timeout range. If"
#~ " that is the case, we recommend "
#~ "that you summarize your data further."
#~ msgstr "也许你的数据增长了，你的数据库处于非正常的负载下，或者你只是查询一个大的数据源在超时范围内处理。如果是这种情况，我们建议您进一步探查您的数据特征。"

#~ msgid "Annotation layers to overlay on the visualization"
#~ msgstr "注释图层重叠在可视化上"

#~ msgid "Select a annotation layer"
#~ msgstr "选择一个注释图层"

#~ msgid "Error while fetching annotation layers"
#~ msgstr "获取注释图层时出错"

#~ msgid "Choose the metric"
#~ msgstr "选择一个指标"

#~ msgid "X Scale Interval"
#~ msgstr "X 比例间隔"

#~ msgid "Y Scale Interval"
#~ msgstr "Y 比例间隔"

#~ msgid ""
#~ "Whether to show extra controls or "
#~ "not. Extra controls include things like"
#~ " making multiBar charts stacked or "
#~ "side by side."
#~ msgstr "是否显示额外的控制。额外的控制包括，制作堆叠或并排的多条形图。"

#~ msgid ""
#~ "The time column for the visualization."
#~ " Note that you can define arbitrary"
#~ " expression that return a DATETIME "
#~ "column in the table or. Also note"
#~ " that the filter below is applied "
#~ "against this column or expression"
#~ msgstr "可视化的时间列。请注意，您可以定义在表中返回 DATETIME 列的任意表达式。另请注意，下面的过滤器应用于此列或表达式"

#~ msgid "Limits the number of time series that get displayed"
#~ msgstr "限制显示的时间序列的数量"

#~ msgid "Range Filter"
#~ msgstr "范围过滤"

#~ msgid ""
#~ "The server could not be reached. "
#~ "You may want to verify your "
#~ "connection and try again."
#~ msgstr "服务器不可达。您可能需要验证连接并重试。"

#~ msgid "An unknown error occurred. (Status: %s )"
#~ msgstr "出现未知错误。（状态：%s）"

#~ msgid "No slices"
#~ msgstr "没有切片"

#~ msgid "Slices"
#~ msgstr "切片"

#~ msgid "No favorite slices yet, go click on stars!"
#~ msgstr "暂无收藏的切片，去点击星星吧！"

#~ msgid ""
#~ "Whether the access to this metric "
#~ "is restricted to certain roles. Only "
#~ "roles with the permission 'metric access"
#~ " on XXX (the name of this "
#~ "metric)' are allowed to access this "
#~ "metric."
#~ msgstr "是否访问受限。只有有权限的用户才能访问。"

#~ msgid ""
#~ "The list of slices associated with "
#~ "this table. By altering this datasource,"
#~ " you may change how these associated"
#~ " slices behave. Also note that slices"
#~ " need to point to a datasource, "
#~ "so this form will fail at saving"
#~ " if removing slices from a "
#~ "datasource. If you want to change "
#~ "the datasource for a slice, overwrite"
#~ " the slice from the 'explore view'"
#~ msgstr "与此表关联的切片列表。通过更改此数据源，您可以更改相关的切片。还要注意，切片需要指向数据源，因此如果从数据源中删除切片，则此形式将无法保存。如果要更改切片的数据源，请从`浏览视图`覆盖切片，"

#~ msgid "Associated Slices"
#~ msgstr "相关切片"

#~ msgid "Import"
#~ msgstr "导入"

#~ msgid "Welcome!"
#~ msgstr "欢迎！"

#~ msgid ""
#~ "All the queries in Sql Lab are "
#~ "going to be executed on behalf of"
#~ " currently authorized user."
#~ msgstr "SQL Lab 中所有的查询都将被当前授权用户执行。"

#~ msgid "Impersonate queries to the database"
#~ msgstr "模拟对数据库的查询"

#~ msgid "List Slices"
#~ msgstr "切片列表"

#~ msgid "Show Slice"
#~ msgstr "显示切片"

#~ msgid "Add Slice"
#~ msgstr "添加切片"

#~ msgid "Edit Slice"
#~ msgstr "编辑切片"

#~ msgid "Duration (in seconds) of the caching timeout for this slice."
#~ msgstr "切片数据过期时间（秒）"

#~ msgid "Slice"
#~ msgstr "切片"

#~ msgid ""
#~ "This json object describes the "
#~ "positioning of the widgets in the "
#~ "dashboard. It is dynamically generated "
#~ "when adjusting the widgets size and "
#~ "positions by using drag & drop in"
#~ " the dashboard view."
#~ msgstr "这个 JSON 对象描述了部件在看板中的位置。它是动态生成的，可以通过拖放，在看板中调整整部件的大小和位置。"

#~ msgid "Slice %(id)s not found"
#~ msgstr "切片 %(id)s 没有找到"

#~ msgid "Cannot find User %(name)s, please ask your admin to create one."
#~ msgstr "找不到用户 %(name)s，请您让管理员创建一个。"

#~ msgid "month"
#~ msgstr "月"

#~ msgid "quarter"
#~ msgstr "季度"

#~ msgid "year"
#~ msgstr "年"

#~ msgid "week_ending_saturday"
#~ msgstr "周日为一周开始"

#~ msgid "week_start_sunday"
#~ msgstr "周日为一周结束"

#~ msgid "week_start_monday"
#~ msgstr "周一为一周开始"

#~ msgid "5 minute"
#~ msgstr "5 分钟"

#~ msgid "half hour"
#~ msgstr "半小时"

#~ msgid "10 minute"
#~ msgstr "10 分钟"

#~ msgid "Table Name"
#~ msgstr "表名"

#~ msgid "Name of table to be created from csv data."
#~ msgstr "从CSV数据将创建的表的名称."

#~ msgid "CSV File"
#~ msgstr "CSV文件"

#~ msgid "Select a CSV file to be uploaded to a database."
#~ msgstr "选择一个CSV文件上传到数据库."

#~ msgid "CSV Files Only!"
#~ msgstr "仅CSV文件！"

#~ msgid "Database"
#~ msgstr "数据库"

#~ msgid "Delimiter"
#~ msgstr "分隔符"

#~ msgid "Delimiter used by CSV file (for whitespace use \\s+)."
#~ msgstr "CSV文件使用的分隔符　(空白请使用 \\s+)"

#~ msgid "Table Exists"
#~ msgstr "表已存在"

#~ msgid ""
#~ "If table exists do one of the "
#~ "following: Fail (do nothing), Replace "
#~ "(drop and recreate table) or Append "
#~ "(insert data)."
#~ msgstr "如果表已存在，执行其中一个：舍弃（什么都不做），替换（删除表并重建），或者追加(插入数据)"

#~ msgid "Fail"
#~ msgstr "失败"

#~ msgid "Replace"
#~ msgstr "替换"

#~ msgid "Append"
#~ msgstr "追加"

#~ msgid "Schema"
#~ msgstr "模式"

#~ msgid "Specify a schema (if database flavor supports this)."
#~ msgstr "指定一个Schema(需要数据库支持)"

#~ msgid "Header Row"
#~ msgstr "标题行"

#~ msgid ""
#~ "Row containing the headers to use "
#~ "as column names (0 is first line"
#~ " of data). Leave empty if there "
#~ "is no header row."
#~ msgstr "作为列名的带有标题的行（０是第一行数据）。如果没有标题行则留空。"

#~ msgid "Index Column"
#~ msgstr "索引字段"

#~ msgid ""
#~ "Column to use as the row labels"
#~ " of the dataframe. Leave empty if "
#~ "no index column."
#~ msgstr "字段作为数据文件的行标签使用。如果没有索引字段，则留空。"

#~ msgid "Mangle Duplicate Columns"
#~ msgstr "混合重复列"

#~ msgid "Specify duplicate columns as \"X.0, X.1\"."
#~ msgstr "将重复列指定为“x.0，x.1”。"

#~ msgid "Skip Initial Space"
#~ msgstr "跳过初始空格"

#~ msgid "Skip spaces after delimiter."
#~ msgstr "在分隔符之后跳过空格。"

#~ msgid "Skip Rows"
#~ msgstr "跳过行"

#~ msgid "Number of rows to skip at start of file."
#~ msgstr "在文件开始时跳过的行数。"

#~ msgid "Rows to Read"
#~ msgstr "读取的行"

#~ msgid "Number of rows of file to read."
#~ msgstr "要读取的文件行数。"

#~ msgid "Skip Blank Lines"
#~ msgstr "跳过空白行"

#~ msgid "Skip blank lines rather than interpreting them as NaN values."
#~ msgstr "跳过空白行而不是把它们解释为NaN值。"

#~ msgid "Parse Dates"
#~ msgstr "解析日期"

#~ msgid "A comma separated list of columns that should be parsed as dates."
#~ msgstr "应作为日期解析的列的逗号分隔列表。"

#~ msgid "Infer Datetime Format"
#~ msgstr "日期时间格式"

#~ msgid "Use Pandas to interpret the datetime format automatically."
#~ msgstr "使用Pandas自动解释日期时间格式。"

#~ msgid "Decimal Character"
#~ msgstr "十进制字符"

#~ msgid "Character to interpret as decimal point."
#~ msgstr "将字符解释为小数点的字符。"

#~ msgid "Dataframe Index"
#~ msgstr "Dataframe索引"

#~ msgid "Write dataframe index as a column."
#~ msgstr "将dataframe index 作为列."

#~ msgid "Column Label(s)"
#~ msgstr "字段标签"

#~ msgid ""
#~ "Column label for index column(s). If "
#~ "None is given and Dataframe Index "
#~ "is True, Index Names are used."
#~ msgstr "索引列的列标签。如果为None, 并且数据框索引为 true, 则使用 \"索引名称\"。"

#~ msgid "[Superset] Access to the datasource %(name)s was granted"
#~ msgstr "[Superset] 允许访问数据源 %(name)s"

#~ msgid "Viz is missing a datasource"
#~ msgstr "Viz 缺少一个数据源"

#~ msgid "From date cannot be larger than to date"
#~ msgstr "起始时间不可以大于当前时间"

#~ msgid "Table View"
#~ msgstr "表视图"

#~ msgid "Pick a granularity in the Time section or uncheck 'Include Time'"
#~ msgstr "在“时间”部分选择一个粒度，或取消选中“包括时间”"

#~ msgid "Choose either fields to [Group By] and [Metrics] or [Columns], not both"
#~ msgstr "为[分组]和[指标]或[列]选择任何的字段，或者两个都不选"

#~ msgid "Time Table View"
#~ msgstr "时间表视图"

#~ msgid "Pick at least one metric"
#~ msgstr "选择至少一个指标"

#~ msgid "When using 'Group By' you are limited to use a single metric"
#~ msgstr "当使用“Group by”时，只限于使用单个度量。"

#~ msgid "Pivot Table"
#~ msgstr "透视表"

#~ msgid "Please choose at least one 'Group by' field "
#~ msgstr "请至少选择一个分组字段 "

#~ msgid "Please choose at least one metric"
#~ msgstr "请至少选择一个指标"

#~ msgid "Group By' and 'Columns' can't overlap"
#~ msgstr "“Group by”列和字段不能重叠"

#~ msgid "Markup"
#~ msgstr "标记"

#~ msgid "Separator"
#~ msgstr "分隔符"

#~ msgid "Word Cloud"
#~ msgstr "词汇云"

#~ msgid "Treemap"
#~ msgstr "树状图"

#~ msgid "Calendar Heatmap"
#~ msgstr "时间热力图"

#~ msgid "Box Plot"
#~ msgstr "箱线图"

#~ msgid "Bubble Chart"
#~ msgstr "气泡图"

#~ msgid "Pick a metric for x, y and size"
#~ msgstr "为 x 轴，y 轴和大小选择一个指标"

#~ msgid "Bullet Chart"
#~ msgstr "子弹图"

#~ msgid "Pick a metric to display"
#~ msgstr "选择一个指标来显示"

#~ msgid "Big Number with Trendline"
#~ msgstr "数字和趋势线"

#~ msgid "Pick a metric!"
#~ msgstr "选择一个指标！"

#~ msgid "Big Number"
#~ msgstr "数字"

#~ msgid "Time Series - Line Chart"
#~ msgstr "时间序列-折线图"

#~ msgid "Pick a time granularity for your time series"
#~ msgstr "为您的时间序列选择一个时间粒度"

#~ msgid ""
#~ "`Since` and `Until` time bounds should"
#~ " be specified when using the `Time"
#~ " Shift` feature."
#~ msgstr "在使用“Time Shift”功能时，应指定“Since”和\"Until\"时间界限。"

#~ msgid "Time Series - Multiple Line Charts"
#~ msgstr "时间序列-多线图"

#~ msgid "Time Series - Dual Axis Line Chart"
#~ msgstr "时间序列-双轴线图"

#~ msgid "Pick a metric for left axis!"
#~ msgstr "为左轴选择一个指标！"

#~ msgid "Pick a metric for right axis!"
#~ msgstr "为右轴选择一个指标！"

#~ msgid "Please choose different metrics on left and right axis"
#~ msgstr "请在左右轴上选择不同的指标"

#~ msgid "Time Series - Bar Chart"
#~ msgstr "时间序列 - 柱状图"

#~ msgid "Time Series - Period Pivot"
#~ msgstr "时间序列 - 周期透视表"

#~ msgid "Time Series - Percent Change"
#~ msgstr "时间序列 - 百分比变化"

#~ msgid "Time Series - Stacked"
#~ msgstr "时间序列 - 堆积图"

#~ msgid "Distribution - NVD3 - Pie Chart"
#~ msgstr "分布 - NVD3 - 饼图"

#~ msgid "Histogram"
#~ msgstr "直方图"

#~ msgid "Must have at least one numeric column specified"
#~ msgstr "必须至少指明一个数值列"

#~ msgid "Distribution - Bar Chart"
#~ msgstr "分布 - 柱状图"

#~ msgid "Can't have overlap between Series and Breakdowns"
#~ msgstr "Series 和 Breakdown 之间不能有重叠"

#~ msgid "Pick at least one field for [Series]"
#~ msgstr "为 [序列] 选择至少一个字段"

#~ msgid "Sunburst"
#~ msgstr "环状层次图"

#~ msgid "Sankey"
#~ msgstr "蛇形图"

#~ msgid "Pick exactly 2 columns as [Source / Target]"
#~ msgstr "为 [来源 / 目标] 选择两个列"

#~ msgid ""
#~ "There's a loop in your Sankey, "
#~ "please provide a tree. Here's a "
#~ "faulty link: {}"
#~ msgstr "桑基图里面有一个循环，请提供一棵树。这是一个错误的链接：{}"

#~ msgid "Directed Force Layout"
#~ msgstr "有向图"

#~ msgid "Pick exactly 2 columns to 'Group By'"
#~ msgstr "为 “Group By” 选择两个列"

#~ msgid "Country Map"
#~ msgstr "国家地图"

#~ msgid "World Map"
#~ msgstr "世界地图"

#~ msgid "Filters"
#~ msgstr "过滤"

#~ msgid "Pick at least one filter field"
#~ msgstr "选择至少一个过滤字段"

#~ msgid "iFrame"
#~ msgstr "内嵌框架"

#~ msgid "Parallel Coordinates"
#~ msgstr "平行坐标"

#~ msgid "Heatmap"
#~ msgstr "热力图"

#~ msgid "Horizon Charts"
#~ msgstr "水平图"

#~ msgid "Mapbox"
#~ msgstr "箱图"

#~ msgid "Must have a [Group By] column to have 'count' as the [Label]"
#~ msgstr "[Group By] 列必须要有 ‘count’字段作为 [标签]"

#~ msgid "Choice of [Label] must be present in [Group By]"
#~ msgstr "[标签] 的选择项必须出现在 [Group By]"

#~ msgid "Choice of [Point Radius] must be present in [Group By]"
#~ msgstr "[点半径] 的选择项必须出现在 [Group By]"

#~ msgid "[Longitude] and [Latitude] columns must be present in [Group By]"
#~ msgstr "[经度] 和 [纬度] 的选择项必须出现在 [Group By]"

#~ msgid "Deck.gl - Multiple Layers"
#~ msgstr "多图层"

#~ msgid "Bad spatial key"
#~ msgstr "错误的空间字段"

#~ msgid "Deck.gl - Scatter plot"
#~ msgstr "Deck.gl - 散点图"

#~ msgid "Deck.gl - Screen Grid"
#~ msgstr "Deck.gl - 屏幕网格"

#~ msgid "Deck.gl - 3D Grid"
#~ msgstr "Deck.gl - 3D网格"

#~ msgid "Deck.gl - Paths"
#~ msgstr "Deck.gl - 路径"

#~ msgid "Deck.gl - Polygon"
#~ msgstr "Deck.gl - 多角形"

#~ msgid "Deck.gl - 3D HEX"
#~ msgstr "Deck.gl - 3D六角曲面"

#~ msgid "Deck.gl - GeoJSON"
#~ msgstr "Deck.gl - GeoJson"

#~ msgid "Deck.gl - Arc"
#~ msgstr "Deck.gl - 弧度"

#~ msgid "Event flow"
#~ msgstr "事件流"

#~ msgid "Time Series - Paired t-test"
#~ msgstr "时间序列 - 配对t检验"

#~ msgid "Time Series - Nightingale Rose Chart"
#~ msgstr "时间序列 - 南丁格尔玫瑰图"

#~ msgid "Partition Diagram"
#~ msgstr "分区图"

#~ msgid "Your session timed out, please refresh your page and try again."
#~ msgstr "您的会话已超时，请刷新页面后，再重试。"

#~ msgid "Your query was saved"
#~ msgstr "您的查询已保存"

#~ msgid "Your query could not be saved"
#~ msgstr "您的查询无法保存"

#~ msgid "Failed at retrieving results from the results backend"
#~ msgstr "无法从结果后端检索到"

#~ msgid "Unknown error"
#~ msgstr "未知错误"

#~ msgid "Query was stopped."
#~ msgstr "查询被终止。"

#~ msgid "Failed at stopping query."
#~ msgstr "无法终止查询。"

#~ msgid "Error occurred while fetching table metadata"
#~ msgstr "获取表格元数据时发生错误"

#~ msgid "shared query"
#~ msgstr "已分享的查询"

#~ msgid "The query couldn't be loaded"
#~ msgstr "这个查询无法被加载"

#~ msgid "An error occurred while creating the data source"
#~ msgstr "创建数据源时发生错误"

#~ msgid "Pick a chart type!"
#~ msgstr "选择一个图表类型！"

#~ msgid "To use this chart type you need at least one column flagged as a date"
#~ msgstr "要使用此图表类型，您至少需要一个标记为日期格式的列"

#~ msgid "To use this chart type you need at least one dimension"
#~ msgstr "要使用此图表类型，您至少需要一个维度"

#~ msgid "To use this chart type you need at least one aggregation function"
#~ msgstr "要使用这种图表类型，您至少需要一个聚合函数"

#~ msgid "Untitled Query"
#~ msgstr "未命名的查询"

#~ msgid "Copy of %s"
#~ msgstr "%s 的副本"

#~ msgid "share query"
#~ msgstr "分享查询"

#~ msgid "copy URL to clipboard"
#~ msgstr "拷贝 URL 到剪切板"

#~ msgid "Raw SQL"
#~ msgstr "行 SQL"

#~ msgid "Source SQL"
#~ msgstr "源 SQL"

#~ msgid "SQL"
#~ msgstr "SQL"

#~ msgid "No query history yet..."
#~ msgstr "暂无历史查询..."

#~ msgid "It seems you don't have access to any database"
#~ msgstr "貌似您没有访问到任何数据库"

#~ msgid "Search Results"
#~ msgstr "搜索结果"

#~ msgid "[From]-"
#~ msgstr "[From]-"

#~ msgid "[To]-"
#~ msgstr "[To]-"

#~ msgid "[Query Status]"
#~ msgstr "[查询状态]"

#~ msgid "Search"
#~ msgstr "搜索"

#~ msgid "Open in SQL Editor"
#~ msgstr "在 SQL 编辑器中打开"

#~ msgid "view results"
#~ msgstr "展示结果"

#~ msgid "Data preview"
#~ msgstr "数据预览"

#~ msgid "Visualize the data out of this query"
#~ msgstr "从这个查询中可视化数据"

#~ msgid "Overwrite text in editor with a query on this table"
#~ msgstr "使用该表上的查询覆盖编辑器中的文本"

#~ msgid "Run query in a new tab"
#~ msgstr "在新标签中运行查询"

#~ msgid "Remove query from log"
#~ msgstr "从日志中删除查询"

#~ msgid ".CSV"
#~ msgstr ".CSV"

#~ msgid "Visualize"
#~ msgstr "可视化"

#~ msgid "Table"
#~ msgstr "表"

#~ msgid "was created"
#~ msgstr "已创建"

#~ msgid "Query in a new tab"
#~ msgstr "在新标签中查询"

#~ msgid "Fetch data preview"
#~ msgstr "获取数据预览"

#~ msgid "Track Job"
#~ msgstr "跟踪任务"

#~ msgid "Loading..."
#~ msgstr "加载中..."

#~ msgid "Run Selected Query"
#~ msgstr "运行选定的查询"

#~ msgid "Run Query"
#~ msgstr "运行查询"

#~ msgid "Run query synchronously"
#~ msgstr "同步运行查询"

#~ msgid "Run query asynchronously"
#~ msgstr "异步运行查询"

#~ msgid "Stop"
#~ msgstr "停止"

#~ msgid "Undefined"
#~ msgstr "未命名"

#~ msgid "Label"
#~ msgstr "标签"

#~ msgid "Label for your query"
#~ msgstr "为您的查询设置标签"

#~ msgid "Description"
#~ msgstr "描述"

#~ msgid "Write a description for your query"
#~ msgstr "为您的查询写一段描述"

#~ msgid "Save"
#~ msgstr "保存"

#~ msgid "Cancel"
#~ msgstr "取消"

#~ msgid "Save Query"
#~ msgstr "保存查询"

#~ msgid "Share Query"
#~ msgstr "分享查询"

#~ msgid "Run a query to display results here"
#~ msgstr "运行一个查询，以在此显示结果"

#~ msgid "Preview for %s"
#~ msgstr "预览 %s"

#~ msgid "Results"
#~ msgstr "结果"

#~ msgid "Query History"
#~ msgstr "历史查询"

#~ msgid "Create table as with query results"
#~ msgstr "与查询结果一样创建表"

#~ msgid "new table name"
#~ msgstr "新表名称"

#~ msgid "Error while fetching table list"
#~ msgstr "获取表列表时出错"

#~ msgid "Error while fetching schema list"
#~ msgstr "获取模式列表时出错"

#~ msgid "Type to search ..."
#~ msgstr "键入搜索 ..."

#~ msgid "Select table "
#~ msgstr "选择表"

#~ msgid "Error while fetching database list"
#~ msgstr "获取数据库列表时出错"

#~ msgid "Database:"
#~ msgstr "数据库："

#~ msgid "Select a database"
#~ msgstr "选择一个数据库"

#~ msgid "Select a schema (%s)"
#~ msgstr "选择一个模式（%s）"

#~ msgid "Schema:"
#~ msgstr "模式："

#~ msgid "Add a table (%s)"
#~ msgstr "增加一张表（%s）"

#~ msgid "Reset State"
#~ msgstr "状态重置"

#~ msgid "Enter a new title for the tab"
#~ msgstr "输入标签的新标题"

#~ msgid "Untitled Query %s"
#~ msgstr "未命名的查询 %s"

#~ msgid "close tab"
#~ msgstr "关闭标签"

#~ msgid "rename tab"
#~ msgstr "重命名标签"

#~ msgid "expand tool bar"
#~ msgstr "展开工具栏"

#~ msgid "hide tool bar"
#~ msgstr "隐藏工具栏"

#~ msgid "Copy partition query to clipboard"
#~ msgstr "将分区查询复制到剪贴板"

#~ msgid "latest partition:"
#~ msgstr "最新分区："

#~ msgid "Keys for table"
#~ msgstr "表的键"

#~ msgid "View keys & indexes (%s)"
#~ msgstr "查看键和索引（%s）"

#~ msgid "Sort columns alphabetically"
#~ msgstr "对列按字母顺序进行排列"

#~ msgid "Original table column order"
#~ msgstr "原始表列顺序"

#~ msgid "Copy SELECT statement to clipboard"
#~ msgstr "将 SELECT 语句复制到剪贴板"

#~ msgid "Remove table preview"
#~ msgstr "删除表格预览"

#~ msgid "Template Parameters"
#~ msgstr "模板参数"

#~ msgid "Edit template parameters"
#~ msgstr "编辑模板参数"

#~ msgid "Invalid JSON"
#~ msgstr "无效的JSON"

#~ msgid ""
#~ "%s is not right as a column "
#~ "name, please alias it (as in "
#~ "SELECT count(*) "
#~ msgstr "%s 作为列名称不正确，请别名（如SELECT count(*) "

#~ msgid "AS my_alias"
#~ msgstr "作为 my_alias"

#~ msgid "using only alphanumeric characters and underscores"
#~ msgstr "只使用字母、数字、字符和下划线"

#~ msgid "Creating a data source and popping a new tab"
#~ msgstr "创建数据源，并弹出一个新的标签页"

#~ msgid "No results available for this query"
#~ msgstr "没有可用于此查询的结果"

#~ msgid "Chart Type"
#~ msgstr "图表类型"

#~ msgid "[Chart Type]"
#~ msgstr "[图表类型]"

#~ msgid "Datasource Name"
#~ msgstr "数据库名称"

#~ msgid "datasource name"
#~ msgstr "数据库名称"

#~ msgid "Create a new chart"
#~ msgstr "创建新图表"

#~ msgid "Choose a datasource"
#~ msgstr "选择数据源"

#~ msgid ""
#~ "If the datasource your are looking "
#~ "for is not available in the list,"
#~ " follow the instructions on the how"
#~ " to add it on the "
#~ msgstr "如果您正在寻找的数据源在列表中不可用，请按照说明进行添加"

#~ msgid "Superset tutorial"
#~ msgstr "Superset 教程"

#~ msgid "Choose a visualization type"
#~ msgstr "选择可视化类型"

#~ msgid "Create new chart"
#~ msgstr "创建新图表"

#~ msgid "Unexpected error: "
#~ msgstr "意外错误："

#~ msgid "Unexpected error."
#~ msgstr "意外错误。"

#~ msgid "Updating chart was stopped"
#~ msgstr "更新图表已停止"

#~ msgid "An error occurred while rendering the visualization: %s"
#~ msgstr "渲染可视化时发生错误：%s"

#~ msgid "visualization queries are set to timeout at ${action.timeout} seconds. "
#~ msgstr "可视化查询超时设置为  ${action.timeout} 秒。"

#~ msgid ""
#~ "Perhaps your data has grown, your "
#~ "database is under unusual load, or "
#~ "you are simply querying a data "
#~ "source that is too large to be "
#~ "processed within the timeout range. If"
#~ " that is the case, we recommend "
#~ "that you summarize your data further."
#~ msgstr "未来您的数据增长后，数据库可能会处于异常负载下，或者您在查询超时范围内处理的了太大的数据源。我们建议你进一步汇总您的数据。"

#~ msgid "Network error."
#~ msgstr "网络异常。"

#~ msgid "Click to see difference"
#~ msgstr "点击查看差异"

#~ msgid "Altered"
#~ msgstr "已更改"

#~ msgid "Chart changes"
#~ msgstr "图表变化"

#~ msgid "Select ..."
#~ msgstr "选择 ..."

#~ msgid "Loaded data cached"
#~ msgstr "数据缓存已加载"

#~ msgid "Loaded from cache"
#~ msgstr "从缓存中加载"

#~ msgid "Click to force-refresh"
#~ msgstr "点击强制刷新"

#~ msgid "Copy to clipboard"
#~ msgstr "复制到剪贴板"

#~ msgid "Not successful"
#~ msgstr "未成功"

#~ msgid "Sorry, your browser does not support copying. Use Ctrl / Cmd + C!"
#~ msgstr "抱歉，您的浏览器不支持复制操作。使用 Ctrl / Cmd + C！"

#~ msgid "Copied!"
#~ msgstr "复制成功！"

#~ msgid "Title"
#~ msgstr "标题"

#~ msgid "click to edit title"
#~ msgstr "点击编辑标题"

#~ msgid "You don't have the rights to alter this title."
#~ msgstr "你没有权利改变这个标题。"

#~ msgid "Click to favorite/unfavorite"
#~ msgstr "点击 收藏/取消收藏"

#~ msgid "Dismiss"
#~ msgstr "忽略"

#~ msgid "%s%s"
#~ msgstr "%s%s"

#~ msgid "Active Dashboard Filters"
#~ msgstr "活跃的仪表板过滤器"

#~ msgid "Checkout this dashboard: %s"
#~ msgstr "查看这个仪表板：%s"

#~ msgid "Save as"
#~ msgstr "另存为"

#~ msgid "Force refresh"
#~ msgstr "强制刷新"

#~ msgid "Fetched %s"
#~ msgstr "刷新于%s"

#~ msgid "Cached %s"
#~ msgstr "缓存于%s"

#~ msgid "Force refresh the whole dashboard"
#~ msgstr "强制刷新整个仪表板"

#~ msgid "Set autorefresh"
#~ msgstr "设置自动刷新"

#~ msgid "Set the auto-refresh interval for this session"
#~ msgstr "设置此会话的自动刷新间隔"

#~ msgid "Save the dashboard"
#~ msgstr "保存仪表板"

#~ msgid "Edit properties"
#~ msgstr "编辑属性"

#~ msgid "Edit the dashboards's properties"
#~ msgstr "编辑仪表板的属性"

#~ msgid "Email"
#~ msgstr "邮箱"

#~ msgid "Email a link to this dashboard"
#~ msgstr "将这个仪表板链接通过Email发送"

#~ msgid "Add Charts"
#~ msgstr "添加图表"

#~ msgid "Add some charts to this dashboard"
#~ msgstr "在该仪表板中添加一些图表"

#~ msgid "Edit CSS"
#~ msgstr "编辑CSS"

#~ msgid "Change the style of the dashboard using CSS code"
#~ msgstr "使用CSS代码更改仪表板的样式"

#~ msgid "Load a template"
#~ msgstr "加载一个模板"

#~ msgid "Load a CSS template"
#~ msgstr "加载一个 CSS 模板"

#~ msgid "CSS"
#~ msgstr "CSS"

#~ msgid "Live CSS Editor"
#~ msgstr "现场 CSS 编辑器"

#~ msgid "You have unsaved changes."
#~ msgstr "您有一些未保存的修改。"

#~ msgid "Unsaved changes"
#~ msgstr "更改未保存"

#~ msgid "Don't refresh"
#~ msgstr "不要刷新"

#~ msgid "10 seconds"
#~ msgstr "10秒钟"

#~ msgid "30 seconds"
#~ msgstr "30秒钟"

#~ msgid "1 minute"
#~ msgstr "1分钟"

#~ msgid "5 minutes"
#~ msgstr "5分钟"

#~ msgid "30 minutes"
#~ msgstr "30分钟"

#~ msgid "1 hour"
#~ msgstr "1小时"

#~ msgid "6 hours"
#~ msgstr "6个小时"

#~ msgid "12 hours"
#~ msgstr "12个小时"

#~ msgid "24 hours"
#~ msgstr "24 小时"

#~ msgid "Refresh Interval"
#~ msgstr "刷新间隔"

#~ msgid "Choose the refresh frequency for this dashboard"
#~ msgstr "选择此仪表板的刷新频率"

#~ msgid "This dashboard was saved successfully."
#~ msgstr "该仪表板已成功保存。"

#~ msgid "Sorry, there was an error saving this dashboard: "
#~ msgstr "抱歉，保存此信息中心时发生错误"

#~ msgid "Error"
#~ msgstr "异常"

#~ msgid "You must pick a name for the new dashboard"
#~ msgstr "您必须为新的仪表板选择一个名称"

#~ msgid "Save Dashboard"
#~ msgstr "保存仪表板"

#~ msgid "Overwrite Dashboard [%s]"
#~ msgstr "覆盖仪表板 [%s]"

#~ msgid "Save as:"
#~ msgstr "另存为："

#~ msgid "[dashboard name]"
#~ msgstr "[看板名称]"

#~ msgid "Sorry, there was an error fetching charts to this dashboard: "
#~ msgstr "抱歉，这个仪表板在获取图表时发生错误："

#~ msgid "Sorry, there was an error adding charts to this dashboard: "
#~ msgstr "抱歉，这个仪表板在添加图表时发生错误："

#~ msgid "Name"
#~ msgstr "名字"

#~ msgid "Viz"
#~ msgstr "Viz"

#~ msgid "Datasource"
#~ msgstr "数据源"

#~ msgid "Modified"
#~ msgstr "已修改"

#~ msgid "Add a new chart to the dashboard"
#~ msgstr "在仪表板中添加新图表"

#~ msgid "Add Charts to Dashboard"
#~ msgstr "在仪表板中添加图表"

#~ msgid "Served from data cached %s . Click to force refresh."
#~ msgstr "数据缓存 %s 。点击强制刷新。"

#~ msgid "Force refresh data"
#~ msgstr "强制刷新数据"

#~ msgid "Annotation layers are still loading."
#~ msgstr "注释层仍在加载。"

#~ msgid "One ore more annotation layers failed loading."
#~ msgstr "一个或多个注释层加载失败。"

#~ msgid "Move chart"
#~ msgstr "移动图表"

#~ msgid "Toggle chart description"
#~ msgstr "切换图表说明"

#~ msgid "Edit chart"
#~ msgstr "编辑图表"

#~ msgid "Export CSV"
#~ msgstr "导出 CSV"

#~ msgid "Explore chart"
#~ msgstr "探索图表"

#~ msgid "Remove chart from dashboard"
#~ msgstr "从仪表板中删除图表"

#~ msgid ""
#~ "A reference to the [Time] configuration,"
#~ " taking granularity into account"
#~ msgstr "参考 [时间] 配置，考虑粒度"

#~ msgid "Group by"
#~ msgstr "分组"

#~ msgid "One or many controls to group by"
#~ msgstr "一个或多个控件来分组"

#~ msgid "Metrics"
#~ msgstr "指标"

#~ msgid "One or many metrics to display"
#~ msgstr "一个或多个指标显示"

#~ msgid "Metric"
#~ msgstr "指标"

#~ msgid ""
#~ "For more information about objects are"
#~ " in context in the scope of "
#~ "this function, refer to the"
#~ msgstr "有关对象在该函数范围内的上下文的更多信息，请参见"

#~ msgid " source code of Superset's sandboxed parser"
#~ msgstr "sandboxed解析器的源代码"

#~ msgid ""
#~ "This functionality is disabled in your"
#~ " environment for security reasons."
#~ msgstr "出于安全原因，该功能在您的环境中被禁用。"

#~ msgid "Visualization Type"
#~ msgstr "图表类型"

#~ msgid "The type of visualization to display"
#~ msgstr "要显示的可视化类型"

#~ msgid "Percentage Metrics"
#~ msgstr "百分比度量"

#~ msgid "Metrics for which percentage of total are to be displayed"
#~ msgstr "要显示总数百分比的度量"

#~ msgid "Y Axis Bounds"
#~ msgstr "Y 轴界限"

#~ msgid ""
#~ "Bounds for the Y axis. When left"
#~ " empty, the bounds are dynamically "
#~ "defined based on the min/max of "
#~ "the data. Note that this feature "
#~ "will only expand the axis range. "
#~ "It won't narrow the data's extent."
#~ msgstr "Y轴的边界。当空时，边界是根据数据的最小/最大值动态定义的。请注意，此功能只会扩展轴范围。它不会缩小数据范围。"

#~ msgid "Ordering"
#~ msgstr "排序"

#~ msgid "Fixed Color"
#~ msgstr "固定色"

#~ msgid "Use this to define a static color for all circles"
#~ msgstr "使用此定义所有圆圈的静态颜色"

#~ msgid "Legend Position"
#~ msgstr "图例位置"

#~ msgid "Choose the position of the legend"
#~ msgstr "选择图例的位置"

#~ msgid "Fill Color"
#~ msgstr "填充颜色"

#~ msgid ""
#~ " Set the opacity to 0 if you"
#~ " do not want to override the "
#~ "color specified in the GeoJSON"
#~ msgstr "如果不想重写GeoJSON中指定的颜色，则将不透明度设置为0。"

#~ msgid "Stroke Color"
#~ msgstr "笔划颜色"

#~ msgid "Right Axis Metric"
#~ msgstr "右轴指标"

#~ msgid "Choose a metric for right axis"
#~ msgstr "为右轴选择一个指标"

#~ msgid "Stacked Style"
#~ msgstr "堆积的样式"

#~ msgid "Sort X Axis"
#~ msgstr "排序X轴"

#~ msgid "Sort Y Axis"
#~ msgstr "排序Y轴"

#~ msgid "Linear Color Scheme"
#~ msgstr "线性颜色方案"

#~ msgid "Normalize Across"
#~ msgstr "标准化通过"

#~ msgid ""
#~ "Color will be rendered based on a"
#~ " ratio of the cell against the "
#~ "sum of across this criteria"
#~ msgstr "颜色将根据单元格与整个标准之和的比率来展示"

#~ msgid "Horizon Color Scale"
#~ msgstr "地平线颜色比例"

#~ msgid "Defines how the color are attributed."
#~ msgstr "定义如何分配颜色。"

#~ msgid "Rendering"
#~ msgstr "渲染"

#~ msgid ""
#~ "image-rendering CSS attribute of the "
#~ "canvas object that defines how the "
#~ "browser scales up the image"
#~ msgstr "图像渲染画布对象的 CSS 属性，它定义了浏览器如何放大图像"

#~ msgid "XScale Interval"
#~ msgstr "X轴比例尺间隔"

#~ msgid "Number of steps to take between ticks when displaying the X scale"
#~ msgstr "显示 X 刻度时，在刻度之间表示的步骤数"

#~ msgid "YScale Interval"
#~ msgstr "Y轴比例尺间隔"

#~ msgid "Number of steps to take between ticks when displaying the Y scale"
#~ msgstr "显示 Y 刻度时，在刻度之间表示的步骤数"

#~ msgid "Include Time"
#~ msgstr "包括时间"

#~ msgid "Whether to include the time granularity as defined in the time section"
#~ msgstr "是否包含时间段中定义的时间粒度"

#~ msgid "Auto Zoom"
#~ msgstr "自动缩放"

#~ msgid "When checked, the map will zoom to your data after each query"
#~ msgstr "选中后，地图将根据您的数据进行缩放。"

#~ msgid "Show percentage"
#~ msgstr "显示百分比"

#~ msgid "Whether to include the percentage in the tooltip"
#~ msgstr "是否在工具提示中包含百分比"

#~ msgid "Stacked Bars"
#~ msgstr "堆叠条形图"

#~ msgid "Show totals"
#~ msgstr "显示总计"

#~ msgid "Display total row/column"
#~ msgstr "显示总行 / 列"

#~ msgid "Show Markers"
#~ msgstr "显示标记"

#~ msgid "Show data points as circle markers on the lines"
#~ msgstr "将数据点显示为线条上的圆形标记"

#~ msgid "Bar Values"
#~ msgstr "条形栏的值"

#~ msgid "Show the value on top of the bar"
#~ msgstr "显示栏上的值"

#~ msgid "Sort Bars"
#~ msgstr "排序条形栏"

#~ msgid "Sort bars by x labels."
#~ msgstr "按 x 标签排序。"

#~ msgid "Combine Metrics"
#~ msgstr "整合指标"

#~ msgid ""
#~ "Display metrics side by side within "
#~ "each column, as opposed to each "
#~ "column being displayed side by side "
#~ "for each metric."
#~ msgstr "在每个列中并排显示指标，而不是每个指标并排显示每个列。"

#~ msgid "Extra Controls"
#~ msgstr "额外的控制"

#~ msgid ""
#~ "Whether to show extra controls or "
#~ "not. Extra controls include things like"
#~ " making mulitBar charts stacked or "
#~ "side by side."
#~ msgstr "是否显示额外的控件。额外的控制包括使多栏图表堆叠或并排。"

#~ msgid "Reduce X ticks"
#~ msgstr "减少 X 轴的刻度"

#~ msgid ""
#~ "Reduces the number of X axis ticks"
#~ " to be rendered. If true, the x"
#~ " axis wont overflow and labels may"
#~ " be missing. If false, a minimum "
#~ "width will be applied to columns "
#~ "and the width may overflow into an"
#~ " horizontal scroll."
#~ msgstr ""
#~ "减少要渲染的 X 轴刻度的数量。如果为 true，则 X "
#~ "轴不会溢出，标签可能会丢失。如果为 false，则最小宽度将应用于列，并且宽度可能会溢出，并以水平滚动条展示。"

#~ msgid "Include Series"
#~ msgstr "包括序列"

#~ msgid "Include series name as an axis"
#~ msgstr "包含序列名称作为一个轴"

#~ msgid "Color Metric"
#~ msgstr "颜色指标"

#~ msgid "A metric to use for color"
#~ msgstr "用于颜色的指标"

#~ msgid "Country Name"
#~ msgstr "国家的名字"

#~ msgid "The name of country that Superset should display"
#~ msgstr "Superset 应显示的国家名称"

#~ msgid "Country Field Type"
#~ msgstr "国家字段的类型"

#~ msgid ""
#~ "The country code standard that Superset"
#~ " should expect to find in the "
#~ "[country] column"
#~ msgstr "Superset 希望能够在 [国家] 栏中找到的 国家 / 地区 的标准代码"

#~ msgid "Frequency"
#~ msgstr "频率"

#~ msgid ""
#~ "The periodicity over which to pivot time. Users can provide\n"
#~ "      \"Pandas\" offset alias.\n"
#~ "      Click on the info bubble for"
#~ " more details on accepted \"freq\" "
#~ "expressions."
#~ msgstr ""
#~ "旋转时间的周期性。用户可以提供\n"
#~ "“Pandas”别名。\n"
#~ "点击信息气泡以获得更多关于“freq”表达式的细节。"

#~ msgid "Dimension"
#~ msgstr "尺寸"

#~ msgid "Select a dimension"
#~ msgstr "选择一个维度"

#~ msgid "Columns"
#~ msgstr "列"

#~ msgid "One or many controls to pivot as columns"
#~ msgstr "一个或多个控件作为主列"

#~ msgid "Columns to display"
#~ msgstr "要显示的列"

#~ msgid "Longitude & Latitude"
#~ msgstr "经纬度"

#~ msgid "Point to your spatial columns"
#~ msgstr "指向你的空间列"

#~ msgid "Start Longitude & Latitude"
#~ msgstr "开始经纬度"

#~ msgid "End Longitude & Latitude"
#~ msgstr "经纬度结束"

#~ msgid "Longitude"
#~ msgstr "经度"

#~ msgid "Select the longitude column"
#~ msgstr "选择经度列"

#~ msgid "Latitude"
#~ msgstr "纬度"

#~ msgid "Select the latitude column"
#~ msgstr "选择纬度列"

#~ msgid "GeoJson Column"
#~ msgstr "GeoJson 列"

#~ msgid "Select the geojson column"
#~ msgstr "选择列"

#~ msgid "Polygon Column"
#~ msgstr "多边形列"

#~ msgid ""
#~ "Select the polygon column. Each row "
#~ "should contain JSON.array(N) of [longitude,"
#~ " latitude] points"
#~ msgstr "选择多边形列。每行应该包含 [经度，纬度] 点的JSON.array(N)"

#~ msgid "Point Radius Scale"
#~ msgstr "点半径比例尺"

#~ msgid "Stroke Width"
#~ msgstr "行程宽度"

#~ msgid "Origin"
#~ msgstr "起点"

#~ msgid ""
#~ "Defines the origin where time buckets"
#~ " start, accepts natural dates as in"
#~ " `now`, `sunday` or `1970-01-01`"
#~ msgstr "定义时间桶的起点，接受 `now`，`sunday` 或 `1970-01-01` 的自然日期"

#~ msgid "Bottom Margin"
#~ msgstr "底部边距"

#~ msgid "Bottom margin, in pixels, allowing for more room for axis labels"
#~ msgstr "底部边距，以像素为单位，为轴标签留出更多空间"

#~ msgid "X Tick Layout"
#~ msgstr "X轴记号图层"

#~ msgid "The way the ticks are laid out on the X axis"
#~ msgstr "记号在X轴上的排列方式"

#~ msgid "Left Margin"
#~ msgstr "左边距"

#~ msgid "Left margin, in pixels, allowing for more room for axis labels"
#~ msgstr "左边距，以像素为单位，为轴标签留出更多空间"

#~ msgid "Time Granularity"
#~ msgstr "可视化的时间粒度"

#~ msgid ""
#~ "The time granularity for the "
#~ "visualization. Note that you can type"
#~ " and use simple natural language as"
#~ " in `10 seconds`, `1 day` or "
#~ "`56 weeks`"
#~ msgstr "可视化的时间粒度。请注意，您可以输入和使用简单的自然语言，如 `10 秒`，`1 天` 或 `56 周`"

#~ msgid "Domain"
#~ msgstr "域"

#~ msgid "The time unit used for the grouping of blocks"
#~ msgstr "用于块分组的时间单位"

#~ msgid "Subdomain"
#~ msgstr "子域"

#~ msgid ""
#~ "The time unit for each block. "
#~ "Should be a smaller unit than "
#~ "domain_granularity. Should be larger or "
#~ "equal to Time Grain"
#~ msgstr "每个块的时间单位。应该是比 domain_granularity 更小的单位。应该大于或等于 Time Grain"

#~ msgid "Link Length"
#~ msgstr "链接长度"

#~ msgid "Link length in the force layout"
#~ msgstr "在力布局中的链接长度"

#~ msgid "Charge"
#~ msgstr "充电"

#~ msgid "Charge in the force layout"
#~ msgstr "在力布局中充电"

#~ msgid ""
#~ "The time column for the visualization."
#~ " Note that you can define arbitrary"
#~ " expression that return a DATETIME "
#~ "column in the table. Also note "
#~ "that the filter below is applied "
#~ "against this column or expression"
#~ msgstr "可视化的时间栏。注意，您可以定义返回表中的DATETIMLE列的任意表达式。还请注意下面的筛选器应用于该列或表达式。"

#~ msgid "Time Grain"
#~ msgstr "时间的粒度"

#~ msgid ""
#~ "The time granularity for the "
#~ "visualization. This applies a date "
#~ "transformation to alter your time column"
#~ " and defines a new time granularity."
#~ " The options here are defined on "
#~ "a per database engine basis in the"
#~ " Superset source code."
#~ msgstr "可视化的时间粒度。这将应用日期转换来更改时间列，并定义新的时间粒度。这里的选项是在 Superset 源代码中的每个数据库引擎基础上定义的。"

#~ msgid "Resample Rule"
#~ msgstr "重新取样规则"

#~ msgid "Pandas resample rule"
#~ msgstr "Pandas 重新采样的规则"

#~ msgid "Resample How"
#~ msgstr "如何重新采样"

#~ msgid "Pandas resample how"
#~ msgstr "Pandas 如何重新采样的规则"

#~ msgid "Resample Fill Method"
#~ msgstr "重新采样的填充方法"

#~ msgid "Pandas resample fill method"
#~ msgstr "Pandas 重新采样的填充方法"

#~ msgid "Since"
#~ msgstr "以来"

#~ msgid "7 days ago"
#~ msgstr "7 天前"

#~ msgid "Until"
#~ msgstr "直到"

#~ msgid "Max Bubble Size"
#~ msgstr "最大泡泡的尺寸"

#~ msgid "Whisker/outlier options"
#~ msgstr "（箱须图的）须 / 异常值选项"

#~ msgid "Determines how whiskers and outliers are calculated."
#~ msgstr "确定如何计算（箱须图的）胡须和异常值。"

#~ msgid "Ratio"
#~ msgstr "比率"

#~ msgid "Target aspect ratio for treemap tiles."
#~ msgstr "树形图中瓦片的目标高宽比。"

#~ msgid "Number format"
#~ msgstr "数字格式"

#~ msgid "Row limit"
#~ msgstr "行限制"

#~ msgid "Series limit"
#~ msgstr "序列限制"

#~ msgid ""
#~ "Limits the number of time series "
#~ "that get displayed. A sub query "
#~ "(or an extra phase where sub "
#~ "queries are not supported) is applied"
#~ " to limit the number of time "
#~ "series that get fetched and displayed."
#~ " This feature is useful when grouping"
#~ " by high cardinality dimension(s)."
#~ msgstr "限制显示的时间序列的数量。应用子查询（或者不支持子查询）来限制获取和显示的时间序列的数量。在高基数维度（S）分组时，此特性是有用的。"

#~ msgid "Sort By"
#~ msgstr "Sort By（以什么排序）"

#~ msgid "Metric used to define the top series"
#~ msgstr "用于定义顶级序列的指标"

#~ msgid "Sort Descending"
#~ msgstr "降序"

#~ msgid "Whether to sort descending or ascending"
#~ msgstr "是降序还是升序排序"

#~ msgid "Rolling"
#~ msgstr "滚动"

#~ msgid ""
#~ "Defines a rolling window function to "
#~ "apply, works along with the [Periods]"
#~ " text box"
#~ msgstr "定义要应用的滚动窗口函数，与 [Periods] 文本框一起使用"

#~ msgid "Multiplier"
#~ msgstr "乘数"

#~ msgid "Factor to multiply the metric by"
#~ msgstr "因子乘以度量"

#~ msgid "Periods"
#~ msgstr "期限"

#~ msgid ""
#~ "Defines the size of the rolling "
#~ "window function, relative to the time"
#~ " granularity selected"
#~ msgstr "定义滚动窗口函数的大小，相对于所选的时间粒度"

#~ msgid "Cell Size"
#~ msgstr "单元尺寸"

#~ msgid "The size of the square cell, in pixels"
#~ msgstr "平方单元的大小，以像素为单位"

#~ msgid "Cell Padding"
#~ msgstr "细胞填充"

#~ msgid "The distance between cells, in pixels"
#~ msgstr "单元格之间的距离，以像素为单位"

#~ msgid "Cell Radius"
#~ msgstr "单元格半径"

#~ msgid "The pixel radius"
#~ msgstr "像素半径"

#~ msgid "Color Steps"
#~ msgstr "色彩Steps"

#~ msgid "The number color \"steps\""
#~ msgstr "色彩Steps数字"

#~ msgid "Grid Size"
#~ msgstr "网格大小"

#~ msgid "Defines the grid size in pixels"
#~ msgstr "定义网格像素大小"

#~ msgid "Min Periods"
#~ msgstr "最小的期限"

#~ msgid ""
#~ "The minimum number of rolling periods"
#~ " required to show a value. For "
#~ "instance if you do a cumulative "
#~ "sum on 7 days you may want "
#~ "your \"Min Period\" to be 7, so"
#~ " that all data points shown are "
#~ "the total of 7 periods. This will"
#~ " hide the \"ramp up\" taking place"
#~ " over the first 7 periods"
#~ msgstr ""
#~ "显示值所需的滚动周期的最小数量。例如，如果您想累积 7 天的总额，您可能希望您的“最短期限”为 "
#~ "7，以便显示的所有数据点都是 7 个期间的总和。这将隐藏掉前 7 个阶段的“加速”效果"

#~ msgid "Series"
#~ msgstr "序列"

#~ msgid ""
#~ "Defines the grouping of entities. Each"
#~ " series is shown as a specific "
#~ "color on the chart and has a "
#~ "legend toggle"
#~ msgstr "定义实体的分组。每个系列在图表上显示为特定颜色，并有一个可切换的图例"

#~ msgid "Entity"
#~ msgstr "实体"

#~ msgid "This defines the element to be plotted on the chart"
#~ msgstr "这定义了要在图表上绘制的元素"

#~ msgid "X Axis"
#~ msgstr "X 轴"

#~ msgid "Metric assigned to the [X] axis"
#~ msgstr "分配给 [X] 轴的指标"

#~ msgid "Y Axis"
#~ msgstr "Y 轴"

#~ msgid "Metric assigned to the [Y] axis"
#~ msgstr "分配给 [Y] 轴的指标"

#~ msgid "Bubble Size"
#~ msgstr "泡泡大小"

#~ msgid "URL"
#~ msgstr "URL 地址"

#~ msgid ""
#~ "The URL, this control is templated, "
#~ "so you can integrate {{ width }}"
#~ " and/or {{ height }} in your "
#~ "URL string."
#~ msgstr "URL 网址，此控件是模板化的，所以您可以在您的网址字符串中整合 {{ width }} 和 / 或 {{ height }}。"

#~ msgid "X Axis Label"
#~ msgstr "X 轴标签"

#~ msgid "Y Axis Label"
#~ msgstr "Y 轴标签"

#~ msgid "Custom WHERE clause"
#~ msgstr "自定义 WHERE 子句"

#~ msgid ""
#~ "The text in this box gets included"
#~ " in your query's WHERE clause, as "
#~ "an AND to other criteria. You can"
#~ " include complex expression, parenthesis "
#~ "and anything else supported by the "
#~ "backend it is directed towards."
#~ msgstr "此框中的文本被包含在查询的 WHERE 子句中，作为与其他条件的 AND 关联。你可以包含复杂的表达式、圆括号和任何后端支持的其他东西。"

#~ msgid "Custom HAVING clause"
#~ msgstr "自定义 HAVING 子句"

#~ msgid ""
#~ "The text in this box gets included"
#~ " in your query's HAVING clause, as"
#~ " an AND to other criteria. You "
#~ "can include complex expression, parenthesis"
#~ " and anything else supported by the"
#~ " backend it is directed towards."
#~ msgstr "此框中的文本被包含在查询的 HAVING 子句中，作为与其他条件的 AND 关联。你可以包含复杂的表达式、圆括号和任何后端支持的其他东西。"

#~ msgid "Comparison Period Lag"
#~ msgstr "比较期延迟"

#~ msgid "Based on granularity, number of time periods to compare against"
#~ msgstr "根据粒度，比较的时间段数量"

#~ msgid "Comparison suffix"
#~ msgstr "比较后缀"

#~ msgid "Suffix to apply after the percentage display"
#~ msgstr "在显示百分比后应用后缀"

#~ msgid "Table Timestamp Format"
#~ msgstr "表时间戳格式"

#~ msgid "Timestamp Format"
#~ msgstr "时间戳格式"

#~ msgid "Series Height"
#~ msgstr "序列高度"

#~ msgid "Pixel height of each series"
#~ msgstr "每个序列的像素高度"

#~ msgid "Page Length"
#~ msgstr "页面长度"

#~ msgid "Rows per page, 0 means no pagination"
#~ msgstr "每页行数，0 表示没有分页"

#~ msgid "X Axis Format"
#~ msgstr "X 轴格式"

#~ msgid "Y Axis Format"
#~ msgstr "Y 轴格式"

#~ msgid "When `Period Ratio` is set, the Y Axis Format is forced to `.1%`"
#~ msgstr "当设置“周期比”时，y轴格式强制为“1%”。"

#~ msgid "Right Axis Format"
#~ msgstr "右轴格式"

#~ msgid "Date Time Format"
#~ msgstr "时间格式"

#~ msgid "Markup Type"
#~ msgstr "Markup 格式"

#~ msgid "Pick your favorite markup language"
#~ msgstr "选择您最爱的 Markup 语言"

#~ msgid "Rotation"
#~ msgstr "反转"

#~ msgid "Rotation to apply to words in the cloud"
#~ msgstr "旋转适用于云中的单词"

#~ msgid "Line Style"
#~ msgstr "线条样式"

#~ msgid "Line interpolation as defined by d3.js"
#~ msgstr "由 d3.js 定义的线插值"

#~ msgid "Label Type"
#~ msgstr "标签类型"

#~ msgid "What should be shown on the label?"
#~ msgstr "什么应该被显示在标签上？"

#~ msgid "Code"
#~ msgstr "代码"

#~ msgid "Put your code here"
#~ msgstr "把您的代码放在这里"

#~ msgid "Aggregation function"
#~ msgstr "聚合功能"

#~ msgid ""
#~ "Aggregate function to apply when "
#~ "pivoting and computing the total rows"
#~ " and columns"
#~ msgstr "在旋转和计算总的行和列时，应用聚合函数"

#~ msgid "Font Size From"
#~ msgstr "字型大小从"

#~ msgid "Font size for the smallest value in the list"
#~ msgstr "列表中最小值的字体大小"

#~ msgid "Font Size To"
#~ msgstr "字型大小到"

#~ msgid "Font size for the biggest value in the list"
#~ msgstr "列表中最大值的字体大小"

#~ msgid "Instant Filtering"
#~ msgstr "即时过滤"

#~ msgid "Extruded"
#~ msgstr "突出"

#~ msgid "Show Range Filter"
#~ msgstr "显示范围过滤器"

#~ msgid "Whether to display the time range interactive selector"
#~ msgstr "是否显示时间范围交互选择器"

#~ msgid "Date Filter"
#~ msgstr "日期过滤器"

#~ msgid "Whether to include a time filter"
#~ msgstr "是否包含时间过滤器"

#~ msgid "Show SQL Granularity Dropdown"
#~ msgstr "显示SQL Granularity Dropdown"

#~ msgid "Check to include SQL Granularity dropdown"
#~ msgstr "检查是否包含SQL粒度下拉"

#~ msgid "Show SQL Time Column"
#~ msgstr "显示SQL时间列"

#~ msgid "Check to include Time Column dropdown"
#~ msgstr "检查包含时间列 Dropdown"

#~ msgid "Show Druid Granularity Dropdown"
#~ msgstr "显示 Druid Granularity Dropdown"

#~ msgid "Check to include Druid Granularity dropdown"
#~ msgstr "检查包含Druid Granularity Dropdown"

#~ msgid "Show Druid Time Origin"
#~ msgstr "显示Druid原始时间"

#~ msgid "Check to include Time Origin dropdown"
#~ msgstr "检查包含Time Origin dropdown"

#~ msgid "Data Table"
#~ msgstr "数据表"

#~ msgid "Whether to display the interactive data table"
#~ msgstr "是否显示交互式数据表"

#~ msgid "Search Box"
#~ msgstr "搜索框"

#~ msgid "Whether to include a client side search box"
#~ msgstr "是否包含客户端搜索框"

#~ msgid "Table Filter"
#~ msgstr "表格过滤器"

#~ msgid "Whether to apply filter when table cell is clicked"
#~ msgstr "单击表单元格时是否应用筛选器"

#~ msgid "Align +/-"
#~ msgstr "对齐 +/-"

#~ msgid "Whether to align the background chart for +/- values"
#~ msgstr "是否 +/- 对齐背景图数值"

#~ msgid "Color +/-"
#~ msgstr "色彩 +/-"

#~ msgid "Whether to color +/- values"
#~ msgstr "是否 +/- 颜色数值"

#~ msgid "Show Bubbles"
#~ msgstr "显示气泡"

#~ msgid "Whether to display bubbles on top of countries"
#~ msgstr "是否在国家之上展示气泡"

#~ msgid "Legend"
#~ msgstr "图例"

#~ msgid "Whether to display the legend (toggles)"
#~ msgstr "是否显示图例（切换）"

#~ msgid "Show Values"
#~ msgstr "显示值"

#~ msgid "Whether to display the numerical values within the cells"
#~ msgstr "是否在单元格内显示数值"

#~ msgid "Show Metric Names"
#~ msgstr "显示度量名"

#~ msgid "Whether to display the metric name as a title"
#~ msgstr "是否将度量名显示为标题"

#~ msgid "X bounds"
#~ msgstr "X界限"

#~ msgid "Whether to display the min and max values of the X axis"
#~ msgstr "是否显示X轴的最小值和最大值"

#~ msgid "Y bounds"
#~ msgstr "Y界限"

#~ msgid "Whether to display the min and max values of the Y axis"
#~ msgstr "是否显示Y轴的最小值和最大值"

#~ msgid "Rich Tooltip"
#~ msgstr "丰富的工具提示"

#~ msgid "The rich tooltip shows a list of all series for that point in time"
#~ msgstr "丰富的工具提示显示了该时间点的所有系列的列表。"

#~ msgid "Y Log Scale"
#~ msgstr "Y经度标度"

#~ msgid "Use a log scale for the Y axis"
#~ msgstr "Y轴使用经度刻度"

#~ msgid "X Log Scale"
#~ msgstr "X经度标度"

#~ msgid "Use a log scale for the X axis"
#~ msgstr "X轴使用经度刻度"

#~ msgid "Log Scale"
#~ msgstr "对数标度"

#~ msgid "Use a log scale"
#~ msgstr "使用对数刻度"

#~ msgid "Donut"
#~ msgstr "圆环图"

#~ msgid "Do you want a donut or a pie?"
#~ msgstr "您想要圆环图饼还是饼图？"

#~ msgid "Put labels outside"
#~ msgstr "把标签放在外面"

#~ msgid "Put the labels outside the pie?"
#~ msgstr "把标签放在饼图外？"

#~ msgid "Contribution"
#~ msgstr "贡献"

#~ msgid "Compute the contribution to the total"
#~ msgstr "计算对总数的贡献"

#~ msgid "Period Ratio"
#~ msgstr "周期比"

#~ msgid ""
#~ "[integer] Number of period to compare"
#~ " against, this is relative to the "
#~ "granularity selected"
#~ msgstr "[integer]要比较的周期数，这与所选的粒度有关。"

#~ msgid "Period Ratio Type"
#~ msgstr "周期比率型"

#~ msgid ""
#~ "`factor` means (new/previous), `growth` is "
#~ "((new/previous) - 1), `value` is "
#~ "(new-previous)"
#~ msgstr ""
#~ "“factor”是指 (new/previous)，“growth”是 ((new/previous) "
#~ "- 1)，“value”是 (new-previous)"

#~ msgid "Time Shift"
#~ msgstr "时移"

#~ msgid ""
#~ "Overlay one or more timeseries from "
#~ "a relative time period. Expects relative"
#~ " time deltas in natural language "
#~ "(example:  24 hours, 7 days, 56 "
#~ "weeks, 365 days)"
#~ msgstr "从相对时间段覆盖一个或多个时间序列。期望自然语言中的相对时间增量（例如：24小时、7天、56周、365天）"

#~ msgid "Subheader"
#~ msgstr "子标题"

#~ msgid "Description text that shows up below your Big Number"
#~ msgstr "在大数字下面显示描述文本"

#~ msgid "label"
#~ msgstr "标签"

#~ msgid ""
#~ "`count` is COUNT(*) if a group by"
#~ " is used. Numerical columns will be"
#~ " aggregated with the aggregator. Non-"
#~ "numerical columns will be used to "
#~ "label points. Leave empty to get a"
#~ " count of points in each cluster."
#~ msgstr "“count”是count（*）。数值列将与聚合器聚合。非数值列将用于维度列。留空以获得每个簇中的点计数。"

#~ msgid "Map Style"
#~ msgstr "地图样式"

#~ msgid "Base layer map style"
#~ msgstr "地图基本层样式"

#~ msgid "Clustering Radius"
#~ msgstr "簇半径"

#~ msgid ""
#~ "The radius (in pixels) the algorithm "
#~ "uses to define a cluster. Choose 0"
#~ " to turn off clustering, but beware"
#~ " that a large number of points "
#~ "(>1000) will cause lag."
#~ msgstr "算法用来定义一个簇的半径（以像素为单位）。选择0关闭聚，但要注意大量的点（＞1000）会导致处理时间变长。"

#~ msgid "Point Size"
#~ msgstr "泡泡大小"

#~ msgid "Fixed point radius"
#~ msgstr "固定的点半径"

#~ msgid "Point Radius"
#~ msgstr "点半径"

#~ msgid ""
#~ "The radius of individual points (ones"
#~ " that are not in a cluster). "
#~ "Either a numerical column or `Auto`, "
#~ "which scales the point based on "
#~ "the largest cluster"
#~ msgstr "单个点的半径（不在簇中的点）。一个数值列或“AUTO”，它根据最大的聚类来缩放点。"

#~ msgid "Point Radius Unit"
#~ msgstr "点半径单位"

#~ msgid "The unit of measure for the specified point radius"
#~ msgstr "指定点半径的度量单位"

#~ msgid "Point Unit"
#~ msgstr "点单位"

#~ msgid "Opacity"
#~ msgstr "不透明度"

#~ msgid "Opacity of all clusters, points, and labels. Between 0 and 1."
#~ msgstr "所有簇、点和标签的不透明度。在0到1之间。"

#~ msgid "Viewport"
#~ msgstr "视口"

#~ msgid "Parameters related to the view and perspective on the map"
#~ msgstr "与视图和透视图相关的参数"

#~ msgid "Zoom"
#~ msgstr "缩放"

#~ msgid "Zoom level of the map"
#~ msgstr "地图缩放等级"

#~ msgid "Default latitude"
#~ msgstr "默认纬度"

#~ msgid "Latitude of default viewport"
#~ msgstr "默认视口纬度"

#~ msgid "Default longitude"
#~ msgstr "默认经度"

#~ msgid "Longitude of default viewport"
#~ msgstr "默认视口经度"

#~ msgid "Live render"
#~ msgstr "实时渲染"

#~ msgid "Points and clusters will update as viewport is being changed"
#~ msgstr "点和簇将随着视图改变而更新。"

#~ msgid "RGB Color"
#~ msgstr "RGB颜色"

#~ msgid "The color for points and clusters in RGB"
#~ msgstr "点和簇的颜色（RGB）"

#~ msgid "Color"
#~ msgstr "颜色"

#~ msgid "Pick a color"
#~ msgstr "选择一个颜色"

#~ msgid "Ranges"
#~ msgstr "范围"

#~ msgid "Ranges to highlight with shading"
#~ msgstr "用阴影突出显示的范围"

#~ msgid "Range labels"
#~ msgstr "范围标签"

#~ msgid "Labels for the ranges"
#~ msgstr "范围标签"

#~ msgid "Markers"
#~ msgstr "标记"

#~ msgid "List of values to mark with triangles"
#~ msgstr "用三角形标记的值的列表"

#~ msgid "Marker labels"
#~ msgstr "标记标签"

#~ msgid "Labels for the markers"
#~ msgstr "标记标签"

#~ msgid "Marker lines"
#~ msgstr "标记线"

#~ msgid "List of values to mark with lines"
#~ msgstr "用行标记的值列表"

#~ msgid "Marker line labels"
#~ msgstr "标记线标签"

#~ msgid "Labels for the marker lines"
#~ msgstr "标记线标签"

#~ msgid "Chart ID"
#~ msgstr "图表 ID"

#~ msgid "The id of the active chart"
#~ msgstr "活动图表的ID"

#~ msgid "Cache Timeout (seconds)"
#~ msgstr "缓存超时（秒）"

#~ msgid "The number of seconds before expiring the cache"
#~ msgstr "终止缓存前的时间（秒）"

#~ msgid "Order by entity id"
#~ msgstr "按实体ID排序"

#~ msgid ""
#~ "Important! Select this if the table "
#~ "is not already sorted by entity "
#~ "id, else there is no guarantee "
#~ "that all events for each entity "
#~ "are returned."
#~ msgstr "重要！如果表尚未按实体id排序，则选择此选项，否则无法保证返回每个实体的所有事件。"

#~ msgid "Minimum leaf node event count"
#~ msgstr "最小的叶节点的事件计数"

#~ msgid ""
#~ "Leaf nodes that represent fewer than "
#~ "this number of events will be "
#~ "initially hidden in the visualization"
#~ msgstr "表示少于该事件数量的叶节点将首先隐藏在可视化中。"

#~ msgid "Color Scheme"
#~ msgstr "配色方案"

#~ msgid "The color scheme for rendering chart"
#~ msgstr "绘制图的配色方案"

#~ msgid "Significance Level"
#~ msgstr "显著水平"

#~ msgid "Threshold alpha level for determining significance"
#~ msgstr "确定临界值的α水平"

#~ msgid "p-value precision"
#~ msgstr "概率值精度"

#~ msgid "Number of decimal places with which to display p-values"
#~ msgstr "用以显示概率值的小数位数"

#~ msgid "Lift percent precision"
#~ msgstr "提高百分比精度"

#~ msgid "Number of decimal places with which to display lift values"
#~ msgstr "用以显示提升值的小数位数"

#~ msgid "Time Series Columns"
#~ msgstr "时间序列的列"

#~ msgid "Use Area Proportions"
#~ msgstr "使用面积比例"

#~ msgid ""
#~ "Check if the Rose Chart should use"
#~ " segment area instead of segment "
#~ "radius for proportioning"
#~ msgstr "检查玫瑰图是否应使用分段面积代替分段半径"

#~ msgid "Options"
#~ msgstr "选项"

#~ msgid "Not Time Series"
#~ msgstr "没有时间序列"

#~ msgid "Ignore time"
#~ msgstr "忽略时间"

#~ msgid "Time Series"
#~ msgstr "时间序列"

#~ msgid "Standard time series"
#~ msgstr "标准时间序列"

#~ msgid "Aggregate Mean"
#~ msgstr "聚和平均数"

#~ msgid "Mean of values over specified period"
#~ msgstr "指定周期内的平均值"

#~ msgid "Aggregate Sum"
#~ msgstr "合计"

#~ msgid "Sum of values over specified period"
#~ msgstr "指定周期内的合计"

#~ msgid "Difference"
#~ msgstr "差异"

#~ msgid "Metric change in value from `since` to `until`"
#~ msgstr "从“Since”到“Until”值的量度变化"

#~ msgid "Percent Change"
#~ msgstr "百分比变化"

#~ msgid "Metric percent change in value from `since` to `until`"
#~ msgstr "度量值从“Since”到“Until”的值变化"

#~ msgid "Factor"
#~ msgstr "因子"

#~ msgid "Metric factor change from `since` to `until`"
#~ msgstr "从“Since”到“Until”的度量因子变化"

#~ msgid "Advanced Analytics"
#~ msgstr "高级分析"

#~ msgid "Use the Advanced Analytics options below"
#~ msgstr "使用下面的高级分析选项"

#~ msgid "Settings for time series"
#~ msgstr "时间序列的设置"

#~ msgid "Equal Date Sizes"
#~ msgstr "等时尺寸"

#~ msgid "Check to force date partitions to have the same height"
#~ msgstr "检查强制日期分区是否具有相同的高度"

#~ msgid "Partition Limit"
#~ msgstr "分区限制"

#~ msgid ""
#~ "The maximum number of subdivisions of"
#~ " each group; lower values are pruned"
#~ " first"
#~ msgstr "每个组的最大分支数；较低的值首先修剪。"

#~ msgid "Minimum Radius"
#~ msgstr "最小半径"

#~ msgid ""
#~ "Minimum radius size of the circle, "
#~ "in pixels. As the zoom level "
#~ "changes, this insures that the circle"
#~ " respects this minimum radius."
#~ msgstr "圆的最小半径大小，以像素为单位。随着缩放等级的变化，这保证了圆根据这个最小半径变化。"

#~ msgid "Maximum Radius"
#~ msgstr "最大半径"

#~ msgid ""
#~ "Maxium radius size of the circle, "
#~ "in pixels. As the zoom level "
#~ "changes, this insures that the circle"
#~ " respects this maximum radius."
#~ msgstr "圆的最大半径大小，以像素为单位。随着缩放等级的变化，这保证了圆根据这个最大半径变化。"

#~ msgid "Partition Threshold"
#~ msgstr "分割阈值"

#~ msgid ""
#~ "Partitions whose height to parent height"
#~ " proportions are below this value are"
#~ " pruned"
#~ msgstr "将高度与父高度比例低的分区修剪掉"

#~ msgid "Lines column"
#~ msgstr "线列"

#~ msgid "The database columns that contains lines information"
#~ msgstr "包含行信息的数据库列"

#~ msgid "Lines encoding"
#~ msgstr "线编码"

#~ msgid "The encoding format of the lines"
#~ msgstr "线的编码格式"

#~ msgid "Line width"
#~ msgstr "线宽"

#~ msgid "The width of the lines"
#~ msgstr "线宽度"

#~ msgid "Line charts"
#~ msgstr "线型图"

#~ msgid "Pick a set of line charts to layer on top of one another"
#~ msgstr "选择一组可重叠的线型图"

#~ msgid "Select charts"
#~ msgstr "选择图表"

#~ msgid "Error while fetching charts"
#~ msgstr "获取图表时出错"

#~ msgid "Right Axis chart(s)"
#~ msgstr "右轴图（S）"

#~ msgid "Choose one or more charts for right axis"
#~ msgstr "为右轴选择一个或多个图表"

#~ msgid "Prefix metric name with slice name"
#~ msgstr "前缀度量名"

#~ msgid "Reverse Lat & Long"
#~ msgstr "反向经纬度"

#~ msgid "deck.gl charts"
#~ msgstr "Deck.gl - 图表"

#~ msgid "Pick a set of deck.gl charts to layer on top of one another"
#~ msgstr "选择一组deck.gl图表彼此层叠"

#~ msgid "Javascript data interceptor"
#~ msgstr "JavaScript数据拦截器"

#~ msgid ""
#~ "Define a javascript function that "
#~ "receives the data array used in "
#~ "the visualization and is expected to "
#~ "return a modified version of that "
#~ "array. This can be used to alter"
#~ " properties of the data, filter, or"
#~ " enrich the array."
#~ msgstr "定义一个JavaScript函数，该函数接收可视化中使用的数组数据，并返回修改版本的数组。这可用于更改数据、筛选或丰富数组的属性。"

#~ msgid "Javascript data mutator"
#~ msgstr "JavaScript数据调制器"

#~ msgid ""
#~ "Define a function that receives "
#~ "intercepts the data objects and can "
#~ "mutate it"
#~ msgstr "定义一个接收截取数据对象并能对其进行变异的函数。"

#~ msgid "Javascript tooltip generator"
#~ msgstr "JavaScript工具提示生成器"

#~ msgid ""
#~ "Define a function that receives the "
#~ "input and outputs the content for "
#~ "a tooltip"
#~ msgstr "定义一个函数，接收输入输出工具提示的内容"

#~ msgid "Javascript onClick href"
#~ msgstr "Javascript onClick事件触发转跳地址"

#~ msgid "Define a function that returns a URL to navigate to when user clicks"
#~ msgstr "定义一个函数，当用户单击时返回导航URL"

#~ msgid "Extra data for JS"
#~ msgstr "额外的JS数据"

#~ msgid "List of extra columns made available in Javascript functions"
#~ msgstr "JavaScript函数中可用的额外列的列表"

#~ msgid "Stroked"
#~ msgstr "已涂抹"

#~ msgid "Whether to display the stroke"
#~ msgstr "是否显示笔划"

#~ msgid "Filled"
#~ msgstr "填充"

#~ msgid "Whether to fill the objects"
#~ msgstr "是否填充对象"

#~ msgid "Normalized"
#~ msgstr "标准化"

#~ msgid "Whether to normalize the histogram"
#~ msgstr "是否规范化直方图"

#~ msgid "is expected to be a number"
#~ msgstr "预计是一个数字"

#~ msgid "is expected to be an integer"
#~ msgstr "预计是整数"

#~ msgid "cannot be empty"
#~ msgstr "不能为空"

#~ msgid "Time"
#~ msgstr "时间"

#~ msgid "Time related form attributes"
#~ msgstr "时间相关的表单属性"

#~ msgid "Datasource & Chart Type"
#~ msgstr "数据源 & 图表类型"

#~ msgid "This section exposes ways to include snippets of SQL in your query"
#~ msgstr "本节公开了在查询中包含SQL片段的方法"

#~ msgid "Annotations and Layers"
#~ msgstr "注释与注释层"

#~ msgid "Query"
#~ msgstr "查询"

#~ msgid ""
#~ "This section contains options that allow"
#~ " for advanced analytical post processing"
#~ " of query results"
#~ msgstr "本节包含允许对查询结果进行高级分析处理后的选项。"

#~ msgid "Result Filters"
#~ msgstr "结果筛选"

#~ msgid ""
#~ "The filters to apply after post-"
#~ "aggregation.Leave the value control empty "
#~ "to filter empty strings or nulls"
#~ msgstr "过滤器应用在聚合后。将Valk控件留空，以过滤空字符串或空值。"

#~ msgid "Chart Options"
#~ msgstr "图表选项"

#~ msgid "Breakdowns"
#~ msgstr "分解"

#~ msgid "Defines how each series is broken down"
#~ msgstr "定义每个序列是如何被分解的"

#~ msgid "Pie Chart"
#~ msgstr "饼图"

#~ msgid "Y Axis 1"
#~ msgstr "Y轴1"

#~ msgid "Y Axis 2"
#~ msgstr "Y轴2"

#~ msgid "Left Axis chart(s)"
#~ msgstr "左轴图表"

#~ msgid "Choose one or more charts for left axis"
#~ msgstr "为左轴选择一个或多个图表"

#~ msgid "Left Axis Format"
#~ msgstr "左轴格式"

#~ msgid "Time Series - Periodicity Pivot"
#~ msgstr "时间序列-周期透视表"

#~ msgid "Dual Axis Line Chart"
#~ msgstr "双轴线形图"

#~ msgid "Left Axis Metric"
#~ msgstr "左轴计量指标"

#~ msgid "Choose a metric for left axis"
#~ msgstr "选择左轴的计量指标"

#~ msgid "Map"
#~ msgstr "地图"

#~ msgid "Deck.gl - Hexagons"
#~ msgstr "Deck.gl - 六边形"

#~ msgid "Advanced"
#~ msgstr "高级"

#~ msgid "Height"
#~ msgstr "高度"

#~ msgid "Metric used to control height"
#~ msgstr "用于控制高度的计量指标"

#~ msgid "Deck.gl - Grid"
#~ msgstr "Deck.gl - 三维网格"

#~ msgid "Deck.gl - Screen grid"
#~ msgstr "Deck.gl - 屏幕网格"

#~ msgid "Grid"
#~ msgstr "网格"

#~ msgid "Weight"
#~ msgstr "重量"

#~ msgid "Metric used as a weight for the grid's coloring"
#~ msgstr "计量指标用作网格着色的权重"

#~ msgid "Deck.gl - GeoJson"
#~ msgstr "Deck.gl - Geo地理"

#~ msgid "GeoJson Settings"
#~ msgstr "GeoJson设置"

#~ msgid "Polygon Settings"
#~ msgstr "Polygon设置"

#~ msgid "Arc"
#~ msgstr "弧"

#~ msgid "Point Color"
#~ msgstr "点颜色"

#~ msgid "Categorical Color"
#~ msgstr "分类颜色"

#~ msgid "Pick a dimension from which categorical colors are defined"
#~ msgstr "选择定义分类颜色的维度"

#~ msgid "GROUP BY"
#~ msgstr "分组"

#~ msgid "Use this section if you want a query that aggregates"
#~ msgstr "如果需要聚合的查询，请使用此部分"

#~ msgid "NOT GROUPED BY"
#~ msgstr "排除分组"

#~ msgid "Use this section if you want to query atomic rows"
#~ msgstr "如果要查询原子行，请使用此部分"

#~ msgid "Time Series Table"
#~ msgstr "时间序列表"

#~ msgid ""
#~ "Templated link, it's possible to include"
#~ " {{ metric }} or other values "
#~ "coming from the controls."
#~ msgstr "模板链接，可以包含{{度量}}或来自控件的其他值。"

#~ msgid "Pivot Options"
#~ msgstr "透视表选项"

#~ msgid "Number Format"
#~ msgstr "数字格式"

#~ msgid "Time Format"
#~ msgstr "时间格式"

#~ msgid "Numeric Columns"
#~ msgstr "数字列"

#~ msgid "Select the numeric columns to draw the histogram"
#~ msgstr "选择要绘制直方图的数字列"

#~ msgid "No of Bins"
#~ msgstr "没有直方图"

#~ msgid "Select number of bins for the histogram"
#~ msgstr "选择直方图的容器数"

#~ msgid "Opacity of the bars. Between 0 and 1"
#~ msgstr "所有簇、点和标签的不透明度。在0到1之间"

#~ msgid "Primary Metric"
#~ msgstr "主计量指标"

#~ msgid "The primary metric is used to define the arc segment sizes"
#~ msgstr "主计量指标用于定义弧段大小。"

#~ msgid "Secondary Metric"
#~ msgstr "次计量指标"

#~ msgid ""
#~ "[optional] this secondary metric is used"
#~ " to define the color as a ratio"
#~ " against the primary metric. When "
#~ "omitted, the color is categorical and"
#~ " based on labels"
#~ msgstr "次计量指标用来定义颜色与主度量的比率。如果两个度量匹配，则将颜色映射到级别组"

#~ msgid "Hierarchy"
#~ msgstr "层级"

#~ msgid "This defines the level of the hierarchy"
#~ msgstr "这定义了层次级别"

#~ msgid "Source / Target"
#~ msgstr "源/目标"

#~ msgid "Choose a source and a target"
#~ msgstr "选择一个源和一个目标"

#~ msgid "Chord Diagram"
#~ msgstr "弦图"

#~ msgid "Choose a number format"
#~ msgstr "选择一个数字格式"

#~ msgid "Source"
#~ msgstr "来源"

#~ msgid "Choose a source"
#~ msgstr "选择一个源"

#~ msgid "Target"
#~ msgstr "目标"

#~ msgid "Choose a target"
#~ msgstr "选择一个目标"

#~ msgid "ISO 3166-2 codes of region/province/department"
#~ msgstr "地区/省/部门ISO3166-2代码"

#~ msgid ""
#~ "It's ISO 3166-2 of your "
#~ "region/province/department in your table. (see"
#~ " documentation for list of ISO "
#~ "3166-2)"
#~ msgstr "它是数据表中您的地区/省/部门ISO 3166-2代码。（参见ISO 3166-2列表的文档）"

#~ msgid "Bubbles"
#~ msgstr "气泡"

#~ msgid "Country Control"
#~ msgstr "国家控制"

#~ msgid "3 letter code of the country"
#~ msgstr "国家3字母代码"

#~ msgid "Metric for color"
#~ msgstr "度量颜色"

#~ msgid "Metric that defines the color of the country"
#~ msgstr "定义国家度量的颜色"

#~ msgid "Bubble size"
#~ msgstr "气泡尺寸"

#~ msgid "Metric that defines the size of the bubble"
#~ msgstr "定义度量的气泡大小"

#~ msgid "Filter Box"
#~ msgstr "筛选盒"

#~ msgid "Filter controls"
#~ msgstr "筛选控件"

#~ msgid ""
#~ "The controls you want to filter "
#~ "on. Note that only columns checked "
#~ "as \"filterable\" will show up on "
#~ "this list."
#~ msgstr "要筛选的控件。注意，只有列为设置为“可过滤”才会显示在该列表上。"

#~ msgid "Heatmap Options"
#~ msgstr "热力图选项"

#~ msgid "Whether to apply a normal distribution based on rank on the color scale"
#~ msgstr "在色标上是否应用基于排列的正态分布"

#~ msgid "Value bounds"
#~ msgstr "值边界"

#~ msgid ""
#~ "Hard value bounds applied for color "
#~ "coding. Is only relevant and applied "
#~ "when the normalization is applied "
#~ "against the whole heatmap."
#~ msgstr "应用于颜色编码的硬值边界。只有当对整个热图应用标准化时才是相关的和应用的。"

#~ msgid "Value Format"
#~ msgstr "值格式"

#~ msgid "Horizon"
#~ msgstr "地平线"

#~ msgid "Points"
#~ msgstr "积分"

#~ msgid "Labelling"
#~ msgstr "贴标签"

#~ msgid "Visual Tweaks"
#~ msgstr "视觉调整"

#~ msgid "Column containing longitude data"
#~ msgstr "包含经度数据的列"

#~ msgid "Column containing latitude data"
#~ msgstr "包含纬度数据的列"

#~ msgid "Cluster label aggregator"
#~ msgstr "集群标签聚合器"

#~ msgid ""
#~ "Aggregate function applied to the list"
#~ " of points in each cluster to "
#~ "produce the cluster label."
#~ msgstr "聚合函数应用于每个群集中的点列表以产生群集标签。"

#~ msgid "Tooltip"
#~ msgstr "提示"

#~ msgid ""
#~ "Show a tooltip when hovering over "
#~ "points and clusters describing the label"
#~ msgstr "鼠标悬停在描述标签的点和簇上时，可以显示对应的提示"

#~ msgid ""
#~ "One or many controls to group by."
#~ " If grouping, latitude and longitude "
#~ "columns must be present."
#~ msgstr "使用一个或多个控件来分组。一旦分组，则纬度和经度列必须存在。"

#~ msgid "Event definition"
#~ msgstr "事件定义"

#~ msgid "Additional meta data"
#~ msgstr "额外的元数据"

#~ msgid "Column containing entity ids"
#~ msgstr "包含实体标识的列"

#~ msgid "e.g., a \"user id\" column"
#~ msgstr "包含事件名称的列"

#~ msgid "Column containing event names"
#~ msgstr "包含事件名称的列"

#~ msgid "Event count limit"
#~ msgstr "事件计数限制"

#~ msgid "The maximum number of events to return, equivalent to number of rows"
#~ msgstr "要返回的最大事件数量，相当于行数"

#~ msgid "Meta data"
#~ msgstr "元数据"

#~ msgid "Select any columns for meta data inspection"
#~ msgstr "选择任何列用来对元数据进行探查"

#~ msgid "Paired t-test"
#~ msgstr "配对t-检验"

#~ msgid "Time Series Options"
#~ msgstr "时序图选项"

#~ msgid "No such column found. To filter on a metric, try the Custom SQL tab."
#~ msgstr "没有发现这样的列。若要在度量值上筛选，请尝试自定义SQL选项卡。"

#~ msgid "%s column(s) and metric(s)"
#~ msgstr "%s 列与计量指标"

#~ msgid "%s column(s)"
#~ msgstr "%s列表"

#~ msgid "To filter on a metric, use Custom SQL tab."
#~ msgstr "若要在计量值上筛选，请使用自定义SQL选项卡。"

#~ msgid "%s operators(s)"
#~ msgstr "%s 运算符"

#~ msgid "type a value here"
#~ msgstr "在这里键入一个值"

#~ msgid "Filter value"
#~ msgstr "过滤值"

#~ msgid "choose WHERE or HAVING..."
#~ msgstr "选择WHERE或HAVING子句..."

#~ msgid "%s aggregates(s)"
#~ msgstr "%s 聚合"

#~ msgid "description"
#~ msgstr "描述"

#~ msgid "bolt"
#~ msgstr "螺栓"

#~ msgid "Changing this control takes effect instantly"
#~ msgstr "更改此控件立即生效。"

#~ msgid "Error..."
#~ msgstr "错误 ..."

#~ msgid "Width"
#~ msgstr "宽度"

#~ msgid "Export to .json"
#~ msgstr "导出到 .json"

#~ msgid "Export to .csv format"
#~ msgstr "导出为 .csv 格式"

#~ msgid "%s - untitled"
#~ msgstr "%s  - 无标题"

#~ msgid "Edit chart properties"
#~ msgstr "编辑图表属性"

#~ msgid "Limit reached"
#~ msgstr "达到限制"

#~ msgid "Please enter a chart name"
#~ msgstr "请输入图表名称"

#~ msgid "Please select a dashboard"
#~ msgstr "请选择一个仪表板"

#~ msgid "Please enter a dashboard name"
#~ msgstr "请输入仪表板名称"

#~ msgid "Save A Chart"
#~ msgstr "图表保存"

#~ msgid "Overwrite chart %s"
#~ msgstr "覆盖图表 %s"

#~ msgid "[chart name]"
#~ msgstr "[图表名称]"

#~ msgid "Do not add to a dashboard"
#~ msgstr "不要添加到仪表板"

#~ msgid "Add chart to existing dashboard"
#~ msgstr "将图表添加到现有仪表盘"

#~ msgid "Add to new dashboard"
#~ msgstr "添加到新的仪表板"

#~ msgid "Save & go to dashboard"
#~ msgstr "保存并转到仪表板"

#~ msgid "choose a column or metric"
#~ msgstr "选择列或计量指标"

#~ msgid "Add Annotation Layer"
#~ msgstr "添加注释层"

#~ msgid "`Min` value should be numeric or empty"
#~ msgstr "最小值应该是数字或空的"

#~ msgid "`Max` value should be numeric or empty"
#~ msgstr "最大值应该是数字或空的"

#~ msgid "Min"
#~ msgstr "最小值"

#~ msgid "Max"
#~ msgstr "最大值"

#~ msgid "Something went wrong while fetching the datasource list"
#~ msgstr "提取数据源列表时出错"

#~ msgid "Select a datasource"
#~ msgstr "选择一个数据源"

#~ msgid "Search / Filter"
#~ msgstr "搜索 / 过滤"

#~ msgid "Click to point to another datasource"
#~ msgstr "点击指向另一个数据源"

#~ msgid "Edit the datasource's configuration"
#~ msgstr "编辑数据源的配置"

#~ msgid "Show datasource configuration"
#~ msgstr "显示数据源配置"

#~ msgid "Select metric"
#~ msgstr "选择指标"

#~ msgid "Select column"
#~ msgstr "选择列"

#~ msgid "Select operator"
#~ msgstr "选择运算符"

#~ msgid "Add Filter"
#~ msgstr "增加过滤条件"

#~ msgid "choose a column or aggregate function"
#~ msgstr "选择一个字段或聚合函数"

#~ msgid "Error while fetching data"
#~ msgstr "获取数据时出错"

#~ msgid "No results found"
#~ msgstr "未找到结果"

#~ msgid "%s option(s)"
#~ msgstr "%s 选项"

#~ msgid "Invalid lat/long configuration."
#~ msgstr "错误的经纬度配置。"

#~ msgid "Longitude & Latitude columns"
#~ msgstr "经纬度字段"

#~ msgid "Delimited long & lat single column"
#~ msgstr "经度&纬度单列限定"

#~ msgid ""
#~ "Multiple formats accepted, look the "
#~ "geopy.points Python library for more "
#~ "details"
#~ msgstr "接受多种格式，查看geopy.points库以获取更多细节"

#~ msgid "Reverse lat/long "
#~ msgstr "经纬度互换"

#~ msgid "Geohash"
#~ msgstr "Geo哈希"

#~ msgid "textarea"
#~ msgstr "文本区域"

#~ msgid "Edit"
#~ msgstr "编辑"

#~ msgid "in modal"
#~ msgstr "在模态中"

#~ msgid "Select a visualization type"
#~ msgstr "选择一个可视化类型"

#~ msgid "Favorites"
#~ msgstr "收藏"

#~ msgid "Created Content"
#~ msgstr "创建内容"

#~ msgid "Recent Activity"
#~ msgstr "近期活动"

#~ msgid "Security & Access"
#~ msgstr "安全 & 访问"

#~ msgid "No charts"
#~ msgstr "没有图表"

#~ msgid "No dashboards"
#~ msgstr "没有看板"

#~ msgid "Dashboards"
#~ msgstr "看板"

#~ msgid "Charts"
#~ msgstr "图表"

#~ msgid "No favorite charts yet, go click on stars!"
#~ msgstr "暂无收藏的图表，去点击星星吧！"

#~ msgid "No favorite dashboards yet, go click on stars!"
#~ msgstr "暂无收藏的看板，去点击星星吧！"

#~ msgid "Roles"
#~ msgstr "角色"

#~ msgid "Databases"
#~ msgstr "数据库"

#~ msgid "Datasources"
#~ msgstr "数据源"

#~ msgid "Profile picture provided by Gravatar"
#~ msgstr "资料图片由 Gravatar 提供"

#~ msgid "joined"
#~ msgstr "joined"

#~ msgid "id:"
#~ msgstr "id:"

#~ msgid "Sorry, there appears to be no data"
#~ msgstr "对不起，似乎没有数据"

#~ msgid "Data has no time steps"
#~ msgstr "数据没有时间步长"

#~ msgid "Select starting date"
#~ msgstr "选择开始时间"

#~ msgid "Select end date"
#~ msgstr "选择结束日期"

#~ msgid "Select [%s]"
#~ msgstr "选择 [%s]"

#~ msgid "Apply"
#~ msgstr "应用"

#~ msgid "You cannot use 45° tick layout along with the time range filter"
#~ msgstr "您不能使用45°嘀嗒布局以及时间范围过滤器"

#~ msgid "Recently Viewed"
#~ msgstr "最近浏览"

#~ msgid "Metric(s) {} must be aggregations."
#~ msgstr "度量(s) {} 必须是聚合。"

#~ msgid "No data was returned."
#~ msgstr "没有返回任何数据。"

#~ msgid "Unsupported extraction function: "
#~ msgstr "不支持的提取函数："

#~ msgid "List Druid Column"
#~ msgstr "Druid 列的列表"

#~ msgid "Show Druid Column"
#~ msgstr "显示 Druid 列"

#~ msgid "Add Druid Column"
#~ msgstr "添加 Druid 列"

#~ msgid "Edit Druid Column"
#~ msgstr "编辑 Druid 列"

#~ msgid "Column"
#~ msgstr "列"

#~ msgid "Type"
#~ msgstr "类型"

#~ msgid "Groupable"
#~ msgstr "可分组"

#~ msgid "Filterable"
#~ msgstr "可过滤"

#~ msgid "Count Distinct"
#~ msgstr "计数"

#~ msgid "Sum"
#~ msgstr "求和"

#~ msgid ""
#~ "Whether this column is exposed in "
#~ "the `Filters` section of the explore "
#~ "view."
#~ msgstr "该列是否在浏览视图的`过滤器`部分显示。"

#~ msgid "List Druid Metric"
#~ msgstr "Druid 指标列表"

#~ msgid "Show Druid Metric"
#~ msgstr "显示 Druid 指标"

#~ msgid "Add Druid Metric"
#~ msgstr "添加 Druid 指标"

#~ msgid "Edit Druid Metric"
#~ msgstr "编辑 Druid 指标"

#~ msgid ""
#~ "Whether the access to this metric "
#~ "is restricted to certain roles. Only "
#~ "roles with the permission 'metric access"
#~ " on XXX (the name of this "
#~ "metric)' are allowed to access this "
#~ "metric"
#~ msgstr "是否访问受限。只有有权限的用户才能访问"

#~ msgid "Verbose Name"
#~ msgstr "全称"

#~ msgid "JSON"
#~ msgstr "JSON"

#~ msgid "Druid Datasource"
#~ msgstr "Druid 数据源"

#~ msgid "Warning Message"
#~ msgstr "告警信息"

#~ msgid "List Druid Cluster"
#~ msgstr "Druid 集群列表"

#~ msgid "Show Druid Cluster"
#~ msgstr "显示 Druid 集群"

#~ msgid "Add Druid Cluster"
#~ msgstr "添加 Druid 集群"

#~ msgid "Edit Druid Cluster"
#~ msgstr "编辑 Druid 集群"

#~ msgid "Cluster"
#~ msgstr "集群"

#~ msgid "Broker Host"
#~ msgstr "代理主机"

#~ msgid "Broker Port"
#~ msgstr "代理端口"

#~ msgid "Broker Endpoint"
#~ msgstr "代理端点"

#~ msgid "Druid Clusters"
#~ msgstr "Druid 集群"

#~ msgid "Sources"
#~ msgstr "数据源"

#~ msgid "List Druid Datasource"
#~ msgstr "Druid 数据源列表"

#~ msgid "Show Druid Datasource"
#~ msgstr "显示 Druid 数据源"

#~ msgid "Add Druid Datasource"
#~ msgstr "添加 Druid 数据源"

#~ msgid "Edit Druid Datasource"
#~ msgstr "编辑 Druid 数据源"

#~ msgid ""
#~ "The list of charts associated with "
#~ "this table. By altering this datasource,"
#~ " you may change how these associated"
#~ " charts behave. Also note that charts"
#~ " need to point to a datasource, "
#~ "so this form will fail at saving"
#~ " if removing charts from a "
#~ "datasource. If you want to change "
#~ "the datasource for a chart, overwrite"
#~ " the chart from the 'explore view'"
#~ msgstr "与此表关联的图表列表。通过更改此数据源，您可以更改这些相关图表的行为。还要注意，图表需要指向数据源，如果从数据源中删除图表，则此窗体将无法保存。如果要为图表更改数据源，请从“浏览视图”更改该图表。"

#~ msgid "Timezone offset (in hours) for this datasource"
#~ msgstr "数据源的时差(单位：小时)"

#~ msgid ""
#~ "Time expression to use as a "
#~ "predicate when retrieving distinct values "
#~ "to populate the filter component. Only"
#~ " applies when `Enable Filter Select` "
#~ "is on. If you enter `7 days "
#~ "ago`, the distinct list of values "
#~ "in the filter will be populated "
#~ "based on the distinct value over "
#~ "the past week"
#~ msgstr "当检索不同的值以填充过滤器组件时，时间表达式用作条件。只适用于`启用过滤器选择`。如果您输入`7天前`，将根据过去一周的不同值来填充ilter中不同的值列表"

#~ msgid ""
#~ "Whether to populate the filter's "
#~ "dropdown in the explore view's filter"
#~ " section with a list of distinct "
#~ "values fetched from the backend on "
#~ "the fly"
#~ msgstr "是否在浏览视图的过滤器部分中填充过滤器的下拉列表，并提供从后端获取的不同值的列表"

#~ msgid ""
#~ "Redirects to this endpoint when clicking"
#~ " on the datasource from the "
#~ "datasource list"
#~ msgstr "在数据源列表中点击数据源将重定向到此端点"

#~ msgid "Associated Charts"
#~ msgstr "关联的图表"

#~ msgid "Data Source"
#~ msgstr "数据源"

#~ msgid "Owner"
#~ msgstr "所有者"

#~ msgid "Is Hidden"
#~ msgstr "隐藏"

#~ msgid "Enable Filter Select"
#~ msgstr "启用过滤器选择"

#~ msgid "Default Endpoint"
#~ msgstr "默认端点"

#~ msgid "Time Offset"
#~ msgstr "时间偏移"

#~ msgid "Cache Timeout"
#~ msgstr "缓存时间"

#~ msgid "Druid Datasources"
#~ msgstr "Druid 数据源"

#~ msgid "Scan New Datasources"
#~ msgstr "扫描新的数据源"

#~ msgid "Refresh Druid Metadata"
#~ msgstr "刷新 Druid 元数据"

#~ msgid ""
#~ "Datetime column not provided as part "
#~ "table configuration and is required by"
#~ " this type of chart"
#~ msgstr "缺少时间字段"

#~ msgid "Empty query?"
#~ msgstr "查询为空？"

#~ msgid "Metric '{}' is not valid"
#~ msgstr "'{}'是无效的"

#~ msgid ""
#~ "Table [{}] doesn't seem to exist "
#~ "in the specified database, couldn't "
#~ "fetch column information"
#~ msgstr "指定的数据库中似乎不存在 [{}] 表，无法获取列信息"

#~ msgid "List Columns"
#~ msgstr "列列表"

#~ msgid "Show Column"
#~ msgstr "显示列"

#~ msgid "Add Column"
#~ msgstr "添加列"

#~ msgid "Edit Column"
#~ msgstr "编辑列"

#~ msgid ""
#~ "Whether to make this column available"
#~ " as a [Time Granularity] option, "
#~ "column has to be DATETIME or "
#~ "DATETIME-like"
#~ msgstr "是否将此列作为[时间粒度]选项, 列中的数据类型必须是DATETIME"

#~ msgid ""
#~ "The data type that was inferred by"
#~ " the database. It may be necessary"
#~ " to input a type manually for "
#~ "expression-defined columns in some cases."
#~ " In most case users should not "
#~ "need to alter this."
#~ msgstr "由数据库推断的数据类型。在某些情况下，可能需要为表达式定义的列手工输入一个类型。在大多数情况下，用户不需要修改这个数据类型。"

#~ msgid "Expression"
#~ msgstr "表达式"

#~ msgid "Is temporal"
#~ msgstr "表示时间"

#~ msgid "Datetime Format"
#~ msgstr "时间格式"

#~ msgid "Database Expression"
#~ msgstr "数据库表达式"

#~ msgid "List Metrics"
#~ msgstr "指标列"

#~ msgid "Show Metric"
#~ msgstr "显示指标"

#~ msgid "Add Metric"
#~ msgstr "添加指标"

#~ msgid "Edit Metric"
#~ msgstr "编辑指标"

#~ msgid "SQL Expression"
#~ msgstr "SQL表达式"

#~ msgid "D3 Format"
#~ msgstr "D3 格式"

#~ msgid "Is Restricted"
#~ msgstr "受限的"

#~ msgid "List Tables"
#~ msgstr "表列表"

#~ msgid "Show Table"
#~ msgstr "显示表"

#~ msgid "Add Table"
#~ msgstr "添加表"

#~ msgid "Edit Table"
#~ msgstr "编辑表"

#~ msgid "Name of the table that exists in the source database"
#~ msgstr "源数据库中存在的表的名称"

#~ msgid "Schema, as used only in some databases like Postgres, Redshift and DB2"
#~ msgstr "模式，只在一些数据库中使用，比如Postgres、Redshift和DB2"

#~ msgid ""
#~ "This fields acts a Superset view, "
#~ "meaning that Superset will run a "
#~ "query against this string as a "
#~ "subquery."
#~ msgstr "这个字段执行Superset视图时，意味着Superset将以子查询的形式对字符串运行查询。"

#~ msgid ""
#~ "Predicate applied when fetching distinct "
#~ "value to populate the filter control "
#~ "component. Supports jinja template syntax. "
#~ "Applies only when `Enable Filter Select`"
#~ " is on."
#~ msgstr "当获取不同的值来填充过滤器组件应用时。支持jinja的模板语法。只在`启用过滤器选择`时应用。"

#~ msgid ""
#~ "Redirects to this endpoint when clicking"
#~ " on the table from the table "
#~ "list"
#~ msgstr "点击表列表中的表时将重定向到此端点"

#~ msgid "Whether the table was generated by the 'Visualize' flow in SQL Lab"
#~ msgstr "表是否由 sql 实验室中的 \"可视化\" 流生成"

#~ msgid ""
#~ "A set of parameters that become "
#~ "available in the query using Jinja "
#~ "templating syntax"
#~ msgstr "在查询中可用的一组参数使用JINJA模板语法"

#~ msgid "Changed By"
#~ msgstr "修改人"

#~ msgid "Last Changed"
#~ msgstr "更新时间"

#~ msgid "Offset"
#~ msgstr "偏移"

#~ msgid "Fetch Values Predicate"
#~ msgstr "取值谓词"

#~ msgid "Main Datetime Column"
#~ msgstr "主日期列"

#~ msgid "SQL Lab View"
#~ msgstr "SQL Lab 视图"

#~ msgid "Template parameters"
#~ msgstr "模板参数"

#~ msgid ""
#~ "Table [{}] could not be found, "
#~ "please double check your database "
#~ "connection, schema, and table name"
#~ msgstr "找不到 [{}] 表，请仔细检查您的数据库连接、Schema 和 表名"

#~ msgid ""
#~ "The table was created. As part of"
#~ " this two-phase configuration process, "
#~ "you should now click the edit "
#~ "button by the new table to "
#~ "configure it."
#~ msgstr "表被创建。作为这两个阶段配置过程的一部分，您现在应该单击新表的编辑按钮来配置它。"

#~ msgid "Refresh Metadata"
#~ msgstr "刷新元数据"

#~ msgid "Refresh column metadata"
#~ msgstr "刷新字段元数据"

#~ msgid "Metadata refreshed for the following table(s): %(tables)s"
#~ msgstr "为下表刷新元数据:%(tables)s"

#~ msgid "Tables"
#~ msgstr "数据表"

#~ msgid "Profile"
#~ msgstr "用户信息"

#~ msgid "Logout"
#~ msgstr "退出"

#~ msgid "Login"
#~ msgstr "登录"

#~ msgid "Record Count"
#~ msgstr "记录数"

#~ msgid "No records found"
#~ msgstr "没有找到任何记录"

#~ msgid "Import dashboards"
#~ msgstr "仪表盘导入"

#~ msgid "No Access!"
#~ msgstr "不能访问!"

#~ msgid "You do not have permissions to access the datasource(s): %(name)s."
#~ msgstr "您没有权限访问数据源(s): %(name)s。"

#~ msgid "Request Permissions"
#~ msgstr "请求权限"

#~ msgid "Test Connection"
#~ msgstr "测试连接"

#~ msgid "Annotation Layers"
#~ msgstr "注解层"

#~ msgid "Manage"
#~ msgstr "管理"

#~ msgid "Annotations"
#~ msgstr "注解"

#~ msgid "Datasource %(name)s already exists"
#~ msgstr "数据源%(name)s 已存在"

#~ msgid "json isn't valid"
#~ msgstr "无效 JSON"

#~ msgid "Export to YAML"
#~ msgstr "导出到YAML"

#~ msgid "Export to YAML?"
#~ msgstr "导出到YAML？"

#~ msgid "Delete"
#~ msgstr "删除"

#~ msgid "Delete all Really?"
#~ msgstr "确定删除全部？"

#~ msgid "This endpoint requires the `all_datasource_access` permission"
#~ msgstr "这个端点需要“all_datasource_access”的权限"

#~ msgid "The datasource seems to have been deleted"
#~ msgstr "数据源已经被删除"

#~ msgid "The access requests seem to have been deleted"
#~ msgstr "访问请求已被删除"

#~ msgid "The user seems to have been deleted"
#~ msgstr "用户已经被删除"

#~ msgid ""
#~ "You don't have access to this "
#~ "datasource. <a href='{}'>(Gain access)</a>"
#~ msgstr "您无法访问此数据源。< a href = ‘{}’> (获取权限) </a>"

#~ msgid "You don't have access to this datasource"
#~ msgstr "你不能访问这个数据源"

#~ msgid ""
#~ "This view requires the database %(name)s"
#~ " or `all_datasource_access` permission"
#~ msgstr "此视图需要数据库 %(name)s或“all_datasource_access”权限"

#~ msgid "List Databases"
#~ msgstr "数据库列表"

#~ msgid "Show Database"
#~ msgstr "显示数据库"

#~ msgid "Add Database"
#~ msgstr "添加数据库"

#~ msgid "Edit Database"
#~ msgstr "编辑数据库"

#~ msgid "Expose this DB in SQL Lab"
#~ msgstr "在 SQL 工具箱中公开这个数据库"

#~ msgid ""
#~ "Allow users to run synchronous queries,"
#~ " this is the default and should "
#~ "work well for queries that can be"
#~ " executed within a web request scope"
#~ " (<~1 minute)"
#~ msgstr "允许用户运行同步查询，这是默认值，可以很好地处理在web请求范围内执行的查询（<~ 1 分钟）"

#~ msgid ""
#~ "Allow users to run queries, against "
#~ "an async backend. This assumes that "
#~ "you have a Celery worker setup as"
#~ " well as a results backend."
#~ msgstr "允许用户对异步后端运行查询。 假设您有一个 Celery 工作者设置以及后端结果。"

#~ msgid "Allow CREATE TABLE AS option in SQL Lab"
#~ msgstr "在 SQL 编辑器中允许 CREATE TABLE AS 选项"

#~ msgid ""
#~ "Allow users to run non-SELECT "
#~ "statements (UPDATE, DELETE, CREATE, ...) "
#~ "in SQL Lab"
#~ msgstr "允许用户在 SQL 编辑器中运行非 SELECT 语句（UPDATE，DELETE，CREATE，...）"

#~ msgid ""
#~ "When allowing CREATE TABLE AS option "
#~ "in SQL Lab, this option forces the"
#~ " table to be created in this "
#~ "schema"
#~ msgstr "当在 SQL 编辑器中允许 CREATE TABLE AS 选项时，此选项可以此模式中强制创建表"

#~ msgid ""
#~ "If Presto, all the queries in SQL"
#~ " Lab are going to be executed "
#~ "as the currently logged on user "
#~ "who must have permission to run "
#~ "them.<br/>If Hive and hive.server2.enable.doAs "
#~ "is enabled, will run the queries "
#~ "as service account, but impersonate the"
#~ " currently logged on user via "
#~ "hive.server2.proxy.user property."
#~ msgstr ""
#~ "如果使用Presto，SQL 工具箱中的所有查询都将被当前登录的用户执行，并且这些用户必须拥有运行它们的权限。<br/>如果启用"
#~ " Hive "
#~ "和hive.server2.enable.doAs，将作为服务帐户运行查询，但会根据hive.server2.proxy.user的属性伪装当前登录用户。"

#~ msgid ""
#~ "Allow SQL Lab to fetch a list "
#~ "of all tables and all views across"
#~ " all database schemas. For large data"
#~ " warehouse with thousands of tables, "
#~ "this can be expensive and put "
#~ "strain on the system."
#~ msgstr "允许 sql lab 获取所有数据库架构中的所有表和所有视图的列表。对于具有数千个表的大型数据仓库, 这可能会很耗费性能, 并给系统带来压力。"

#~ msgid "Expose in SQL Lab"
#~ msgstr "在 SQL 工具箱中公开"

#~ msgid "Allow CREATE TABLE AS"
#~ msgstr "允许 CREATE TABLE AS"

#~ msgid "Allow DML"
#~ msgstr "允许 DML"

#~ msgid "CTAS Schema"
#~ msgstr "CTAS 模式"

#~ msgid "Creator"
#~ msgstr "作者"

#~ msgid "SQLAlchemy URI"
#~ msgstr "SQLAlchemy URI"

#~ msgid "Extra"
#~ msgstr "扩展"

#~ msgid "Allow Run Sync"
#~ msgstr "允许同步运行"

#~ msgid "Allow Run Async"
#~ msgstr "允许异步运行"

#~ msgid "Impersonate the logged on user"
#~ msgstr "模拟登录用户"

#~ msgid "Import Dashboards"
#~ msgstr "导入仪表盘"

#~ msgid "CSV to Database configuration"
#~ msgstr "csv 到数据库配置"

#~ msgid ""
#~ "CSV file \"%(csv_filename)s\" uploaded to "
#~ "table \"%(table_name)s\" in database "
#~ "\"%(db_name)s\""
#~ msgstr ""
#~ "csv 文件 \"%(csv_filename)s\" 上传到数据库 "
#~ "\"%(db_name)s\" 中的表 \"%(table_name)s\""

#~ msgid "User"
#~ msgstr "用户"

#~ msgid "User Roles"
#~ msgstr "用户角色"

#~ msgid "Database URL"
#~ msgstr "数据库URL"

#~ msgid "Roles to grant"
#~ msgstr "角色授权"

#~ msgid "Created On"
#~ msgstr "创建日期"

#~ msgid "Access requests"
#~ msgstr "访问请求"

#~ msgid "Security"
#~ msgstr "安全"

#~ msgid "List Charts"
#~ msgstr "图表列表"

#~ msgid "Show Chart"
#~ msgstr "显示图表"

#~ msgid "Add Chart"
#~ msgstr "添加图表"

#~ msgid "Edit Chart"
#~ msgstr "编辑图表"

#~ msgid ""
#~ "These parameters are generated dynamically "
#~ "when clicking the save or overwrite "
#~ "button in the explore view. This "
#~ "JSON object is exposed here for "
#~ "reference and for power users who "
#~ "may want to alter specific parameters."
#~ msgstr "当单击“保存”或“覆盖”按钮时，这些参数会在视图中动态生成。高级用户可以在这里改变特定的参数。"

#~ msgid "Duration (in seconds) of the caching timeout for this chart."
#~ msgstr "图表数据过期时间（秒）"

#~ msgid "Last Modified"
#~ msgstr "最后修改"

#~ msgid "Owners"
#~ msgstr "所有者"

#~ msgid "Parameters"
#~ msgstr "参数"

#~ msgid "Chart"
#~ msgstr "图表"

#~ msgid "List Dashboards"
#~ msgstr "仪表盘列表"

#~ msgid "Show Dashboard"
#~ msgstr "显示仪表盘"

#~ msgid "Add Dashboard"
#~ msgstr "添加仪表盘"

#~ msgid "Edit Dashboard"
#~ msgstr "编辑仪表盘"

#~ msgid ""
#~ "This json object describes the "
#~ "positioning of the widgets in the "
#~ "dashboard. It is dynamically generated "
#~ "when adjusting the widgets size and "
#~ "positions by using drag & drop in"
#~ " the dashboard view"
#~ msgstr "这个JSON对象描述了部件在看板中的位置。它是动态生成的，可以通过拖放，在看板中调整整部件的大小和位置"

#~ msgid ""
#~ "The CSS for individual dashboards can"
#~ " be altered here, or in the "
#~ "dashboard view where changes are "
#~ "immediately visible"
#~ msgstr "可以在这里或者在看板视图修改单个看板的CSS样式"

#~ msgid "To get a readable URL for your dashboard"
#~ msgstr "为看板生成一个可读的 URL"

#~ msgid ""
#~ "This JSON object is generated "
#~ "dynamically when clicking the save or"
#~ " overwrite button in the dashboard "
#~ "view. It is exposed here for "
#~ "reference and for power users who "
#~ "may want to alter specific parameters."
#~ msgstr "当在看板视图中单击“保存”或“覆盖”按钮时，这些参数会在视图中动态生成。高级用户可以在这里改变特定的参数。"

#~ msgid "Owners is a list of users who can alter the dashboard."
#~ msgstr "“所有者”是一组可以修改看板的用户列表。"

#~ msgid "Dashboard"
#~ msgstr "看板"

#~ msgid "Slug"
#~ msgstr "Slug"

#~ msgid "Position JSON"
#~ msgstr "位置参数"

#~ msgid "JSON Metadata"
#~ msgstr "JSON 模板"

#~ msgid "Underlying Tables"
#~ msgstr "底层表"

#~ msgid "Export"
#~ msgstr "导出"

#~ msgid "Export dashboards?"
#~ msgstr "导出仪表盘?"

#~ msgid "Action"
#~ msgstr "操作"

#~ msgid "dttm"
#~ msgstr "dttm"

#~ msgid "Action Log"
#~ msgstr "操作日志"

#~ msgid "Access was requested"
#~ msgstr "请求访问"

#~ msgid ""
#~ "%(user)s was granted the role %(role)s"
#~ " that gives access to the "
#~ "%(datasource)s"
#~ msgstr "授予 %(user)s %(role)s 角色来访问 %(datasource)s 数据库"

#~ msgid "Role %(r)s was extended to provide the access to the datasource %(ds)s"
#~ msgstr "扩展角色 %(r)s 以提供对 datasource %(ds)s 的访问"

#~ msgid "You have no permission to approve this request"
#~ msgstr "您没有权限批准此请求"

#~ msgid "You don't have the rights to "
#~ msgstr "你没有授权 "

#~ msgid "alter this "
#~ msgstr "修改这个 "

#~ msgid "chart"
#~ msgstr "图表"

#~ msgid "create a "
#~ msgstr "创建一个 "

#~ msgid "dashboard"
#~ msgstr "看板"

#~ msgid ""
#~ "Malformed request. slice_id or table_name "
#~ "and db_name arguments are expected"
#~ msgstr "格式错误的请求。需要使用 slice_id 或 table_name 和 db_name 参数"

#~ msgid "Chart %(id)s not found"
#~ msgstr "图表 %(id)s 没有找到"

#~ msgid "Table %(t)s wasn't found in the database %(d)s"
#~ msgstr "在数据库 %(d)s 中找不到表 %(t)s"

#~ msgid "Can't find User '%(name)s', please ask your admin to create one."
#~ msgstr "用户’%(name)s’没有找到，请联系管理员创建。"

#~ msgid "Can't find DruidCluster with cluster_name = '%(name)s'"
#~ msgstr "不能找到具有 cluster_name = '%(name)s' 的 Druid 集群"

#~ msgid "Query record was not created as expected."
#~ msgstr "查询记录没有按预期创建。"

#~ msgid "Template Name"
#~ msgstr "模板名称"

#~ msgid "CSS Templates"
#~ msgstr "CSS 模板"

#~ msgid "SQL Editor"
#~ msgstr "SQL 编辑器"

#~ msgid "SQL Lab"
#~ msgstr "SQL 工具箱"

#~ msgid "Query Search"
#~ msgstr "查询搜索"

#~ msgid "Upload a CSV"
#~ msgstr "上传CSV文件"

#~ msgid "Status"
#~ msgstr "状态"

#~ msgid "Start Time"
#~ msgstr "开始时间"

#~ msgid "End Time"
#~ msgstr "结束时间"

#~ msgid "Queries"
#~ msgstr "查询"

#~ msgid "List Saved Query"
#~ msgstr "保存的查询列表"

#~ msgid "Show Saved Query"
#~ msgstr "显示保存的查询"

#~ msgid "Add Saved Query"
#~ msgstr "添加保存的查询"

#~ msgid "Edit Saved Query"
#~ msgstr "编辑保存的查询"

#~ msgid "Pop Tab Link"
#~ msgstr "流行标签链接"

#~ msgid "Changed on"
#~ msgstr "改变为"

#~ msgid "Saved Queries"
#~ msgstr "已保存查询"

#~ msgid "Show"
#~ msgstr "每页显示"

#~ msgid "entries"
#~ msgstr "条"

#~ msgid "Chart Cache Timeout"
#~ msgstr "表缓存超时"

#~ msgid ""
#~ "Duration (in seconds) of the caching "
#~ "timeout for charts of this database. "
#~ "A timeout of 0 indicates that the"
#~ " cache never expires. Note this "
#~ "defaults to the global timeout if "
#~ "undefined."
#~ msgstr "此数据库图表的缓存超时持续时间(以秒为单位)。超时为0表示缓存永远不会过期。注意，如果未定义，这默认为全局超时。"

#~ msgid "Allow Csv Upload"
#~ msgstr "允许Csv上传"

#~ msgid "If selected, please set the schemas allowed for csv upload in Extra."
#~ msgstr "如果选择，请额外设置csv上传允许的模式。"

#~ msgid "Asynchronous Query Execution"
#~ msgstr "异步执行查询"

#~ msgid ""
#~ "Operate the database in asynchronous "
#~ "mode, meaning  that the queries are "
#~ "executed on remote workers as opposed"
#~ " to on the web server itself. "
#~ "This assumes that you have a "
#~ "Celery worker setup as well as a"
#~ " results backend. Refer to the "
#~ "installation docs for more information."
#~ msgstr ""
#~ "以异步模式操作数据库，这意味着查询是在远程工作人员上执行的，而不是在web服务器本身上执行的, 这假设您有一个Celery"
#~ " worker setup以及一个结果后端。有关更多信息，请参考安装文档。"

#~ msgid "Import a table definition"
#~ msgstr "导入一个已定义的表"

#~ msgid ""
#~ "Duration (in seconds) of the caching "
#~ "timeout for this table. A timeout "
#~ "of 0 indicates that the cache "
#~ "never expires. Note this defaults to "
#~ "the database timeout if undefined."
#~ msgstr "此表的缓存超时持续时间(以秒为单位)。超时为0表示缓存永远不会过期。注意，如果未定义，这默认为数据库的超时。"

#~ msgid ""
#~ "Duration (in seconds) of the caching "
#~ "timeout for this chart. Note this "
#~ "defaults to the datasource/table timeout "
#~ "if undefined."
#~ msgstr "此图表的缓存超时持续时间(以秒为单位)。注意，如果未定义，这默认为数据源/表超时。"

#~ msgid ""
#~ "Duration (in seconds) of the caching "
#~ "timeout for this cluster. A timeout "
#~ "of 0 indicates that the cache "
#~ "never expires. Note this defaults to "
#~ "the global timeout if undefined."
#~ msgstr "此集群的缓存超时持续时间(以秒为单位)。超时为0表示缓存永远不会过期。注意，如果未定义，这默认为全局超时。"

#~ msgid ""
#~ "Duration (in seconds) of the caching "
#~ "timeout for this datasource. A timeout"
#~ " of 0 indicates that the cache "
#~ "never expires. Note this defaults to "
#~ "the cluster timeout if undefined."
#~ msgstr "此数据源的缓存超时持续时间(以秒为单位)。超时为0表示缓存永远不会过期。注意，如果未定义，这默认为集群超时。"

#~ msgid "Layer Configuration"
#~ msgstr "配置Layer"

#~ msgid "Configure the basics of your Annotation Layer."
#~ msgstr "注释层基本配置"

#~ msgid "Mandatory"
#~ msgstr "必填参数"

#~ msgid "Hide Layer"
#~ msgstr "隐藏Layer"

#~ msgid "Annotation Layer Type"
#~ msgstr "注释层类型"

#~ msgid "Choose the Annotation Layer Type"
#~ msgstr "选择注释层类型"

#~ msgid "Display configuration"
#~ msgstr "显示配置"

#~ msgid "Style"
#~ msgstr "风格"

#~ msgid "Configure your how you overlay is displayed here."
#~ msgstr "配置如何在这里显示您的覆盖。"

#~ msgid "Line Width"
#~ msgstr "线宽"

#~ msgid "Edit chart metadata"
#~ msgstr "编辑图表元数据"

#~ msgid "Maximize"
#~ msgstr "最大化"

#~ msgid "Minimize"
#~ msgstr "还原"

#~ msgid "Share chart"
#~ msgstr "共享图表"

#~ msgid "Download as image"
#~ msgstr "下载为图片"
