More translation instrumentation and some french to test (#502)

This commit is contained in:
Maxime Beauchemin 2016-05-23 11:46:33 -07:00
parent c53874c8ab
commit 0fcab30652
13 changed files with 2000 additions and 177 deletions

View File

@ -1,14 +1,14 @@
# Translations template for Caravel.
# Translations template for PROJECT.
# Copyright (C) 2016 ORGANIZATION
# This file is distributed under the same license as the Caravel project.
# Maxime Beauchemin <maximebeauchemin @ gmail.com>, 2016.
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-05-02 00:21-0700\n"
"POT-Creation-Date: 2016-05-20 20:30-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,87 +17,423 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: caravel/models.py:564
#: caravel/models.py:607
msgid ""
"Datetime column not provided as part table configuration and is required "
"by this type of chart"
msgstr ""
#: caravel/models.py:1153
#: caravel/models.py:1243
msgid "No data was returned."
msgstr ""
#: caravel/views.py:116
#: caravel/views.py:124
msgid ""
"Whether to make this column available as a [Time Granularity] option, "
"column has to be DATETIME or DATETIME-like"
msgstr ""
#: caravel/views.py:215
#: caravel/views.py:133 caravel/views.py:161
msgid "Column"
msgstr ""
#: caravel/views.py:134 caravel/views.py:194 caravel/views.py:223
msgid "Verbose Name"
msgstr ""
#: caravel/views.py:135 caravel/views.py:193 caravel/views.py:222
#: caravel/views.py:400 caravel/views.py:535
msgid "Description"
msgstr ""
#: caravel/views.py:136 caravel/views.py:164
msgid "Groupable"
msgstr ""
#: caravel/views.py:137 caravel/views.py:165
msgid "Filterable"
msgstr ""
#: caravel/views.py:138 caravel/views.py:197 caravel/views.py:308
#: caravel/views.py:406
msgid "Table"
msgstr ""
#: caravel/views.py:139 caravel/views.py:166
msgid "Count Distinct"
msgstr ""
#: caravel/views.py:140 caravel/views.py:167
msgid "Sum"
msgstr ""
#: caravel/views.py:141 caravel/views.py:168
msgid "Min"
msgstr ""
#: caravel/views.py:142 caravel/views.py:169
msgid "Max"
msgstr ""
#: caravel/views.py:143
msgid "Expression"
msgstr ""
#: caravel/views.py:144
msgid "Is temporal"
msgstr ""
#: caravel/views.py:162 caravel/views.py:195 caravel/views.py:224
#: caravel/views.py:424
msgid "Type"
msgstr ""
#: caravel/views.py:163 caravel/views.py:399
msgid "Datasource"
msgstr ""
#: caravel/views.py:192 caravel/views.py:221
msgid "Metric"
msgstr ""
#: caravel/views.py:196
msgid "SQL Expression"
msgstr ""
#: caravel/views.py:225 caravel/views.py:503
msgid "JSON"
msgstr ""
#: caravel/views.py:226
msgid "Druid Datasource"
msgstr ""
#: caravel/views.py:257 caravel/views.py:310
msgid "Database"
msgstr ""
#: caravel/views.py:258
msgid "SQL link"
msgstr ""
#: caravel/views.py:259 caravel/views.py:397 caravel/views.py:459
msgid "Creator"
msgstr ""
#: caravel/views.py:260 caravel/views.py:311
msgid "Last Changed"
msgstr ""
#: caravel/views.py:261
msgid "SQLAlchemy URI"
msgstr ""
#: caravel/views.py:262 caravel/views.py:317 caravel/views.py:396
#: caravel/views.py:541
msgid "Cache Timeout"
msgstr ""
#: caravel/views.py:263
msgid "Extra"
msgstr ""
#: caravel/views.py:279
msgid "Databases"
msgstr ""
#: caravel/views.py:217 caravel/views.py:261 caravel/views.py:284
#: caravel/views.py:281 caravel/views.py:337 caravel/views.py:369
msgid "Sources"
msgstr ""
#: caravel/views.py:260
msgid "Tables"
#: caravel/views.py:309
msgid "Changed By"
msgstr ""
#: caravel/views.py:282
msgid "Druid Clusters"
#: caravel/views.py:312
msgid "SQL Editor"
msgstr ""
#: caravel/views.py:313
msgid "Slices"
#: caravel/views.py:313 caravel/views.py:537
msgid "Is Featured"
msgstr ""
#: caravel/views.py:341
#: caravel/views.py:314
msgid "Schema"
msgstr ""
#: caravel/views.py:315 caravel/views.py:539
msgid "Default Endpoint"
msgstr ""
#: caravel/views.py:316
msgid "Offset"
msgstr ""
#: caravel/views.py:354 caravel/views.py:534
msgid "Cluster"
msgstr ""
#: caravel/views.py:355
msgid "Coordinator Host"
msgstr ""
#: caravel/views.py:356
msgid "Coordinator Port"
msgstr ""
#: caravel/views.py:357
msgid "Coordinator Endpoint"
msgstr ""
#: caravel/views.py:358
msgid "Broker Host"
msgstr ""
#: caravel/views.py:359
msgid "Borker Port"
msgstr ""
#: caravel/views.py:360
msgid "Broker Endpoint"
msgstr ""
#: caravel/views.py:398 caravel/views.py:479
msgid "Dashboards"
msgstr ""
#: caravel/views.py:401
msgid "Last Modified"
msgstr ""
#: caravel/views.py:402 caravel/views.py:458
msgid "Owners"
msgstr ""
#: caravel/views.py:403
msgid "Parameters"
msgstr ""
#: caravel/views.py:404 caravel/views.py:425
msgid "Slice"
msgstr ""
#: caravel/views.py:405
msgid "Name"
msgstr ""
#: caravel/views.py:407 caravel/views.py:426
msgid "Visualization Type"
msgstr ""
#: caravel/views.py:441
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 ""
#: caravel/views.py:346
#: caravel/views.py:446
msgid ""
"The css for individual dashboards can be altered here, or in the "
"dashboard view where changes are immediately visible"
msgstr ""
#: caravel/views.py:367
msgid "Dashboards"
#: caravel/views.py:450
msgid "To get a readable URL for your dashboard"
msgstr ""
#: caravel/views.py:392
#: caravel/views.py:454
msgid "Dashboard"
msgstr ""
#: caravel/views.py:455
msgid "Title"
msgstr ""
#: caravel/views.py:456
msgid "Slug"
msgstr ""
#: caravel/views.py:457
msgid "Slices"
msgstr ""
#: caravel/views.py:460
msgid "Modified"
msgstr ""
#: caravel/views.py:461
msgid "Position JSON"
msgstr ""
#: caravel/views.py:462
msgid "CSS"
msgstr ""
#: caravel/views.py:463
msgid "JSON Metadata"
msgstr ""
#: caravel/views.py:500
msgid "User"
msgstr ""
#: caravel/views.py:501
msgid "Action"
msgstr ""
#: caravel/views.py:502
msgid "dttm"
msgstr ""
#: caravel/views.py:509
msgid "Action Log"
msgstr ""
#: caravel/views.py:393
#: caravel/views.py:510
msgid "Security"
msgstr ""
#: caravel/views.py:430
#: caravel/views.py:527
msgid "Timezone offset (in hours) for this datasource"
msgstr ""
#: caravel/views.py:533
msgid "Data Source"
msgstr ""
#: caravel/views.py:536
msgid "Owner"
msgstr ""
#: caravel/views.py:538
msgid "Is Hidden"
msgstr ""
#: caravel/views.py:540
msgid "Time Offset"
msgstr ""
#: caravel/views.py:555
msgid "Druid Datasources"
msgstr ""
#: caravel/views.py:514
#: caravel/views.py:639
msgid "The datasource seems to have been deleted"
msgstr ""
#: caravel/views.py:522
#: caravel/views.py:647
msgid "You don't seem to have access to this datasource"
msgstr ""
#: caravel/views.py:843
#: caravel/views.py:970
msgid "This view requires the `all_datasource_access` permission"
msgstr ""
#: caravel/views.py:954
#: caravel/views.py:1081
msgid "CSS Templates"
msgstr ""
#: caravel/viz.py:324
msgid "Table View"
msgstr ""
#: caravel/viz.py:385
msgid "Pivot Table"
msgstr ""
#: caravel/viz.py:447
msgid "Markup"
msgstr ""
#: caravel/viz.py:475
msgid "Word Cloud"
msgstr ""
#: caravel/viz.py:507
msgid "Treemap"
msgstr ""
#: caravel/viz.py:551
msgid "Calender Heatmap"
msgstr ""
#: caravel/viz.py:622
msgid "Box Plot"
msgstr ""
#: caravel/viz.py:729
msgid "Bubble Chart"
msgstr ""
#: caravel/viz.py:797
msgid "Big Number with Trendline"
msgstr ""
#: caravel/viz.py:847
msgid "Big Number"
msgstr ""
#: caravel/viz.py:893
msgid "Time Series - Line Chart"
msgstr ""
#: caravel/viz.py:1045
msgid "Time Series - Bar Chart"
msgstr ""
#: caravel/viz.py:1063
msgid "Time Series - Percent Change"
msgstr ""
#: caravel/viz.py:1071
msgid "Time Series - Stacked"
msgstr ""
#: caravel/viz.py:1090
msgid "Distribution - NVD3 - Pie Chart"
msgstr ""
#: caravel/viz.py:1126
msgid "Distribution - Bar Chart"
msgstr ""
#: caravel/viz.py:1206
msgid "Sunburst"
msgstr ""
#: caravel/viz.py:1272
msgid "Sankey"
msgstr ""
#: caravel/viz.py:1336
msgid "Directed Force Layout"
msgstr ""
#: caravel/viz.py:1378
msgid "World Map"
msgstr ""
#: caravel/viz.py:1452
msgid "Filters"
msgstr ""
#: caravel/viz.py:1500
msgid "iFrame"
msgstr ""
#: caravel/viz.py:1518
msgid "Parallel Coordinates"
msgstr ""
#: caravel/viz.py:1554
msgid "Heatmap"
msgstr ""
#: caravel/viz.py:1622
msgid "Horizon Charts"
msgstr ""
#: caravel/templates/appbuilder/navbar_right.html:34
msgid "Profile"
msgstr ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-05-02 00:21-0700\n"
"POT-Creation-Date: 2016-05-20 20:30-0700\n"
"PO-Revision-Date: 2016-05-02 08:49-0700\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: es\n"
@ -18,87 +18,423 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: caravel/models.py:564
#: caravel/models.py:607
msgid ""
"Datetime column not provided as part table configuration and is required "
"by this type of chart"
msgstr ""
#: caravel/models.py:1153
#: caravel/models.py:1243
msgid "No data was returned."
msgstr ""
#: caravel/views.py:116
#: caravel/views.py:124
msgid ""
"Whether to make this column available as a [Time Granularity] option, "
"column has to be DATETIME or DATETIME-like"
msgstr ""
#: caravel/views.py:215
#: caravel/views.py:133 caravel/views.py:161
msgid "Column"
msgstr ""
#: caravel/views.py:134 caravel/views.py:194 caravel/views.py:223
msgid "Verbose Name"
msgstr ""
#: caravel/views.py:135 caravel/views.py:193 caravel/views.py:222
#: caravel/views.py:400 caravel/views.py:535
msgid "Description"
msgstr ""
#: caravel/views.py:136 caravel/views.py:164
msgid "Groupable"
msgstr ""
#: caravel/views.py:137 caravel/views.py:165
msgid "Filterable"
msgstr ""
#: caravel/views.py:138 caravel/views.py:197 caravel/views.py:308
#: caravel/views.py:406
msgid "Table"
msgstr ""
#: caravel/views.py:139 caravel/views.py:166
msgid "Count Distinct"
msgstr ""
#: caravel/views.py:140 caravel/views.py:167
msgid "Sum"
msgstr ""
#: caravel/views.py:141 caravel/views.py:168
msgid "Min"
msgstr ""
#: caravel/views.py:142 caravel/views.py:169
msgid "Max"
msgstr ""
#: caravel/views.py:143
msgid "Expression"
msgstr ""
#: caravel/views.py:144
msgid "Is temporal"
msgstr ""
#: caravel/views.py:162 caravel/views.py:195 caravel/views.py:224
#: caravel/views.py:424
msgid "Type"
msgstr ""
#: caravel/views.py:163 caravel/views.py:399
msgid "Datasource"
msgstr ""
#: caravel/views.py:192 caravel/views.py:221
msgid "Metric"
msgstr ""
#: caravel/views.py:196
msgid "SQL Expression"
msgstr ""
#: caravel/views.py:225 caravel/views.py:503
msgid "JSON"
msgstr ""
#: caravel/views.py:226
msgid "Druid Datasource"
msgstr ""
#: caravel/views.py:257 caravel/views.py:310
msgid "Database"
msgstr ""
#: caravel/views.py:258
msgid "SQL link"
msgstr ""
#: caravel/views.py:259 caravel/views.py:397 caravel/views.py:459
msgid "Creator"
msgstr ""
#: caravel/views.py:260 caravel/views.py:311
msgid "Last Changed"
msgstr ""
#: caravel/views.py:261
msgid "SQLAlchemy URI"
msgstr ""
#: caravel/views.py:262 caravel/views.py:317 caravel/views.py:396
#: caravel/views.py:541
msgid "Cache Timeout"
msgstr ""
#: caravel/views.py:263
msgid "Extra"
msgstr ""
#: caravel/views.py:279
msgid "Databases"
msgstr ""
#: caravel/views.py:217 caravel/views.py:261 caravel/views.py:284
#: caravel/views.py:281 caravel/views.py:337 caravel/views.py:369
msgid "Sources"
msgstr ""
#: caravel/views.py:260
msgid "Tables"
#: caravel/views.py:309
msgid "Changed By"
msgstr ""
#: caravel/views.py:282
msgid "Druid Clusters"
#: caravel/views.py:312
msgid "SQL Editor"
msgstr ""
#: caravel/views.py:313
msgid "Slices"
#: caravel/views.py:313 caravel/views.py:537
msgid "Is Featured"
msgstr ""
#: caravel/views.py:341
#: caravel/views.py:314
msgid "Schema"
msgstr ""
#: caravel/views.py:315 caravel/views.py:539
msgid "Default Endpoint"
msgstr ""
#: caravel/views.py:316
msgid "Offset"
msgstr ""
#: caravel/views.py:354 caravel/views.py:534
msgid "Cluster"
msgstr ""
#: caravel/views.py:355
msgid "Coordinator Host"
msgstr ""
#: caravel/views.py:356
msgid "Coordinator Port"
msgstr ""
#: caravel/views.py:357
msgid "Coordinator Endpoint"
msgstr ""
#: caravel/views.py:358
msgid "Broker Host"
msgstr ""
#: caravel/views.py:359
msgid "Borker Port"
msgstr ""
#: caravel/views.py:360
msgid "Broker Endpoint"
msgstr ""
#: caravel/views.py:398 caravel/views.py:479
msgid "Dashboards"
msgstr ""
#: caravel/views.py:401
msgid "Last Modified"
msgstr ""
#: caravel/views.py:402 caravel/views.py:458
msgid "Owners"
msgstr ""
#: caravel/views.py:403
msgid "Parameters"
msgstr ""
#: caravel/views.py:404 caravel/views.py:425
msgid "Slice"
msgstr ""
#: caravel/views.py:405
msgid "Name"
msgstr ""
#: caravel/views.py:407 caravel/views.py:426
msgid "Visualization Type"
msgstr ""
#: caravel/views.py:441
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 ""
#: caravel/views.py:346
#: caravel/views.py:446
msgid ""
"The css for individual dashboards can be altered here, or in the "
"dashboard view where changes are immediately visible"
msgstr ""
#: caravel/views.py:367
msgid "Dashboards"
#: caravel/views.py:450
msgid "To get a readable URL for your dashboard"
msgstr ""
#: caravel/views.py:392
#: caravel/views.py:454
msgid "Dashboard"
msgstr ""
#: caravel/views.py:455
msgid "Title"
msgstr ""
#: caravel/views.py:456
msgid "Slug"
msgstr ""
#: caravel/views.py:457
msgid "Slices"
msgstr ""
#: caravel/views.py:460
msgid "Modified"
msgstr ""
#: caravel/views.py:461
msgid "Position JSON"
msgstr ""
#: caravel/views.py:462
msgid "CSS"
msgstr ""
#: caravel/views.py:463
msgid "JSON Metadata"
msgstr ""
#: caravel/views.py:500
msgid "User"
msgstr ""
#: caravel/views.py:501
msgid "Action"
msgstr ""
#: caravel/views.py:502
msgid "dttm"
msgstr ""
#: caravel/views.py:509
msgid "Action Log"
msgstr ""
#: caravel/views.py:393
#: caravel/views.py:510
msgid "Security"
msgstr ""
#: caravel/views.py:430
#: caravel/views.py:527
msgid "Timezone offset (in hours) for this datasource"
msgstr ""
#: caravel/views.py:533
msgid "Data Source"
msgstr ""
#: caravel/views.py:536
msgid "Owner"
msgstr ""
#: caravel/views.py:538
msgid "Is Hidden"
msgstr ""
#: caravel/views.py:540
msgid "Time Offset"
msgstr ""
#: caravel/views.py:555
msgid "Druid Datasources"
msgstr ""
#: caravel/views.py:514
#: caravel/views.py:639
msgid "The datasource seems to have been deleted"
msgstr ""
#: caravel/views.py:522
#: caravel/views.py:647
msgid "You don't seem to have access to this datasource"
msgstr ""
#: caravel/views.py:843
#: caravel/views.py:970
msgid "This view requires the `all_datasource_access` permission"
msgstr ""
#: caravel/views.py:954
#: caravel/views.py:1081
msgid "CSS Templates"
msgstr ""
#: caravel/viz.py:324
msgid "Table View"
msgstr ""
#: caravel/viz.py:385
msgid "Pivot Table"
msgstr ""
#: caravel/viz.py:447
msgid "Markup"
msgstr ""
#: caravel/viz.py:475
msgid "Word Cloud"
msgstr ""
#: caravel/viz.py:507
msgid "Treemap"
msgstr ""
#: caravel/viz.py:551
msgid "Calender Heatmap"
msgstr ""
#: caravel/viz.py:622
msgid "Box Plot"
msgstr ""
#: caravel/viz.py:729
msgid "Bubble Chart"
msgstr ""
#: caravel/viz.py:797
msgid "Big Number with Trendline"
msgstr ""
#: caravel/viz.py:847
msgid "Big Number"
msgstr ""
#: caravel/viz.py:893
msgid "Time Series - Line Chart"
msgstr ""
#: caravel/viz.py:1045
msgid "Time Series - Bar Chart"
msgstr ""
#: caravel/viz.py:1063
msgid "Time Series - Percent Change"
msgstr ""
#: caravel/viz.py:1071
msgid "Time Series - Stacked"
msgstr ""
#: caravel/viz.py:1090
msgid "Distribution - NVD3 - Pie Chart"
msgstr ""
#: caravel/viz.py:1126
msgid "Distribution - Bar Chart"
msgstr ""
#: caravel/viz.py:1206
msgid "Sunburst"
msgstr ""
#: caravel/viz.py:1272
msgid "Sankey"
msgstr ""
#: caravel/viz.py:1336
msgid "Directed Force Layout"
msgstr ""
#: caravel/viz.py:1378
msgid "World Map"
msgstr ""
#: caravel/viz.py:1452
msgid "Filters"
msgstr ""
#: caravel/viz.py:1500
msgid "iFrame"
msgstr ""
#: caravel/viz.py:1518
msgid "Parallel Coordinates"
msgstr ""
#: caravel/viz.py:1554
msgid "Heatmap"
msgstr ""
#: caravel/viz.py:1622
msgid "Horizon Charts"
msgstr ""
#: caravel/templates/appbuilder/navbar_right.html:34
msgid "Profile"
msgstr ""
@ -116,3 +452,9 @@ msgstr ""
msgid "Welcome!"
msgstr ""
#~ msgid "Tables"
#~ msgstr ""
#~ msgid "Druid Clusters"
#~ msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-05-02 00:21-0700\n"
"POT-Creation-Date: 2016-05-20 20:30-0700\n"
"PO-Revision-Date: 2016-05-01 23:07-0700\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fr\n"
@ -18,87 +18,423 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: caravel/models.py:564
#: caravel/models.py:607
msgid ""
"Datetime column not provided as part table configuration and is required "
"by this type of chart"
msgstr ""
#: caravel/models.py:1153
#: caravel/models.py:1243
msgid "No data was returned."
msgstr ""
#: caravel/views.py:116
#: caravel/views.py:124
msgid ""
"Whether to make this column available as a [Time Granularity] option, "
"column has to be DATETIME or DATETIME-like"
msgstr ""
#: caravel/views.py:215
msgid "Databases"
#: caravel/views.py:133 caravel/views.py:161
msgid "Column"
msgstr "Colonne"
#: caravel/views.py:134 caravel/views.py:194 caravel/views.py:223
msgid "Verbose Name"
msgstr "Nom Complet"
#: caravel/views.py:135 caravel/views.py:193 caravel/views.py:222
#: caravel/views.py:400 caravel/views.py:535
msgid "Description"
msgstr ""
#: caravel/views.py:217 caravel/views.py:261 caravel/views.py:284
#: caravel/views.py:136 caravel/views.py:164
msgid "Groupable"
msgstr ""
#: caravel/views.py:137 caravel/views.py:165
msgid "Filterable"
msgstr "Filtrable"
#: caravel/views.py:138 caravel/views.py:197 caravel/views.py:308
#: caravel/views.py:406
msgid "Table"
msgstr ""
#: caravel/views.py:139 caravel/views.py:166
msgid "Count Distinct"
msgstr ""
#: caravel/views.py:140 caravel/views.py:167
msgid "Sum"
msgstr "Somme"
#: caravel/views.py:141 caravel/views.py:168
msgid "Min"
msgstr ""
#: caravel/views.py:142 caravel/views.py:169
msgid "Max"
msgstr ""
#: caravel/views.py:143
msgid "Expression"
msgstr ""
#: caravel/views.py:144
msgid "Is temporal"
msgstr "Est temporel"
#: caravel/views.py:162 caravel/views.py:195 caravel/views.py:224
#: caravel/views.py:424
msgid "Type"
msgstr ""
#: caravel/views.py:163 caravel/views.py:399
msgid "Datasource"
msgstr "Source de données"
#: caravel/views.py:192 caravel/views.py:221
msgid "Metric"
msgstr ""
#: caravel/views.py:196
msgid "SQL Expression"
msgstr ""
#: caravel/views.py:225 caravel/views.py:503
msgid "JSON"
msgstr ""
#: caravel/views.py:226
msgid "Druid Datasource"
msgstr "Source de données Druid"
#: caravel/views.py:257 caravel/views.py:310
msgid "Database"
msgstr "Base de données"
#: caravel/views.py:258
msgid "SQL link"
msgstr "Lien SQL"
#: caravel/views.py:259 caravel/views.py:397 caravel/views.py:459
msgid "Creator"
msgstr "Createur"
#: caravel/views.py:260 caravel/views.py:311
msgid "Last Changed"
msgstr "Modifié"
#: caravel/views.py:261
msgid "SQLAlchemy URI"
msgstr ""
#: caravel/views.py:262 caravel/views.py:317 caravel/views.py:396
#: caravel/views.py:541
msgid "Cache Timeout"
msgstr ""
#: caravel/views.py:263
msgid "Extra"
msgstr ""
#: caravel/views.py:279
msgid "Databases"
msgstr "Base de Données"
#: caravel/views.py:281 caravel/views.py:337 caravel/views.py:369
msgid "Sources"
msgstr ""
#: caravel/views.py:260
msgid "Tables"
#: caravel/views.py:309
msgid "Changed By"
msgstr ""
#: caravel/views.py:282
msgid "Druid Clusters"
#: caravel/views.py:312
msgid "SQL Editor"
msgstr ""
#: caravel/views.py:313
msgid "Slices"
#: caravel/views.py:313 caravel/views.py:537
msgid "Is Featured"
msgstr ""
#: caravel/views.py:341
#: caravel/views.py:314
msgid "Schema"
msgstr ""
#: caravel/views.py:315 caravel/views.py:539
msgid "Default Endpoint"
msgstr ""
#: caravel/views.py:316
msgid "Offset"
msgstr ""
#: caravel/views.py:354 caravel/views.py:534
msgid "Cluster"
msgstr ""
#: caravel/views.py:355
msgid "Coordinator Host"
msgstr ""
#: caravel/views.py:356
msgid "Coordinator Port"
msgstr ""
#: caravel/views.py:357
msgid "Coordinator Endpoint"
msgstr ""
#: caravel/views.py:358
msgid "Broker Host"
msgstr ""
#: caravel/views.py:359
msgid "Borker Port"
msgstr ""
#: caravel/views.py:360
msgid "Broker Endpoint"
msgstr ""
#: caravel/views.py:398 caravel/views.py:479
msgid "Dashboards"
msgstr ""
#: caravel/views.py:401
msgid "Last Modified"
msgstr ""
#: caravel/views.py:402 caravel/views.py:458
msgid "Owners"
msgstr ""
#: caravel/views.py:403
msgid "Parameters"
msgstr ""
#: caravel/views.py:404 caravel/views.py:425
msgid "Slice"
msgstr "Graphique"
#: caravel/views.py:405
msgid "Name"
msgstr "Nom"
#: caravel/views.py:407 caravel/views.py:426
msgid "Visualization Type"
msgstr "Type de visualization"
#: caravel/views.py:441
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 ""
#: caravel/views.py:346
#: caravel/views.py:446
msgid ""
"The css for individual dashboards can be altered here, or in the "
"dashboard view where changes are immediately visible"
msgstr ""
#: caravel/views.py:367
msgid "Dashboards"
#: caravel/views.py:450
msgid "To get a readable URL for your dashboard"
msgstr ""
#: caravel/views.py:392
#: caravel/views.py:454
msgid "Dashboard"
msgstr "Tableau de Bord"
#: caravel/views.py:455
msgid "Title"
msgstr "Titre"
#: caravel/views.py:456
msgid "Slug"
msgstr ""
#: caravel/views.py:457
msgid "Slices"
msgstr "Graphiques"
#: caravel/views.py:460
msgid "Modified"
msgstr "Modifié"
#: caravel/views.py:461
msgid "Position JSON"
msgstr ""
#: caravel/views.py:462
msgid "CSS"
msgstr ""
#: caravel/views.py:463
msgid "JSON Metadata"
msgstr ""
#: caravel/views.py:500
msgid "User"
msgstr "Utilisateur"
#: caravel/views.py:501
msgid "Action"
msgstr ""
#: caravel/views.py:502
msgid "dttm"
msgstr ""
#: caravel/views.py:509
msgid "Action Log"
msgstr ""
#: caravel/views.py:393
#: caravel/views.py:510
msgid "Security"
msgstr "Securité"
#: caravel/views.py:430
#: caravel/views.py:527
msgid "Timezone offset (in hours) for this datasource"
msgstr ""
#: caravel/views.py:533
msgid "Data Source"
msgstr "Source de Données"
#: caravel/views.py:536
msgid "Owner"
msgstr "Propriétair"
#: caravel/views.py:538
msgid "Is Hidden"
msgstr "Caché"
#: caravel/views.py:540
msgid "Time Offset"
msgstr ""
#: caravel/views.py:555
msgid "Druid Datasources"
msgstr ""
msgstr "Source de données Druid"
#: caravel/views.py:514
#: caravel/views.py:639
msgid "The datasource seems to have been deleted"
msgstr ""
msgstr "Cette source semble seche"
#: caravel/views.py:522
#: caravel/views.py:647
msgid "You don't seem to have access to this datasource"
msgstr ""
msgstr "Vous n'avez pas acces a cette source de donnees"
#: caravel/views.py:843
#: caravel/views.py:970
msgid "This view requires the `all_datasource_access` permission"
msgstr ""
#: caravel/views.py:954
#: caravel/views.py:1081
msgid "CSS Templates"
msgstr ""
#: caravel/viz.py:324
msgid "Table View"
msgstr ""
#: caravel/viz.py:385
msgid "Pivot Table"
msgstr ""
#: caravel/viz.py:447
msgid "Markup"
msgstr ""
#: caravel/viz.py:475
msgid "Word Cloud"
msgstr "Nuage de Mots"
#: caravel/viz.py:507
msgid "Treemap"
msgstr ""
#: caravel/viz.py:551
msgid "Calender Heatmap"
msgstr ""
#: caravel/viz.py:622
msgid "Box Plot"
msgstr ""
#: caravel/viz.py:729
msgid "Bubble Chart"
msgstr "Graphique en Bulles"
#: caravel/viz.py:797
msgid "Big Number with Trendline"
msgstr ""
#: caravel/viz.py:847
msgid "Big Number"
msgstr "Gros Chiffre"
#: caravel/viz.py:893
msgid "Time Series - Line Chart"
msgstr ""
#: caravel/viz.py:1045
msgid "Time Series - Bar Chart"
msgstr ""
#: caravel/viz.py:1063
msgid "Time Series - Percent Change"
msgstr ""
#: caravel/viz.py:1071
msgid "Time Series - Stacked"
msgstr ""
#: caravel/viz.py:1090
msgid "Distribution - NVD3 - Pie Chart"
msgstr ""
#: caravel/viz.py:1126
msgid "Distribution - Bar Chart"
msgstr ""
#: caravel/viz.py:1206
msgid "Sunburst"
msgstr ""
#: caravel/viz.py:1272
msgid "Sankey"
msgstr ""
#: caravel/viz.py:1336
msgid "Directed Force Layout"
msgstr ""
#: caravel/viz.py:1378
msgid "World Map"
msgstr "Carte du monde"
#: caravel/viz.py:1452
msgid "Filters"
msgstr "Filtres"
#: caravel/viz.py:1500
msgid "iFrame"
msgstr ""
#: caravel/viz.py:1518
msgid "Parallel Coordinates"
msgstr ""
#: caravel/viz.py:1554
msgid "Heatmap"
msgstr ""
#: caravel/viz.py:1622
msgid "Horizon Charts"
msgstr ""
#: caravel/templates/appbuilder/navbar_right.html:34
msgid "Profile"
msgstr ""
@ -116,3 +452,9 @@ msgstr ""
msgid "Welcome!"
msgstr "Bienvenue!"
#~ msgid "Tables"
#~ msgstr ""
#~ msgid "Druid Clusters"
#~ msgstr ""

View File

@ -7,9 +7,10 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-05-02 00:21-0700\n"
"POT-Creation-Date: 2016-05-20 20:30-0700\n"
"PO-Revision-Date: 2016-05-19 16:43+0200\n"
"Last-Translator: Riccardo Magliocchetti <riccardo.magliocchetti@gmail.com>\n"
"Last-Translator: Riccardo Magliocchetti "
"<riccardo.magliocchetti@gmail.com>\n"
"Language: it\n"
"Language-Team: it <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
@ -18,95 +19,432 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: caravel/models.py:564
#: caravel/models.py:607
msgid ""
"Datetime column not provided as part table configuration and is required "
"by this type of chart"
msgstr ""
"La colonna di tipo datetime non è stata fornita nella configurazione della tabella "
"ma richiesta da questo tipo di grafico"
"La colonna di tipo datetime non è stata fornita nella configurazione "
"della tabella ma richiesta da questo tipo di grafico"
#: caravel/models.py:1153
#: caravel/models.py:1243
msgid "No data was returned."
msgstr "Nessun dato disponibile."
#: caravel/views.py:116
#: caravel/views.py:124
msgid ""
"Whether to make this column available as a [Time Granularity] option, "
"column has to be DATETIME or DATETIME-like"
msgstr "Rendi questa colonna disponibile come una opzione [Time Granularity],"
" la colonna deve essere DATATIME o DATETIME-like"
msgstr ""
"Rendi questa colonna disponibile come una opzione [Time Granularity], la "
"colonna deve essere DATATIME o DATETIME-like"
#: caravel/views.py:215
#: caravel/views.py:133 caravel/views.py:161
msgid "Column"
msgstr ""
#: caravel/views.py:134 caravel/views.py:194 caravel/views.py:223
msgid "Verbose Name"
msgstr ""
#: caravel/views.py:135 caravel/views.py:193 caravel/views.py:222
#: caravel/views.py:400 caravel/views.py:535
msgid "Description"
msgstr ""
#: caravel/views.py:136 caravel/views.py:164
msgid "Groupable"
msgstr ""
#: caravel/views.py:137 caravel/views.py:165
msgid "Filterable"
msgstr ""
#: caravel/views.py:138 caravel/views.py:197 caravel/views.py:308
#: caravel/views.py:406
msgid "Table"
msgstr ""
#: caravel/views.py:139 caravel/views.py:166
msgid "Count Distinct"
msgstr ""
#: caravel/views.py:140 caravel/views.py:167
msgid "Sum"
msgstr ""
#: caravel/views.py:141 caravel/views.py:168
msgid "Min"
msgstr ""
#: caravel/views.py:142 caravel/views.py:169
msgid "Max"
msgstr ""
#: caravel/views.py:143
msgid "Expression"
msgstr ""
#: caravel/views.py:144
msgid "Is temporal"
msgstr ""
#: caravel/views.py:162 caravel/views.py:195 caravel/views.py:224
#: caravel/views.py:424
msgid "Type"
msgstr ""
#: caravel/views.py:163 caravel/views.py:399
msgid "Datasource"
msgstr ""
#: caravel/views.py:192 caravel/views.py:221
msgid "Metric"
msgstr ""
#: caravel/views.py:196
msgid "SQL Expression"
msgstr ""
#: caravel/views.py:225 caravel/views.py:503
msgid "JSON"
msgstr ""
#: caravel/views.py:226
msgid "Druid Datasource"
msgstr ""
#: caravel/views.py:257 caravel/views.py:310
msgid "Database"
msgstr ""
#: caravel/views.py:258
msgid "SQL link"
msgstr ""
#: caravel/views.py:259 caravel/views.py:397 caravel/views.py:459
msgid "Creator"
msgstr ""
#: caravel/views.py:260 caravel/views.py:311
msgid "Last Changed"
msgstr ""
#: caravel/views.py:261
msgid "SQLAlchemy URI"
msgstr ""
#: caravel/views.py:262 caravel/views.py:317 caravel/views.py:396
#: caravel/views.py:541
msgid "Cache Timeout"
msgstr ""
#: caravel/views.py:263
msgid "Extra"
msgstr ""
#: caravel/views.py:279
msgid "Databases"
msgstr "Database"
#: caravel/views.py:217 caravel/views.py:261 caravel/views.py:284
#: caravel/views.py:281 caravel/views.py:337 caravel/views.py:369
msgid "Sources"
msgstr "Sorgenti"
#: caravel/views.py:260
msgid "Tables"
msgstr "Tabelle"
#: caravel/views.py:309
msgid "Changed By"
msgstr ""
#: caravel/views.py:282
msgid "Druid Clusters"
msgstr "Cluster Druid"
#: caravel/views.py:312
msgid "SQL Editor"
msgstr ""
#: caravel/views.py:313
msgid "Slices"
msgstr "Slice"
#: caravel/views.py:313 caravel/views.py:537
msgid "Is Featured"
msgstr ""
#: caravel/views.py:341
#: caravel/views.py:314
msgid "Schema"
msgstr ""
#: caravel/views.py:315 caravel/views.py:539
msgid "Default Endpoint"
msgstr ""
#: caravel/views.py:316
msgid "Offset"
msgstr ""
#: caravel/views.py:354 caravel/views.py:534
msgid "Cluster"
msgstr ""
#: caravel/views.py:355
msgid "Coordinator Host"
msgstr ""
#: caravel/views.py:356
msgid "Coordinator Port"
msgstr ""
#: caravel/views.py:357
msgid "Coordinator Endpoint"
msgstr ""
#: caravel/views.py:358
msgid "Broker Host"
msgstr ""
#: caravel/views.py:359
msgid "Borker Port"
msgstr ""
#: caravel/views.py:360
msgid "Broker Endpoint"
msgstr ""
#: caravel/views.py:398 caravel/views.py:479
msgid "Dashboards"
msgstr "Dashboard"
#: caravel/views.py:401
msgid "Last Modified"
msgstr ""
#: caravel/views.py:402 caravel/views.py:458
msgid "Owners"
msgstr ""
#: caravel/views.py:403
msgid "Parameters"
msgstr ""
#: caravel/views.py:404 caravel/views.py:425
msgid "Slice"
msgstr ""
#: caravel/views.py:405
msgid "Name"
msgstr ""
#: caravel/views.py:407 caravel/views.py:426
msgid "Visualization Type"
msgstr ""
#: caravel/views.py:441
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 ""
"Questo oggetto json descrive il posizionamento dei widget nella dashboard."
"E` generata dinamicamente quando vengono cambiate la dimensioni dei widget o la"
"posizione tramite il drag&drop nella vista dashboard."
"Questo oggetto json descrive il posizionamento dei widget nella "
"dashboard.E` generata dinamicamente quando vengono cambiate la dimensioni"
" dei widget o laposizione tramite il drag&drop nella vista dashboard."
#: caravel/views.py:346
#: caravel/views.py:446
msgid ""
"The css for individual dashboards can be altered here, or in the "
"dashboard view where changes are immediately visible"
msgstr ""
"Il css per ogni dashboard può essere modificato qui o nella vista
"dashboard dove i cambiamenti sono visibili immediatamente"
"Il css per ogni dashboard può essere modificato qui o nella vistdashboard"
" dove i cambiamenti sono visibili immediatamente"
#: caravel/views.py:367
msgid "Dashboards"
msgstr "Dashboard"
#: caravel/views.py:450
msgid "To get a readable URL for your dashboard"
msgstr ""
#: caravel/views.py:392
#: caravel/views.py:454
msgid "Dashboard"
msgstr ""
#: caravel/views.py:455
msgid "Title"
msgstr ""
#: caravel/views.py:456
msgid "Slug"
msgstr ""
#: caravel/views.py:457
msgid "Slices"
msgstr "Slice"
#: caravel/views.py:460
msgid "Modified"
msgstr ""
#: caravel/views.py:461
msgid "Position JSON"
msgstr ""
#: caravel/views.py:462
msgid "CSS"
msgstr ""
#: caravel/views.py:463
msgid "JSON Metadata"
msgstr ""
#: caravel/views.py:500
msgid "User"
msgstr ""
#: caravel/views.py:501
msgid "Action"
msgstr ""
#: caravel/views.py:502
msgid "dttm"
msgstr ""
#: caravel/views.py:509
msgid "Action Log"
msgstr "Log delle azioni"
#: caravel/views.py:393
#: caravel/views.py:510
msgid "Security"
msgstr "Sicurezza"
#: caravel/views.py:430
#: caravel/views.py:527
msgid "Timezone offset (in hours) for this datasource"
msgstr ""
#: caravel/views.py:533
msgid "Data Source"
msgstr ""
#: caravel/views.py:536
msgid "Owner"
msgstr ""
#: caravel/views.py:538
msgid "Is Hidden"
msgstr ""
#: caravel/views.py:540
msgid "Time Offset"
msgstr ""
#: caravel/views.py:555
msgid "Druid Datasources"
msgstr "Datasource Druid"
#: caravel/views.py:514
#: caravel/views.py:639
msgid "The datasource seems to have been deleted"
msgstr "Sembra che il datasource sia stato eliminato"
#: caravel/views.py:522
#: caravel/views.py:647
msgid "You don't seem to have access to this datasource"
msgstr "Non hai i permessi per accedere a questo datasource"
#: caravel/views.py:843
#: caravel/views.py:970
msgid "This view requires the `all_datasource_access` permission"
msgstr "Questa vista richiede il permesso `all_datasource_access`"
#: caravel/views.py:954
#: caravel/views.py:1081
msgid "CSS Templates"
msgstr "Template CSS"
#: caravel/viz.py:324
msgid "Table View"
msgstr ""
#: caravel/viz.py:385
msgid "Pivot Table"
msgstr ""
#: caravel/viz.py:447
msgid "Markup"
msgstr ""
#: caravel/viz.py:475
msgid "Word Cloud"
msgstr ""
#: caravel/viz.py:507
msgid "Treemap"
msgstr ""
#: caravel/viz.py:551
msgid "Calender Heatmap"
msgstr ""
#: caravel/viz.py:622
msgid "Box Plot"
msgstr ""
#: caravel/viz.py:729
msgid "Bubble Chart"
msgstr ""
#: caravel/viz.py:797
msgid "Big Number with Trendline"
msgstr ""
#: caravel/viz.py:847
msgid "Big Number"
msgstr ""
#: caravel/viz.py:893
msgid "Time Series - Line Chart"
msgstr ""
#: caravel/viz.py:1045
msgid "Time Series - Bar Chart"
msgstr ""
#: caravel/viz.py:1063
msgid "Time Series - Percent Change"
msgstr ""
#: caravel/viz.py:1071
msgid "Time Series - Stacked"
msgstr ""
#: caravel/viz.py:1090
msgid "Distribution - NVD3 - Pie Chart"
msgstr ""
#: caravel/viz.py:1126
msgid "Distribution - Bar Chart"
msgstr ""
#: caravel/viz.py:1206
msgid "Sunburst"
msgstr ""
#: caravel/viz.py:1272
msgid "Sankey"
msgstr ""
#: caravel/viz.py:1336
msgid "Directed Force Layout"
msgstr ""
#: caravel/viz.py:1378
msgid "World Map"
msgstr ""
#: caravel/viz.py:1452
msgid "Filters"
msgstr ""
#: caravel/viz.py:1500
msgid "iFrame"
msgstr ""
#: caravel/viz.py:1518
msgid "Parallel Coordinates"
msgstr ""
#: caravel/viz.py:1554
msgid "Heatmap"
msgstr ""
#: caravel/viz.py:1622
msgid "Horizon Charts"
msgstr ""
#: caravel/templates/appbuilder/navbar_right.html:34
msgid "Profile"
msgstr "Profilo"
@ -124,3 +462,9 @@ msgstr "Login"
msgid "Welcome!"
msgstr "Benvenuto!"
#~ msgid "Tables"
#~ msgstr "Tabelle"
#~ msgid "Druid Clusters"
#~ msgstr "Cluster Druid"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2016-05-02 00:21-0700\n"
"POT-Creation-Date: 2016-05-20 20:30-0700\n"
"PO-Revision-Date: 2016-05-01 23:07-0700\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: zh\n"
@ -18,87 +18,423 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.3.4\n"
#: caravel/models.py:564
#: caravel/models.py:607
msgid ""
"Datetime column not provided as part table configuration and is required "
"by this type of chart"
msgstr "所选表格需要日期时间但在表格配置文件中没有被提供"
#: caravel/models.py:1153
#: caravel/models.py:1243
msgid "No data was returned."
msgstr "所选数据为空"
#: caravel/views.py:116
#: caravel/views.py:124
msgid ""
"Whether to make this column available as a [Time Granularity] option, "
"column has to be DATETIME or DATETIME-like"
msgstr ""
#: caravel/views.py:215
#: caravel/views.py:133 caravel/views.py:161
msgid "Column"
msgstr ""
#: caravel/views.py:134 caravel/views.py:194 caravel/views.py:223
msgid "Verbose Name"
msgstr ""
#: caravel/views.py:135 caravel/views.py:193 caravel/views.py:222
#: caravel/views.py:400 caravel/views.py:535
msgid "Description"
msgstr ""
#: caravel/views.py:136 caravel/views.py:164
msgid "Groupable"
msgstr ""
#: caravel/views.py:137 caravel/views.py:165
msgid "Filterable"
msgstr ""
#: caravel/views.py:138 caravel/views.py:197 caravel/views.py:308
#: caravel/views.py:406
msgid "Table"
msgstr ""
#: caravel/views.py:139 caravel/views.py:166
msgid "Count Distinct"
msgstr ""
#: caravel/views.py:140 caravel/views.py:167
msgid "Sum"
msgstr ""
#: caravel/views.py:141 caravel/views.py:168
msgid "Min"
msgstr ""
#: caravel/views.py:142 caravel/views.py:169
msgid "Max"
msgstr ""
#: caravel/views.py:143
msgid "Expression"
msgstr ""
#: caravel/views.py:144
msgid "Is temporal"
msgstr ""
#: caravel/views.py:162 caravel/views.py:195 caravel/views.py:224
#: caravel/views.py:424
msgid "Type"
msgstr ""
#: caravel/views.py:163 caravel/views.py:399
msgid "Datasource"
msgstr ""
#: caravel/views.py:192 caravel/views.py:221
msgid "Metric"
msgstr ""
#: caravel/views.py:196
msgid "SQL Expression"
msgstr ""
#: caravel/views.py:225 caravel/views.py:503
msgid "JSON"
msgstr ""
#: caravel/views.py:226
msgid "Druid Datasource"
msgstr ""
#: caravel/views.py:257 caravel/views.py:310
msgid "Database"
msgstr ""
#: caravel/views.py:258
msgid "SQL link"
msgstr ""
#: caravel/views.py:259 caravel/views.py:397 caravel/views.py:459
msgid "Creator"
msgstr ""
#: caravel/views.py:260 caravel/views.py:311
msgid "Last Changed"
msgstr ""
#: caravel/views.py:261
msgid "SQLAlchemy URI"
msgstr ""
#: caravel/views.py:262 caravel/views.py:317 caravel/views.py:396
#: caravel/views.py:541
msgid "Cache Timeout"
msgstr ""
#: caravel/views.py:263
msgid "Extra"
msgstr ""
#: caravel/views.py:279
msgid "Databases"
msgstr "数据库"
#: caravel/views.py:217 caravel/views.py:261 caravel/views.py:284
#: caravel/views.py:281 caravel/views.py:337 caravel/views.py:369
msgid "Sources"
msgstr "源"
#: caravel/views.py:260
msgid "Tables"
msgstr "表格"
#: caravel/views.py:309
msgid "Changed By"
msgstr ""
#: caravel/views.py:282
msgid "Druid Clusters"
msgstr "Druid簇"
#: caravel/views.py:312
msgid "SQL Editor"
msgstr ""
#: caravel/views.py:313
msgid "Slices"
msgstr "切片"
#: caravel/views.py:313 caravel/views.py:537
msgid "Is Featured"
msgstr ""
#: caravel/views.py:341
#: caravel/views.py:314
msgid "Schema"
msgstr ""
#: caravel/views.py:315 caravel/views.py:539
msgid "Default Endpoint"
msgstr ""
#: caravel/views.py:316
msgid "Offset"
msgstr ""
#: caravel/views.py:354 caravel/views.py:534
msgid "Cluster"
msgstr ""
#: caravel/views.py:355
msgid "Coordinator Host"
msgstr ""
#: caravel/views.py:356
msgid "Coordinator Port"
msgstr ""
#: caravel/views.py:357
msgid "Coordinator Endpoint"
msgstr ""
#: caravel/views.py:358
msgid "Broker Host"
msgstr ""
#: caravel/views.py:359
msgid "Borker Port"
msgstr ""
#: caravel/views.py:360
msgid "Broker Endpoint"
msgstr ""
#: caravel/views.py:398 caravel/views.py:479
msgid "Dashboards"
msgstr "仪表盘"
#: caravel/views.py:401
msgid "Last Modified"
msgstr ""
#: caravel/views.py:402 caravel/views.py:458
msgid "Owners"
msgstr ""
#: caravel/views.py:403
msgid "Parameters"
msgstr ""
#: caravel/views.py:404 caravel/views.py:425
msgid "Slice"
msgstr ""
#: caravel/views.py:405
msgid "Name"
msgstr ""
#: caravel/views.py:407 caravel/views.py:426
msgid "Visualization Type"
msgstr ""
#: caravel/views.py:441
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 ""
#: caravel/views.py:346
#: caravel/views.py:446
msgid ""
"The css for individual dashboards can be altered here, or in the "
"dashboard view where changes are immediately visible"
msgstr ""
#: caravel/views.py:367
msgid "Dashboards"
msgstr "仪表盘"
#: caravel/views.py:450
msgid "To get a readable URL for your dashboard"
msgstr ""
#: caravel/views.py:392
#: caravel/views.py:454
msgid "Dashboard"
msgstr ""
#: caravel/views.py:455
msgid "Title"
msgstr ""
#: caravel/views.py:456
msgid "Slug"
msgstr ""
#: caravel/views.py:457
msgid "Slices"
msgstr "切片"
#: caravel/views.py:460
msgid "Modified"
msgstr ""
#: caravel/views.py:461
msgid "Position JSON"
msgstr ""
#: caravel/views.py:462
msgid "CSS"
msgstr ""
#: caravel/views.py:463
msgid "JSON Metadata"
msgstr ""
#: caravel/views.py:500
msgid "User"
msgstr ""
#: caravel/views.py:501
msgid "Action"
msgstr ""
#: caravel/views.py:502
msgid "dttm"
msgstr ""
#: caravel/views.py:509
msgid "Action Log"
msgstr "行动记录"
#: caravel/views.py:393
#: caravel/views.py:510
msgid "Security"
msgstr "权限"
#: caravel/views.py:430
#: caravel/views.py:527
msgid "Timezone offset (in hours) for this datasource"
msgstr ""
#: caravel/views.py:533
msgid "Data Source"
msgstr ""
#: caravel/views.py:536
msgid "Owner"
msgstr ""
#: caravel/views.py:538
msgid "Is Hidden"
msgstr ""
#: caravel/views.py:540
msgid "Time Offset"
msgstr ""
#: caravel/views.py:555
msgid "Druid Datasources"
msgstr "Druid数据源"
#: caravel/views.py:514
#: caravel/views.py:639
msgid "The datasource seems to have been deleted"
msgstr "此数据源好像已被删除"
#: caravel/views.py:522
#: caravel/views.py:647
msgid "You don't seem to have access to this datasource"
msgstr "看来您不能读取此数据源"
#: caravel/views.py:843
#: caravel/views.py:970
msgid "This view requires the `all_datasource_access` permission"
msgstr "此视图需要`all_datasource_access`权限"
#: caravel/views.py:954
#: caravel/views.py:1081
msgid "CSS Templates"
msgstr "CSS模板"
#: caravel/viz.py:324
msgid "Table View"
msgstr ""
#: caravel/viz.py:385
msgid "Pivot Table"
msgstr ""
#: caravel/viz.py:447
msgid "Markup"
msgstr ""
#: caravel/viz.py:475
msgid "Word Cloud"
msgstr ""
#: caravel/viz.py:507
msgid "Treemap"
msgstr ""
#: caravel/viz.py:551
msgid "Calender Heatmap"
msgstr ""
#: caravel/viz.py:622
msgid "Box Plot"
msgstr ""
#: caravel/viz.py:729
msgid "Bubble Chart"
msgstr ""
#: caravel/viz.py:797
msgid "Big Number with Trendline"
msgstr ""
#: caravel/viz.py:847
msgid "Big Number"
msgstr ""
#: caravel/viz.py:893
msgid "Time Series - Line Chart"
msgstr ""
#: caravel/viz.py:1045
msgid "Time Series - Bar Chart"
msgstr ""
#: caravel/viz.py:1063
msgid "Time Series - Percent Change"
msgstr ""
#: caravel/viz.py:1071
msgid "Time Series - Stacked"
msgstr ""
#: caravel/viz.py:1090
msgid "Distribution - NVD3 - Pie Chart"
msgstr ""
#: caravel/viz.py:1126
msgid "Distribution - Bar Chart"
msgstr ""
#: caravel/viz.py:1206
msgid "Sunburst"
msgstr ""
#: caravel/viz.py:1272
msgid "Sankey"
msgstr ""
#: caravel/viz.py:1336
msgid "Directed Force Layout"
msgstr ""
#: caravel/viz.py:1378
msgid "World Map"
msgstr ""
#: caravel/viz.py:1452
msgid "Filters"
msgstr ""
#: caravel/viz.py:1500
msgid "iFrame"
msgstr ""
#: caravel/viz.py:1518
msgid "Parallel Coordinates"
msgstr ""
#: caravel/viz.py:1554
msgid "Heatmap"
msgstr ""
#: caravel/viz.py:1622
msgid "Horizon Charts"
msgstr ""
#: caravel/templates/appbuilder/navbar_right.html:34
msgid "Profile"
msgstr "个人资料"
@ -115,3 +451,10 @@ msgstr "登录"
#: caravel/templates/caravel/welcome.html:13
msgid "Welcome!"
msgstr "欢迎"
#~ msgid "Tables"
#~ msgstr "表格"
#~ msgid "Druid Clusters"
#~ msgstr "Druid簇"

View File

@ -20,7 +20,8 @@ from flask.ext.appbuilder import ModelView, CompactCRUDMixin, BaseView, expose
from flask.ext.appbuilder.actions import action
from flask.ext.appbuilder.models.sqla.interface import SQLAInterface
from flask.ext.appbuilder.security.decorators import has_access
from flask.ext.babelpkg import gettext as _
from flask.ext.babelpkg import gettext as __
from flask.ext.babelpkg import lazy_gettext as _
from flask_appbuilder.models.sqla.filters import BaseFilter
from pydruid.client import doublesum
@ -128,6 +129,20 @@ class TableColumnInlineView(CompactCRUDMixin, CaravelModelView): # noqa
"a valid SQL expression as supported by the underlying backend. "
"Example: `substr(name, 1, 1)`", True),
}
label_columns = {
'column_name': _("Column"),
'verbose_name': _("Verbose Name"),
'description': _("Description"),
'groupby': _("Groupable"),
'filterable': _("Filterable"),
'table': _("Table"),
'count_distinct': _("Count Distinct"),
'sum': _("Sum"),
'min': _("Min"),
'max': _("Max"),
'expression': _("Expression"),
'is_dttm': _("Is temporal"),
}
appbuilder.add_view_no_menu(TableColumnInlineView)
@ -142,6 +157,17 @@ class DruidColumnInlineView(CompactCRUDMixin, CaravelModelView): # noqa
'sum', 'min', 'max']
can_delete = False
page_size = 500
label_columns = {
'column_name': _("Column"),
'type': _("Type"),
'datasource': _("Datasource"),
'groupby': _("Groupable"),
'filterable': _("Filterable"),
'count_distinct': _("Count Distinct"),
'sum': _("Sum"),
'min': _("Min"),
'max': _("Max"),
}
def post_update(self, col):
col.generate_metrics()
@ -162,6 +188,14 @@ class SqlMetricInlineView(CompactCRUDMixin, CaravelModelView): # noqa
}
add_columns = edit_columns
page_size = 500
label_columns = {
'metric_name': _("Metric"),
'description': _("Description"),
'verbose_name': _("Verbose Name"),
'metric_type': _("Type"),
'expression': _("SQL Expression"),
'table': _("Table"),
}
appbuilder.add_view_no_menu(SqlMetricInlineView)
@ -183,6 +217,14 @@ class DruidMetricInlineView(CompactCRUDMixin, CaravelModelView): # noqa
"(http://druid.io/docs/latest/querying/post-aggregations.html)",
True),
}
label_columns = {
'metric_name': _("Metric"),
'description': _("Description"),
'verbose_name': _("Verbose Name"),
'metric_type': _("Type"),
'json': _("JSON"),
'datasource': _("Druid Datasource"),
}
appbuilder.add_view_no_menu(DruidMetricInlineView)
@ -211,6 +253,15 @@ class DatabaseView(CaravelModelView, DeleteMixin): # noqa
"(http://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html"
"#sqlalchemy.schema.MetaData) call. ", True),
}
label_columns = {
'database_name': _("Database"),
'sql_link': _("SQL link"),
'creator': _("Creator"),
'changed_on_': _("Last Changed"),
'sqlalchemy_uri': _("SQLAlchemy URI"),
'cache_timeout': _("Cache Timeout"),
'extra': _("Extra"),
}
def pre_add(self, db):
conn = sqla.engine.url.make_url(db.sqlalchemy_uri)
@ -253,6 +304,18 @@ class TableModelView(CaravelModelView, DeleteMixin): # noqa
"Supports <a href='https://daringfireball.net/projects/markdown/'>"
"markdown</a>"),
}
label_columns = {
'table_link': _("Table"),
'changed_by_': _("Changed By"),
'database': _("Database"),
'changed_on_': _("Last Changed"),
'sql_link': _("SQL Editor"),
'is_featured': _("Is Featured"),
'schema': _("Schema"),
'default_endpoint': _("Default Endpoint"),
'offset': _("Offset"),
'cache_timeout': _("Cache Timeout"),
}
def post_add(self, table):
try:
@ -270,7 +333,7 @@ class TableModelView(CaravelModelView, DeleteMixin): # noqa
appbuilder.add_view(
TableModelView,
_("Tables"),
__("Tables"),
category=_("Sources"),
icon='fa-table',)
@ -287,12 +350,21 @@ class DruidClusterModelView(CaravelModelView, DeleteMixin): # noqa
]
edit_columns = add_columns
list_columns = ['cluster_name', 'metadata_last_refreshed']
label_columns = {
'cluster_name': _("Cluster"),
'coordinator_host': _("Coordinator Host"),
'coordinator_port': _("Coordinator Port"),
'coordinator_endpoint': _("Coordinator Endpoint"),
'broker_host': _("Broker Host"),
'broker_port': _("Borker Port"),
'broker_endpoint': _("Broker Endpoint"),
}
if config['DRUID_IS_ACTIVE']:
appbuilder.add_view(
DruidClusterModelView,
_("Druid Clusters"),
__("Druid Clusters"),
icon="fa-cubes",
category=_("Sources"),
category_icon='fa-database',)
@ -320,10 +392,24 @@ class SliceModelView(CaravelModelView, DeleteMixin): # noqa
"markdown</a>"),
}
base_filters = [['id', FilterSlice, lambda: []]]
label_columns = {
'cache_timeout': _("Cache Timeout"),
'creator': _("Creator"),
'dashboards': _("Dashboards"),
'datasource_link': _("Datasource"),
'description': _("Description"),
'modified': _("Last Modified"),
'owners': _("Owners"),
'params': _("Parameters"),
'slice_link': _("Slice"),
'slice_name': _("Name"),
'table': _("Table"),
'viz_type': _("Visualization Type"),
}
appbuilder.add_view(
SliceModelView,
_("Slices"),
__("Slices"),
icon="fa-bar-chart",
category="",
category_icon='',)
@ -335,8 +421,9 @@ class SliceAsync(SliceModelView): # noqa
'creator', 'modified', 'icons']
label_columns = {
'icons': ' ',
'viz_type': 'Type',
'slice_link': 'Slice',
'viz_type': _('Type'),
'slice_link': _('Slice'),
'viz_type': _('Visualization Type'),
}
appbuilder.add_view_no_menu(SliceAsync)
@ -360,9 +447,21 @@ class DashboardModelView(CaravelModelView, DeleteMixin): # noqa
"The css for individual dashboards can be altered here, or "
"in the dashboard view where changes are immediately "
"visible"),
'slug': "To get a readable URL for your dashboard",
'slug': _("To get a readable URL for your dashboard"),
}
base_filters = [['slice', FilterDashboard, lambda: []]]
label_columns = {
'dashboard_link': _("Dashboard"),
'dashboard_title': _("Title"),
'slug': _("Slug"),
'slices': _("Slices"),
'owners': _("Owners"),
'creator': _("Creator"),
'modified': _("Modified"),
'position_json': _("Position JSON"),
'css': _("CSS"),
'json_metadata': _("JSON Metadata"),
}
def pre_add(self, obj):
obj.slug = obj.slug.strip() or None
@ -379,7 +478,6 @@ appbuilder.add_view(
"Dashboards",
label=_("Dashboards"),
icon="fa-dashboard",
category="",
category_icon='',)
@ -398,6 +496,12 @@ class LogModelView(CaravelModelView):
list_columns = ('user', 'action', 'dttm')
edit_columns = ('user', 'action', 'dttm', 'json')
base_order = ('dttm', 'desc')
label_columns = {
'user': _("User"),
'action': _("Action"),
'dttm': _("dttm"),
'json': _("JSON"),
}
appbuilder.add_view(
LogModelView,
@ -420,11 +524,22 @@ class DruidDatasourceModelView(CaravelModelView, DeleteMixin): # noqa
page_size = 500
base_order = ('datasource_name', 'asc')
description_columns = {
'offset': "Timezone offset (in hours) for this datasource",
'offset': _("Timezone offset (in hours) for this datasource"),
'description': Markup(
"Supports <a href='"
"https://daringfireball.net/projects/markdown/'>markdown</a>"),
}
label_columns = {
'datasource_name': _("Data Source"),
'cluster': _("Cluster"),
'description': _("Description"),
'owner': _("Owner"),
'is_featured': _("Is Featured"),
'is_hidden': _("Is Hidden"),
'default_endpoint': _("Default Endpoint"),
'offset': _("Time Offset"),
'cache_timeout': _("Cache Timeout"),
}
def post_add(self, datasource):
datasource.generate_metrics()
@ -521,7 +636,7 @@ class Caravel(BaseView):
.first()
)
if not datasource:
flash(_("The datasource seems to have been deleted"), "alert")
flash(__("The datasource seems to have been deleted"), "alert")
return redirect(error_redirect)
all_datasource_access = self.appbuilder.sm.has_access(
@ -529,7 +644,7 @@ class Caravel(BaseView):
datasource_access = self.appbuilder.sm.has_access(
'datasource_access', datasource.perm)
if not (all_datasource_access or datasource_access):
flash(_("You don't seem to have access to this datasource"), "danger")
flash(__("You don't seem to have access to this datasource"), "danger")
return redirect(error_redirect)
action = request.args.get('action')

View File

@ -18,6 +18,7 @@ from datetime import datetime, timedelta
import pandas as pd
import numpy as np
from flask import request, Markup
from flask.ext.babelpkg import lazy_gettext as _
from markdown import markdown
from pandas.io.json import dumps
from six import string_types
@ -320,7 +321,7 @@ class TableViz(BaseViz):
"""A basic html table that is sortable and searchable"""
viz_type = "table"
verbose_name = "Table View"
verbose_name = _("Table View")
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
fieldsets = ({
'label': "GROUP BY",
@ -381,7 +382,7 @@ class PivotTableViz(BaseViz):
"""A pivot table view, define your rows, columns and metrics"""
viz_type = "pivot_table"
verbose_name = "Pivot Table"
verbose_name = _("Pivot Table")
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
is_timeseries = False
fieldsets = ({
@ -443,7 +444,7 @@ class MarkupViz(BaseViz):
"""Use html or markdown to create a free form widget"""
viz_type = "markup"
verbose_name = "Markup Widget"
verbose_name = _("Markup")
fieldsets = ({
'label': None,
'fields': ('markup_type', 'code')
@ -471,7 +472,7 @@ class WordCloudViz(BaseViz):
"""
viz_type = "word_cloud"
verbose_name = "Word Cloud"
verbose_name = _("Word Cloud")
is_timeseries = False
fieldsets = ({
'label': None,
@ -503,7 +504,7 @@ class TreemapViz(BaseViz):
"""Tree map visualisation for hierarchical data."""
viz_type = "treemap"
verbose_name = "Treemap"
verbose_name = _("Treemap")
credits = '<a href="https://d3js.org">d3.js</a>'
is_timeseries = False
fieldsets = ({
@ -547,7 +548,7 @@ class CalHeatmapViz(BaseViz):
"""Calendar heatmap."""
viz_type = "cal_heatmap"
verbose_name = "Calender Heatmap"
verbose_name = _("Calender Heatmap")
credits = (
'<a href=https://github.com/wa0x6e/cal-heatmap>cal-heatmap</a>')
is_timeseries = True
@ -618,7 +619,7 @@ class BoxPlotViz(NVD3Viz):
"""Box plot viz from ND3"""
viz_type = "box_plot"
verbose_name = "Box Plot"
verbose_name = _("Box Plot")
sort_series = False
is_timeseries = True
fieldsets = ({
@ -725,7 +726,7 @@ class BubbleViz(NVD3Viz):
"""Based on the NVD3 bubble chart"""
viz_type = "bubble"
verbose_name = "Bubble Chart"
verbose_name = _("Bubble Chart")
is_timeseries = False
fieldsets = ({
'label': None,
@ -793,7 +794,7 @@ class BigNumberViz(BaseViz):
"""Put emphasis on a single metric with this big number viz"""
viz_type = "big_number"
verbose_name = "Big Number with Trendline"
verbose_name = _("Big Number with Trendline")
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
is_timeseries = True
fieldsets = ({
@ -843,7 +844,7 @@ class BigNumberTotalViz(BaseViz):
"""Put emphasis on a single metric with this big number viz"""
viz_type = "big_number_total"
verbose_name = "Big Number"
verbose_name = _("Big Number")
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
is_timeseries = False
fieldsets = ({
@ -889,7 +890,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
"""A rich line chart component with tons of options"""
viz_type = "line"
verbose_name = "Time Series - Line Chart"
verbose_name = _("Time Series - Line Chart")
sort_series = False
is_timeseries = True
fieldsets = ({
@ -1041,7 +1042,7 @@ class NVD3TimeSeriesBarViz(NVD3TimeSeriesViz):
viz_type = "bar"
sort_series = True
verbose_name = "Time Series - Bar Chart"
verbose_name = _("Time Series - Bar Chart")
fieldsets = [NVD3TimeSeriesViz.fieldsets[0]] + [{
'label': 'Chart Options',
'fields': (
@ -1059,7 +1060,7 @@ class NVD3CompareTimeSeriesViz(NVD3TimeSeriesViz):
"""A line chart component where you can compare the % change over time"""
viz_type = 'compare'
verbose_name = "Time Series - Percent Change"
verbose_name = _("Time Series - Percent Change")
class NVD3TimeSeriesStackedViz(NVD3TimeSeriesViz):
@ -1067,7 +1068,7 @@ class NVD3TimeSeriesStackedViz(NVD3TimeSeriesViz):
"""A rich stack area chart"""
viz_type = "area"
verbose_name = "Time Series - Stacked"
verbose_name = _("Time Series - Stacked")
sort_series = True
fieldsets = [NVD3TimeSeriesViz.fieldsets[0]] + [{
'label': 'Chart Options',
@ -1086,7 +1087,7 @@ class DistributionPieViz(NVD3Viz):
"""Annoy visualization snobs with this controversial pie chart"""
viz_type = "pie"
verbose_name = "Distribution - NVD3 - Pie Chart"
verbose_name = _("Distribution - NVD3 - Pie Chart")
is_timeseries = False
fieldsets = ({
'label': None,
@ -1122,7 +1123,7 @@ class DistributionBarViz(DistributionPieViz):
"""A good old bar chart"""
viz_type = "dist_bar"
verbose_name = "Distribution - Bar Chart"
verbose_name = _("Distribution - Bar Chart")
is_timeseries = False
fieldsets = ({
'label': 'Chart Options',
@ -1202,7 +1203,7 @@ class SunburstViz(BaseViz):
"""A multi level sunburst chart"""
viz_type = "sunburst"
verbose_name = "Sunburst"
verbose_name = _("Sunburst")
is_timeseries = False
credits = (
'Kerry Rodden '
@ -1268,7 +1269,7 @@ class SankeyViz(BaseViz):
"""A Sankey diagram that requires a parent-child dataset"""
viz_type = "sankey"
verbose_name = "Sankey"
verbose_name = _("Sankey")
is_timeseries = False
credits = '<a href="https://www.npmjs.com/package/d3-sankey">d3-sankey on npm</a>'
fieldsets = ({
@ -1332,7 +1333,7 @@ class DirectedForceViz(BaseViz):
"""An animated directed force layout graph visualization"""
viz_type = "directed_force"
verbose_name = "Directed Force Layout"
verbose_name = _("Directed Force Layout")
credits = 'd3noob @<a href="http://bl.ocks.org/d3noob/5141278">bl.ocks.org</a>'
is_timeseries = False
fieldsets = ({
@ -1374,7 +1375,7 @@ class WorldMapViz(BaseViz):
"""A country centric world map"""
viz_type = "world_map"
verbose_name = "World Map"
verbose_name = _("World Map")
is_timeseries = False
credits = 'datamaps on <a href="https://www.npmjs.com/package/datamaps">npm</a>'
fieldsets = ({
@ -1448,7 +1449,7 @@ class FilterBoxViz(BaseViz):
"""A multi filter, multi-choice filter box to make dashboards interactive"""
viz_type = "filter_box"
verbose_name = "Filters"
verbose_name = _("Filters")
is_timeseries = False
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
fieldsets = ({
@ -1496,7 +1497,7 @@ class IFrameViz(BaseViz):
"""You can squeeze just about anything in this iFrame component"""
viz_type = "iframe"
verbose_name = "iFrame"
verbose_name = _("iFrame")
credits = 'a <a href="https://github.com/airbnb/caravel">Caravel</a> original'
is_timeseries = False
fieldsets = ({
@ -1514,7 +1515,7 @@ class ParallelCoordinatesViz(BaseViz):
"""
viz_type = "para"
verbose_name = "Parallel Coordinates"
verbose_name = _("Parallel Coordinates")
credits = (
'<a href="https://syntagmatic.github.io/parallel-coordinates/">'
'Syntagmatic\'s library</a>')
@ -1550,7 +1551,7 @@ class HeatmapViz(BaseViz):
"""A nice heatmap visualization that support high density through canvas"""
viz_type = "heatmap"
verbose_name = "Heatmap"
verbose_name = _("Heatmap")
is_timeseries = False
credits = (
'inspired from mbostock @<a href="http://bl.ocks.org/mbostock/3074470">'
@ -1618,7 +1619,7 @@ class HorizonViz(NVD3TimeSeriesViz):
"""
viz_type = "horizon"
verbose_name = "Horizon Charts"
verbose_name = _("Horizon Charts")
credits = (
'<a href="https://www.npmjs.com/package/d3-horizon-chart">'
'd3-horizon-chart</a>')

View File

@ -18,7 +18,7 @@ setup(
'alembic>=0.8.5, <0.9.0',
'babel==2.3.4',
'cryptography>=1.1.1, <2.0.0',
'flask-appbuilder>=1.6.0, <2.0.0',
'flask-appbuilder>=1.6.2, <2.0.0',
'Flask-BabelPkg==0.9.6',
'flask-cache>=0.13.1, <0.14.0',
'flask-migrate>=1.5.1, <2.0.0',